zoukankan      html  css  js  c++  java
  • js放大镜效果

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="author" content="智能社 - zhinengshe.com">
    <meta name="copyright" content="智能社 - zhinengshe.com">
    <title>智能社 - www.zhinengshe.com</title>
    <style>
    * { margin:0; padding:0; }
    .box { margin-left:100px; margin-top:50px; }
    #div1 { position:relative; float:left; 310px; height:310px; border:1px solid red; background:url(images/m1.jpg) no-repeat; }
    #div1 span { display:none; position:absolute; top:0; left:0; 100px; height:100px; background:yellow; opacity:0.6; filter:alpha(opacity:60); cursor:move;}
    #div2 { display:none; position:relative; float:left; overflow:hidden; 310px; height:310px; border:1px solid green; margin-left:20px;}
    #div2 img { position:absolute; top:0; left:0; }
    </style>
    <script>
    window.onload=function (){
        var oDiv1=document.getElementById('div1');
        var oDiv2=document.getElementById('div2');
        var oSpan=oDiv1.children[0];
        var oImg=oDiv2.children[0];
        oDiv1.onmouseover=function(ev)
        {
            oDiv2.style.display='block';
            oSpan.style.display='block';
            show(ev);
            
        };
        oDiv1.onmouseout=function (){
            oDiv2.style.display='none';
            oSpan.style.display='none';
        };    
        oDiv1.onmousemove=function (ev){
            show(ev);    //onmousemove    鼠标移动时候触发,不要放太浪费性能的东西
        };
        function show(ev)
        {
            var oEvent=ev||event;        
            var x=oEvent.clientX;
            var y=oEvent.clientY;
            var l=x-oDiv1.offsetLeft-oSpan.offsetWidth/2;
            var t=y-oDiv1.offsetTop-oSpan.offsetHeight/2;
            if (t<0)
            {
                t=0;
            }
            if (t>oDiv1.offsetHeight-oSpan.offsetHeight)
            {
                t=oDiv1.offsetHeight-oSpan.offsetHeight-2;//在ie6下回出现覆盖边框情况,保证在范围内
            }
            
            if (l<0)
            {
                l=0;
            }
            
            if (l>oDiv1.offsetWidth-oSpan.offsetWidth)
            {
                l=oDiv1.offsetWidth-oSpan.offsetWidth-2;//在ie6下回出现覆盖边框情况,保证在范围内
            }
            oSpan.style.left=l+'px';
            oSpan.style.top=t+'px';
            // 大img位置计算
            oImg.style.left=-l/(oDiv1.offsetWidth-oSpan.offsetWidth)*(oImg.offsetWidth-oDiv2.offsetWidth)+'px';
            oImg.style.top=-t/(oDiv1.offsetHeight-oSpan.offsetHeight)*(oImg.offsetHeight-oDiv2.offsetHeight)+'px';
        };    
    };
    </script>
    </head>
    
    <body>
        <div class="box">
            <div id="div1">
                <span></span>
            </div>
            
            <div id="div2">
                <img src="images/b1.jpg" />
            </div>
        </div>
    </body>
    </html>
  • 相关阅读:
    秒杀项目之——通过令牌发放机制,控制秒杀大闸以及队列泄洪
    Guava的使用
    秒杀项目之细节随笔记录————
    redis搭建集群
    redis内存满了怎么办?
    多个电脑上免密登陆命令、scp远程拷贝、修改文件的用户和组
    克隆完虚拟机后修改网卡,修改静态IP
    redis基本操作和 过期时间设置以及持久化方案
    linux操作系统安装运行Redis
    云服务器以及linux操作系统打开防火墙,在墙上开一个小口
  • 原文地址:https://www.cnblogs.com/heboliufengjie/p/4192362.html
Copyright © 2011-2022 走看看