放大镜效果

题九:放大镜效果

要求:

1.鼠标移至图片上方,鼠标周围出现黄色的的正方形框,黄色矩形 框会随着鼠标的移动而移动;

2.将黄色正方形框里的内容的长和宽均放大2.4倍,并在图片右边进 行显示。

原理:

  1. 首先把要放大的图片先size*2.4倍,位置要从零开始,绑定事件mousemove一定不要写错。

  2. 定位鼠标在视口的位置,在减去图片离视口的位置,就是鼠标在图片中的位置,高度的话还要减去滚动卷去的高度。

  3. 最后在图片的范围内,实现放大效果(加-才能网正方向去)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .con { width: 100%; height: 1000px; } .small { width: 400px; height: 400px; background-image: url(./任务/交互图片/9.jpg); background-repeat: no-repeat; background-size: cover; border: 1px solid black; display: inline-block; } .big { width: 400px; height: 400px; border: 1px solid black; display: inline-block; background-image: url(./任务/交互图片/9.jpg); background-repeat: no-repeat; background-size: 960px ,960px; background-position: 0,0; }
    复制代码
     </style>
    </head> <body>
    <script>
    复制代码
         const small = document.querySelector('.small');
         const big = document.querySelector('.big');
    
         small.addEventListener('mousemove', function (e) {
             const rect = small.getBoundingClientRect();
             let x = e.pageX - rect.left;
             let y = e.pageY - rect.top - document.documentElement.scrollTop;
    
             if (x >= 0 && x <= rect.width && y >= 0 && y <= rect.height) {
               
                 big.style.backgroundPositionX = -x * 2.4 + 'px';
                 big.style.backgroundPositionY = -y * 2.4 + 'px';
             }
         });
     </script>
    </body> </html>

视频:

放大镜效果

相关推荐
巴巴_羊1 小时前
React memo
前端·javascript·react.js
zhangguo20021 小时前
react native和react在跨端架构上有什么区别?
javascript·react native·react.js
阿珊和她的猫1 小时前
React Native 开发环境搭建:从零开始
javascript·react native·react.js
Humble-H4 小时前
Vue 3 动态 ref 的使用方式
前端·javascript·vue.js
醉书生ꦿ℘゜এ4 小时前
threejs学习002-场景中添加几何体
javascript·vue.js·学习·threejs
2301_816169615 小时前
初学Vue之记事本案例
前端·javascript·vue.js
宁酱醇5 小时前
CSS常用属性_(进阶)
前端·css
渔舟唱晚@5 小时前
React Native 从零开始完整教程(环境配置 → 国内镜像加速 → 运行项目)
javascript·react native·react.js
kooboo china.6 小时前
Tailwind CSS实战技巧:从核心类到高效开发
前端·javascript·css·编辑器·html
green_pine_7 小时前
CSS学习笔记12——CSS3新增特性
前端·css·笔记·学习