• js放大镜代码


    js原生放大镜

    <!DOCTYPE html>
    <html>
    <head>
        <title>放大镜</title>
        <meta charset="utf-8">
        <style type="text/css">
            *{
                margin: 0px;
                padding: 0px;
            }
            body{
                 960px;
                margin:40px auto;
            }
            #small{
                 300px;
                height: 200px;
                border:1px solid #eee;
                border-radius: 4px;
                position: relative;
            }
    
            #small img{
                 100%;
                height: 100%;
            }
    
            div    {
                float: left;
                margin-right: 10px;
            }
    
            #big{
                 300px;
                height: 200px;
                overflow: hidden;
                position: relative;
                border:1px solid #eee;
                border-radius: 4px;
                display: none;
            }
    
            #look_girl{
                position: absolute;
                left: 0px;
                top:0px;
            }
    
            #move{
                 100px;
                height: 100px;
                background:#000;
                opacity: .5;
                position: absolute;
                display: none;
                left: 0px;
                top: 0px;
            }
        </style>
    
    </head>
    <body>
        <div id="small">
            <img src="1.png">
            <p id="move"></p>
        </div>
        <div id="big">
            <img src="1.png" id="look_girl">
        </div>
    </body>
    <script type="text/javascript">
        var move = document.getElementById('move');    
        var small = document.getElementById('small');
        var big = document.getElementById('big');
        var look_girl = document.getElementById('look_girl');
        small.onmousemove = function(event){
            event = event || window.event;
            this.style.cursor = 'move';
            // 计算move移动块的left值
            var move_left = event.clientX - this.offsetLeft - move.offsetWidth/2;
            // 计算move移动块的top值
            var move_top = event.clientY - this.offsetTop - move.offsetHeight/2;
            // 超出左边界赋值为0
            move_left = move_left < 0 ? 0 : move_left;
            // 超出右边界赋值为盒子宽度-移动块的宽度
            move_left = move_left > this.offsetWidth - move.offsetWidth ? this.offsetWidth - move.offsetWidth : move_left;
            // 超出上边界赋值为0
            move_top = move_top < 0 ? 0 : move_top;
            // 超出下边界赋值为盒子高度-移动块高度
            move_top = move_top > this.offsetHeight - move.offsetHeight ? this.offsetHeight - move.offsetHeight : move_top;
            // 修改移动块left、top值
            move.style.left = move_left + 'px';
            move.style.top = move_top + 'px';
            /*
                计算图片需要移动的坐标
    
                距离左边left    图片宽度      盒子宽度          距离左边left    图片宽度           盒子宽度
                big_x/(look_girl.offsetWidth-big.offsetWidth) = move_left/(small.offsetWidth-move.offsetWidth);
    
                big_y/(look_girl.offsetHeight-big.offsetHeight) = move_top/(small.offsetHeight-move.offsetHeight);
    
            */
    
            var big_x = move_left/(small.offsetWidth-move.offsetWidth) * (look_girl.offsetWidth-big.offsetWidth);
            var big_y = move_top/(small.offsetHeight-move.offsetHeight) * (look_girl.offsetHeight-big.offsetHeight);
            // 修改图片定位
            look_girl.style.left = -big_x + 'px';
            look_girl.style.top = -big_y + 'px';
        }
    
        small.onmouseover = function(){
            move.style.display = 'block';
            big.style.display = 'block';
        }
    
        small.onmouseout = function(){
            move.style.display = 'none';
            big.style.display = 'none';
        }
    </script>
    </html>
    View Code
    方法二更好
  • 相关阅读:
    C# 16进制字节转Int(涉及:Base64转byte数组)
    c# CRC-16 / MODBUS 校验计算方法 及 异或校验算法
    SqlSugar 用法大全
    SQL Server-聚焦NOLOCK、UPDLOCK、HOLDLOCK、READPAST你弄懂多少?
    使用 tabindex 配合 focus-within 巧妙实现父选择器
    DataX 3.0 源码解析一
    Golang必备技巧:接口型函数
    PID控制
    dockerfile,拷贝文件夹到镜像中(不是拷贝文件夹中的内容到镜像)
    什么是PKI?主要作用是什么?
  • 原文地址:https://www.cnblogs.com/renfanzi/p/7891456.html
Copyright © 2020-2023  润新知