放大镜效果

题九:放大镜效果

要求:

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>

视频:

放大镜效果

相关推荐
jqq6661 天前
解析ElementPlus打包源码(三、打包类型)
前端·javascript·vue.js
陳陈陳1 天前
React 性能优化双子星:useMemo 与 useCallback 的正确打开方式
前端·javascript·react.js
持续前行1 天前
JavaScript 数组中删除偶数下标值的多种方法
前端·javascript·vue.js
Dr_哈哈1 天前
ESM vs CJS 模块化差异对比
javascript·node.js
Java编程爱好者1 天前
SpringBoot实现隐式参数注入
javascript
baozj1 天前
给 Ant Design Vue 装上"涡轮增压":虚拟列表封装实践
前端·javascript·vue.js
追逐梦想之路_随笔1 天前
JavaScript Es9、Es10、Es11、Es12、Es13、Es14、Es15新特性总结
javascript·es9至es15新特性
黛色正浓1 天前
leetCode-热题100-二叉树合集(JavaScript)
javascript·算法·leetcode
霍格沃兹测试学院-小舟畅学1 天前
Playwright处理iframe和Shadow DOM的实战技巧
前端·javascript·html