当前位置: 首页 > news >正文

放大镜效果

题九:放大镜效果

要求:
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>
    <div class="con">
        <div class="small">
            <div class="black"></div>
        </div>
        <div class="big"></div>
    </div>
    <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>

视频:

放大镜效果

相关文章:

  • 图论算法篇:邻接矩阵以及邻接表和链式前向星建图
  • winfrom实现人脸识别比对功能
  • 大模型开发实战篇5:多模态--文生图模型API
  • 如何设置Python爬虫的User-Agent?
  • torch-xla动态shape——通过torch.nonzero分析mhlo实现
  • 第六天:requests库的用法
  • JS数组扁平化
  • Java与Go相比,有什么独特的优势
  • Openshift或者K8S上部署xxl-job
  • 电商分布式场景中如何保证数据库与缓存的一致性?实战方案与Java代码详解
  • vtkCamera类的Dolly函数作用及相机拉近拉远
  • 【力扣】199.二叉树的右视图
  • Pygame中自定义事件处理的方法2-1
  • DeepSeek-V3模型底层架构的核心技术一(多Token预测(MTP)技术)
  • Python 内置函数 isinstance
  • 【爬虫】使用 Scrapy 框架爬取豆瓣电影 Top 250 数据的完整教程
  • java八股文-mysql
  • SQL与数据库程序设计
  • 用队列实现栈
  • 人工智能之目标追踪DeepSort源码解读(yolov5目标检测,代价矩阵,余弦相似度,马氏距离,匹配与预测更新)
  • “子宫内膜异位症”相关论文男性患者样本超六成?福建省人民医院发布情况说明
  • 观察|印巴交火开始升级,是否会升级为第四次印巴战争?
  • 多个“网约摩托车”平台上线,工人日报:安全与监管不能掉队
  • 全军军级以上单位新任纪委书记监委主任培训班结业
  • 共生与伴生:关于人工智能时代艺术评论的对象与主体的思考
  • 科技赋能文化体验,“五一”假期“海昏侯”人气创新高