放大镜效果

题九:放大镜效果

要求:

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>

视频:

放大镜效果

相关推荐
这是个栗子8 小时前
TypeScript(三)
前端·javascript·typescript·react
北风toto8 小时前
前端CSS样式详细笔记
前端·css·笔记
前端精髓11 小时前
移除 Effect 依赖
前端·javascript·react.js
lpfasd12312 小时前
TypeScript + Cloudflare 全家桶部署项目全流程
前端·javascript·typescript
前端Hardy12 小时前
字节/腾讯内部流出!Claude Code 2026王炸玩法!效率暴涨10倍
前端·javascript·vue.js
前端Hardy13 小时前
大厂都在偷偷用的 Cursor Rules 封装!告别重复 Prompt,AI 编程效率翻倍
前端·javascript·面试
kyriewen13 小时前
Vite:比Webpack快100倍的“闪电侠”,原理竟然这么简单?
前端·javascript·vite
竹林81813 小时前
RainbowKit快速集成多链钱包连接:从“连不上”到丝滑切换的踩坑实录
前端·javascript
前端Hardy13 小时前
Cursor Rules 完全指南(2026 最新版)
前端·javascript·面试
牛奶13 小时前
浏览器是怎么把代码变成页面的?
前端·javascript·chrome