放大镜效果

题九:放大镜效果

要求:

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>

视频:

放大镜效果

相关推荐
专注VB编程开发20年3 小时前
Excel软件界面美化-WEBUI-webbrowser内核
css·excel·vba·webui
じòぴé南冸じょうげん3 小时前
若依框架favicon.ico缓存更新问题解决方案:本地生效但线上未更新
前端·javascript·前端框架·html
狮子座的男孩3 小时前
js基础高级:01、数据类型(typeof、instanceof、===的使用)、数据与变量与内存(定义、赋值与内存关系、引用变量赋值、js调函数传参)
前端·javascript·经验分享·数据类型·数据与变量与内存·赋值与内存关系·引用变量赋值
椒盐螺丝钉8 小时前
Vue Router应用:组件跳转
前端·javascript·vue.js
顾安r8 小时前
11.20 开源APP
服务器·前端·javascript·python·css3
敲敲了个代码9 小时前
CSS 像素≠物理像素:0.5px 效果的核心密码是什么?
前端·javascript·css·学习·面试
少云清9 小时前
【软件测试】5_基础知识 _CSS
前端·css·tensorflow
二川bro9 小时前
第57节:Three.js企业级应用架构
开发语言·javascript·架构
芳草萋萋鹦鹉洲哦10 小时前
【vue】调用同页面其他组件方法几种新思路
前端·javascript·vue.js
巴啦啦臭魔仙10 小时前
uniapp scroll-view自定义下拉刷新的坑
前端·javascript·uni-app