美文网首页js
js放大镜效果

js放大镜效果

作者: world_7735 | 来源:发表于2019-01-31 15:52 被阅读37次

效果:

代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>放大镜</title>
    <style type="text/css">
        body, div {
            margin: 0;
            padding: 0;
        }

        #con {
            position: absolute;
            top: 50%;
            left: 50%;
            margin: -150px 0 0 -150px;
            width: 300px;
            height: 300px;
            background: url("img/bg.jpeg") no-repeat;
            background-size: 100%;
        }

        #dec {
            display: none;
            position: absolute;
            top: 50%;
            left: 50%;
            margin: -150px 0 0 160px;
            width: 300px;
            height: 300px;
            background: url("img/bg.jpeg") no-repeat 0 0;
            background-size: 300%;
            border-radius: 50%;
        }

        #box {
            position: absolute;
            top: 0;
            left: 0;
            width: 100px;
            height: 100px;
            /*background: rgba(0, 0, 0, 0.5);*/
            background: #22b909;
            opacity: 0.4;
            filter: alpha(opacity=40);
            cursor: move;
            border-radius: 50%;
        }
    </style>
</head>
<body>
<div id="con"></div>
<div id="dec"></div>


<script type="text/javascript">
var con=document.getElementById('con');
var dec=document.getElementById('dec');
con.onmouseenter=function(e){
    this.mx=e.pageX;
    // this.x=this.offsetLeft;
    // this.y=this.offsetTop;
    this.my=e.pageY;
    var div=document.getElementById("box");
    if(!div){
        var div=document.createElement("div");
        div.id="box";
       

        this.appendChild(div);
    }else{
        div.style.display="block";
    }
}
con.onmousemove=function(e){
    e=e||window.event;
    var mask=document.getElementById("box");
    if(mask){
        move(mask,e,this);
        dec.style.display="block";
    }
}

function move(mask,e,self){
    var w=self.offsetWidth-mask.offsetWidth;
    var h=self.offsetHeight-mask.offsetHeight;
    var l=e.pageX-self.offsetLeft-mask.offsetWidth/2
    var t=e.pageY-self.offsetTop-mask.offsetHeight/2
    if(l>=w){
       mask.style.left=w+"px";
       dec.style.backgroundPositionX=-w*3+"px";
    }else if(l<=0){
        mask.style.left=0+"px";
        dec.style.backgroundPositionX=0+"px";
    }else{
        mask.style.left=e.pageX-self.offsetLeft-mask.offsetWidth/2+"px";
        dec.style.backgroundPositionX=-l*3+"px";
    }

    if(t>=h){
        mask.style.top=h+"px"; 
        dec.style.backgroundPositionY=-h*3+"px";
    }else if(t<=0){
        mask.style.top=0+"px"; 
        dec.style.backgroundPositionY=0+"px";
    }else{
       mask.style.top=e.pageY-self.offsetTop-mask.offsetHeight/2+"px";  
       dec.style.backgroundPositionY=-t*3+"px";
    }
}
con.onmouseleave=function(e){
    var mask=document.getElementById("box");
    if(mask){
        dec.style.display="none";
        mask.style.display="none";
    }
}

</script>
</body>
</html>

相关文章

  • js 放大镜效果

    *{ margin:0; padding:0;} box{ pos...

  • JS 放大镜效果

    效果在这里!!~ CSS样式 HTML 布局 js部分~ 转载请注明出处喔~

  • js放大镜效果

    html css js

  • js放大镜效果

    效果: 代码:

  • js 放大镜效果

    思路:鼠标经过,显示/隐藏mask和rightBox图片当鼠标在盒子中移动的时候,mask和鼠标一起移动当mask...

  • js实现放大镜效果

    前言:在拿到一个需求之前,我们要先进行分析,再设计,最后实现代码的编写以及调试。 放大镜的原理分析 鼠标在小图片上...

  • JS_放大镜效果

    效果图如下: 一、CSS看源码吧! 二、JS代码真没有什么解释的,注释很清晰,,,,自己看吧 三、源码下载:吻我

  • 原生js放大镜效果

    原生js放大镜效果 1.静态页 2.css 3.js区 第一次发,希望大家多多支持,很高兴大家能提出意见或建议!!!

  • JS实现放大镜效果

    HTML部分: CSS部分: JS部分:

  • iOS放大镜效果实现-ASMagnifierManger

    ASMagnifierManger 放大镜效果。可更改放大倍数和放大镜大小 特点介绍 放大镜效果 放大镜形状自定义...

网友评论

    本文标题:js放大镜效果

    本文链接:https://www.haomeiwen.com/subject/fzzksqtx.html