• 盒子的拖拽


    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <style>
            *{
                margin:0;
                padding:0;
            }
            #box{
                width:350px;
                height:350px;
                border:1px solid #000;
                margin:100px;
                position:relative;
            }
            #big{
                width:400px;
                height:400px;
                border:1px solid #000;
                position:absolute;
                top : 0;
                left : 360px;
                overflow:hidden;
                display:none;
            }
            #mask{
                width:175px;
                height:175px;
                background:pink;
                opacity:0.3;
                position:absolute;
                top:0;
                left:0;
                cursor:move;
                display:none
            }
            #small{
                position:relative;
            }
            #bigImg{
                position:absolute;
                left:0;
                top:0;
            }
        </style>
        <body>
            <div id="box">
                <div id="small">
                    <img src="images/iphone.jpg" alt="" id="smallImg"/>
                    <div id="mask"></div>
                </div>
                <div id="big">
                    <img src="images/iphone_big.jpg" alt="" id="bigImg"/>
                </div>
            </div>
        </body>
    </html>
    
    <script>
        /*
         思路:
             1、鼠标移入到小图区域  显示mask和big   离开让big 和mask 隐藏
             2、鼠标在小图区域上移动  改变mask的left和top   控制bigImg的left和top
         */
        var small = document.getElementById("small");
        var big = document.getElementById("big");
        var bigImg = document.getElementById("bigImg");
        var smallImg = document.getElementById("smallImg");
        var mask = document.getElementById("mask");
        var box = document.getElementById("box");
        
        
        
        small.onmouseover = function(){
            big.style.display = "block";
            mask.style.display = "block";
        }
        
        small.onmouseout = function(){
            big.style.display = "none";
            mask.style.display = "none";
        }
        
        small.onmousemove = function(e){
            var e = e || event;
            //求 mask的left值   top值
            var x = e.pageX - box.offsetLeft - mask.offsetWidth / 2;
            var y = e.pageY - box.offsetTop - mask.offsetHeight / 2;
            var maxL = small.offsetWidth - mask.offsetWidth;  //mask 最大的left
            var maxT = small.offsetHeight - mask.offsetHeight; //mask 最大的top
            //边界处理
            x = x < 0 ? 0 : x > maxL ? maxL : x;
            y = y < 0 ? 0 : y > maxT ? maxT : y;
            
            //大图的left  
            bigImg.style.left = -x * (bigImg.offsetWidth - big.offsetWidth) / (small.offsetWidth - mask.offsetWidth) + "px";
            bigImg.style.top = -y * (bigImg.offsetHeight - big.offsetHeight) / (small.offsetHeight - mask.offsetHeight) + "px";
            mask.style.left = x + "px";
            mask.style.top = y + "px";
        
        }
        
        //如果你想改mask的尺寸  
        //大图宽度/小图宽度  =  大图可视区big宽度/小图可视区mask宽度
        //  800 / 350   =   400 / 175
         // 800 / 350   =   228 / 100
         // 2.28        =   2.28 
    </script>
  • 相关阅读:
    apache配置虚拟主机及虚拟目录
    Apache的443端口被占用解决方法
    Windows下XDebug 手工配置与使用说明
    php中输入这个网站的网址跳转到你定义的页面代码
    XAMPP的使用说明
    Linux致命命令
    wget 命令用法详解
    Linux 关机命令详解
    LINUX视频教程下载地址
    ubuntu 开机自动开启数字小键盘
  • 原文地址:https://www.cnblogs.com/Leslie-Cheung1584304774/p/10529405.html
Copyright © 2020-2023  润新知