账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    手写了个放大镜,但是比例对不上,没找到哪里的问题。。。
    53
    0
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport"
              content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            .container{
                border: 2px solid #eee;
                width: 400px;
                height: 400px;
                box-shadow: 5px 10px 10px 3px #ccc;
                position: relative;
                float: left;
            }
            .box {
                width: 180px;
                height: 180px;
                background: yellow;
                opacity: 0.4;
                /*display: none;*/
                position: absolute;
            }
            .scale {
                width: 450px;
                height: 450px;
                border: 2px solid #b3b3b3;
                position: relative;
                display: inline-block;
                overflow: hidden;
            }
            .big-image{
                /*overflow: hidden;*/
                position: absolute;
                margin: 0;
                padding: 0;
            }
    
        </style>
    </head>
    <body>
    <div class="container">
        <img src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=4265027237,2654660306&fm=27&gp=0.jpg" width="100%" height="100%">
        <div class="box"></div>
    </div>
    <div class="scale">
        <img class="big-image" src="https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=4265027237,2654660306&fm=27&gp=0.jpg" alt="" width="100%" height="100%">
    </div>
    <script>
        let container = document.querySelector('.container');
        let box = document.querySelector('.box');
        let scale = document.querySelector('.scale');
    
        let bigImage = document.querySelector('.big-image'); // 大图
        let percent = scale.offsetHeight / box.offsetHeight; // 大图:小图比例
        bigImage.width = bigImage.offsetWidth * percent;
        bigImage.height = bigImage.offsetHeight * percent;
    
        container.onmouseover = () => {
            box.style.display = 'block';
    
            container.onmousemove = e => {
                let x = e.clientX;
                let y = e.clientY;
    
    
                box.style.left = x  - box.offsetWidth / 2 + 'px';
                box.style.top = y  - box.offsetHeight / 2 + 'px';
    
                if(box.offsetLeft <= 0) {
                    box.style.left = 0;
                }
                if(box.offsetTop <= 0) {
                    box.style.top = 0;
                }
    
                if (container.offsetWidth - box.offsetLeft < box.offsetWidth) {
                    box.style.left = container.offsetWidth - box.offsetWidth + 'px';
                }
                if (container.offsetHeight - box.offsetTop < box.offsetHeight) {
                    box.style.top = container.offsetHeight - box.offsetHeight + 'px';
                }
    
                bigImage.style.left = -box.offsetLeft * percent + 'px';
                bigImage.style.top = -box.offsetTop * percent + 'px';
    ;        }
    
        };
        container.onmouseout = () => {
            box.style.display = 'none';
        };
    </script>
    </body>
    </html>

    源码贴上可以直接运行,大神帮忙看看,我眼花了真是~~

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • perfunctory.(敷衍) 普通会员 1楼

      放大镜是一种光学仪器,其放大倍数通常在10-20倍之间。如果你的手写了一个放大镜,但是比例不对,那么可能是以下原因:

      1. 镜片本身的问题:如果你的手写放大镜的镜片出现了裂纹、污垢或其他问题,那么放大倍数可能就会降低。

      2. 眼睛的问题:如果你的眼睛有问题,比如近视或散光,那么你可能需要更换一副新的眼镜来放大镜的倍数。

      3. 镜座或支架的问题:如果你的手写放大镜的镜座或支架松动,那么放大倍数可能就会降低。

      4. 外观设计的问题:如果你的手写放大镜的设计不合理,比如边缘模糊、角度不合适等,那么放大倍数可能就会降低。

      你可以尝试以下步骤来解决这个问题:

      1. 检查镜片:首先,你需要检查你的手写放大镜的镜片,看看是否有裂纹、污垢或其他问题。

      2. 检查眼睛:如果眼镜有问题,那么你需要更换一副新的眼镜。

      3. 检查镜座或支架:如果镜座或支架松动,那么你需要将其固定好。

      4. 调整设计:如果手写放大镜的设计不合理,那么你可以尝试调整设计,使其更加合理。

      如果你仍然无法解决问题,那么可能需要寻求专业人士的帮助,比如眼镜店的员工或者专业的光学仪器维修人员。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部