zoukankan      html  css  js  c++  java
  • js 实现淘宝放大镜





    <!DOCTYPE html>
    <html>
    <head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
    *{
    margin: 0;
    padding: 0;
    }
    .div1, .div2 {
    430px;
    height: 430px;
    float: left;
    cursor:crosshair;
    }
    .div1 img{
    430px;
    height: 430px;
    }
    .div2{
    position: relative;
    overflow: hidden;
    display: none;
    margin-left: 10px;
    }
    .div2 img{
    800px;
    height: 800px;
    position: absolute;
    }
    .div3, .div4, .div5, .div6 {
    60px;
    height: 60px;
    float: left;
    margin-left: 33px;
    }
    #small img:hover{
    cursor: pointer;
    border: 3px solid #21bbca;
    }
    #div1-1{
    230px;
    height: 230px;
    border: 1px solid red;
    position: absolute;
    background-image: url("21_03.png");
    top: 0;
    left: 0;
    opacity: 0.5;
    display: none;
    }
    </style>
    </head>
    <body>
    <div>
    <div id="big" style="overflow: hidden;">
    <div class="div1">
    <img id="bimg" src="imgA_2.jpg" alt=""/>
    <div id="div1-1"></div>
    </div>
    <div class="div2"><img id="rig" src="imgA_3.jpg" alt=""/></div>
    </div>
    <div id="small" >
    <div class="div3"><img src="imgA_1.jpg" alt=""/></div>
    <div class="div4"><img src="imgB_1.jpg" alt=""/></div>
    <div class="div5"><img src="imgC_1.jpg" alt=""/></div>
    <div class="div6"><img src="imgD_1.jpg" alt=""/></div>
    </div>
    </div>
    样式效果

     
    <script>
        function getChildNodes(b){
            var arr=[];
            for(var i=0;i< b.childNodes.length;i++){
                if(!(b.childNodes[i].nodeType ==3 && b.childNodes[i].nodeValue.trim() =="")){
                    arr.push(b.childNodes[i]);
                }
            }
            return arr;
        }
        var small =getChildNodes(document.getElementById("small"));
        var big = getChildNodes(document.getElementById("big"));
        var rig=document.getElementById("rig");
        var bimg = document.getElementById("bimg");
        var divnie=document.getElementById("div1-1");
        var arr = ["imgA_2.jpg", "imgB_2.jpg", "imgC_2.jpg", "imgD_2.jpg"];
        var brr = ["imgA_3.jpg", "imgB_3.jpg", "imgC_3.jpg", "imgD_3.jpg"];
    
        for(var i=0;i<arr.length;i++){
            !function(i){
                small[i].onmouseover=function(){
                    bimg.src=arr[i];
                    rig.src=brr[i];
                }
            }(i);
        }
            function move(ev){
                ev = ev || window.event;
                var ox = ev.clientX-divnie.offsetWidth/2;
                var oy = ev.clientY-divnie.offsetHeight/2;
                if(ox<0){ox=0;}
                else if(ox>big[0].offsetWidth-divnie.offsetWidth){
                    ox=big[0].offsetWidth-divnie.offsetWidth;}
                if(oy<0){oy=0;}
                else if(oy>big[0].offsetWidth-divnie.offsetWidth){
                    oy=big[0].offsetHeight-divnie.offsetHeight;}
                divnie.style.left = ox+"px";
                divnie.style.top = oy+"px";
                console.log(divnie.style.left);
                var bei = big[1].clientWidth/divnie.clientWidth;
                rig.style.left =-bei*ox+"px";
                rig.style.top  =-bei*oy+"px";
            }
            //隐藏放大镜移动
            big[0].onmousemove=move;
            big[0].onmouseover=function(){
                //隐藏图片显示
                //隐藏放大镜显示
                big[1].style.display="block";
                divnie.style.display="block";
                move();
            };
            //鼠标移除显示
            big[0].onmouseout=function(){
                big[1].style.display="none";
                divnie.style.display="none";
            };
    
    </script>
    
    

    交互效果

    
    
  • 相关阅读:
    【BZOJ1014】【JSOI2008】火星人prefix
    [agc011e]increasing numbers
    NOIp2018模拟赛四十一
    拉格朗日插值&&快速插值
    NOIp2018模拟赛四十
    (2016北京集训十四)【xsy1557】task
    (2016北京集训十四)【xsy1556】股神小D
    数据泵导入ORA-39082报错解决
    OracleDBA职责—备份与恢复技术—概念
    OracleDBA职责—备份与恢复技术—RMAN3
  • 原文地址:https://www.cnblogs.com/xxxo/p/sd.html
Copyright © 2011-2022 走看看