ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

放大镜效果

2020-01-01 20:51:28  阅读:216  来源: 互联网

标签:style 效果 放大镜 big 距离 small luncency var


<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>放大镜效果</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        #main{
            position: relative;
            margin: 100px auto;
            width: 1196px;
            height: 496px;
            border: 2px solid #ccc;
        }
        #small{
            position: absolute;
            width: 200px;
            height: 200px;
            top: 150px;
            background-color: palegoldenrod;
        }
        #small img{
            width: 200px;
            height: 200px;
        }
        #big{
            position: absolute;
            width: 400px;
            top: 50px;
            left: 220px;
            height: 400px;
            display: none;
            overflow: hidden;
        }
        #big img{
            width: 700px;
            height: 700px;
            position: absolute;
        }
        #lucency{
            position: absolute;
            width: 100px;
            top: 0px;
            height: 100px;
            background-color: yellow;
            opacity: 0.5;
            display: none;
        }
    </style>
</head>
<body>
    <div id="main">
        <div id="small">
            <img src="img/shuju.jpg" />
            <div id="lucency">
                
            </div>
        </div>
        <div id="big">
            <img src="img/shuju.jpg" class="bigImg" />
        </div>
    </div>
    <script>
        var small=document.getElementById('small');   //小盒子
        var luncency=document.getElementById('lucency');    //黄色盒子
        var big=document.getElementById('big');
        var main=document.getElementById('main')
        var bigImg=document.querySelector('.bigImg')
        small.addEventListener('mouseover',function(){//鼠标放入预览图小盒子,大图和黄色显示
            big.style.display='block';
            luncency.style.display='block'    
        })
        small.addEventListener('mouseout',function(){//鼠标离开预览图小盒子,大图和黄色隐藏
            big.style.display='none';
            luncency.style.display='none'
        })
        small.addEventListener('mousemove',function(e){
            var smallLeft=e.pageX-main.offsetLeft    //鼠标距离small左边的距离
            var smallTop=e.pageY-main.offsetTop-small.offsetTop    //鼠标距离small上边的距离
            var smllle=smallLeft-luncency.offsetWidth/2
            var smllto=smallTop-luncency.offsetHeight/2
            var smllMax=small.offsetWidth-luncency.offsetWidth   //遮挡层的最大移动距离
            if(smllle<=0 ){
                smllle=0
            }else if(smllle>=smllMax){   //遮挡层的最大移动距离不能超出
                smllle=100
            }
            if(smllto<=0){
                smllto=0
            }else if(smllto>=smllMax){
                smllto=100
            }
                luncency.style.left=smllle+'px'        //黄块跟着光标坐标走,黄块的左坐标
                luncency.style.top=smllto+'px'        //黄块跟着光标坐标走,黄块的纵坐标
//                
                var bigMax=big.offsetWidth-bigImg.offsetWidth  //大图片的最大移动 距离
//                大图片的移动距离=遮挡层移动距离*大图片最大移动距离/遮挡层的最大移动距离
                //大图片移动距离的x
                var bigX=smllle*bigMax/smllMax;        
                //大图片移动距离的Y
                var bigY=smllto*bigMax/smllMax;    
                bigImg.style.left=bigX+'px'
                bigImg.style.top=bigY+'px'
        })
    </script>
</body>
</html>

标签:style,效果,放大镜,big,距离,small,luncency,var
来源: https://www.cnblogs.com/yueranran/p/12129859.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有