美文网首页
js 放大镜效果

js 放大镜效果

作者: 教我情何以堪 | 来源:发表于2016-12-06 09:22 被阅读0次

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="" />
<meta name="copyright" content="" />
<meta name="description" content="" />
<title></title>
<style>
*{ margin:0; padding:0;}

box{ position:relative; left:100px; top:100px;}

small{ width:300px; height:193px; position:relative; overflow:hidden;}

small img{ display:block; width:300px; position:absolute;}

small .float{ width:100px; height:100px; background:#f00; position:absolute; z-index:2; display:inline-block; opacity:0.5; filter:alpha(opacity:50) cursor:move; display:none;}

big{ width:300px; height:300px; position:absolute; display:none; left:320px; top:0; overflow:hidden;}

big img{ position:absolute; left:0; top:0;}

</style>
<script>
window.onload=function(){
var oSmall=document.getElementById('small');
var oBig=document.getElementById('big');
var oImg=oBig.children[0];
var oBox=document.getElementById('box');
var oFloat=oSmall.children[0];

    oSmall.onmouseenter=function(){
        oFloat.style.display='block';
        oBig.style.display='block';
    };
    oSmall.onmouseleave=function(){
        oFloat.style.display='none';
        oBig.style.display='none';
    };

    oSmall.onmousemove=function(ev){
        var oEvent=ev || event;
        var left=oEvent.clientX-oBox.offsetLeft-oFloat.offsetWidth/2;
        var top=oEvent.clientY-oBox.offsetTop-oFloat.offsetHeight/2;

        left<0 && (left=0);

        if(left>oSmall.offsetWidth-oFloat.offsetWidth){
            left=oSmall.offsetWidth-oFloat.offsetWidth;
        }

        top<0 && (top=0);
        if(top>oSmall.offsetHeight-oFloat.offsetHeight){
            top=oSmall.offsetHeight-oFloat.offsetHeight;
        }

        oFloat.style.left=left+'px';
        oFloat.style.top=top+'px';

        //放大镜
        /*
        *
        * 小图比例=大图比例
        *
        * 小图比例=left/(oSmall.offsetWidth-oFloat.offsetWidth)
        * 大图比例=?/(oImg.offsetWidth-oBig.offsetWidth)
        *
        * left/(oSmall.offsetWidth-oFloat.offsetWidth)=?/(oImg.offsetWidth-oBig.offsetWidth)
        *
        * ?=left/(oSmall.offsetWidth-oFloat.offsetWidth)*(oImg.offsetWidth-oBig.offsetWidth)
        *
        * */
        oImg.style.left=-left/(oSmall.offsetWidth-oFloat.offsetWidth)*(oImg.offsetWidth-oBig.offsetWidth)+'px';
        oImg.style.top=-top/(oSmall.offsetHeight-oFloat.offsetHeight)*(oImg.offsetHeight-oBig.offsetHeight)+'px';

    };
};

</script>
</head>

<body>
<div id="box">
<div id="small">
<div class="float"></div>
<img src="small.jpg">
</div>
<div id="big">
<img src="big.jpg">
</div>
</div>
</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/jdolmttx.html