首页 > 其他分享 >js实现鼠标图片放大缩小

js实现鼠标图片放大缩小

时间:2022-11-14 14:14:23浏览次数:48  
标签:el style 鼠标 js let 缩小 oHeight oWidth 图片

js实现鼠标图片放大缩小

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <img id="img" src="http://blog.aoxuelingshuang.com/ico/log.png?v=1.0.0.5" alt="" style="width: 100px;">
    <script>
        const img = document.querySelector('#img');
        RotateWheel(img);
        function RotateWheel(el) {
            document.onwheel = (e) => {
                let delta = (e.wheelDelta && (e.wheelDelta > 0 ? 1 : -1));
                if (delta > 0) {//放大
                    // 向上滚
                    let oWidth = el.offsetWidth;//取得图片的实际宽度
                    let oHeight = el.offsetHeight; //取得图片的实际高度

                    el.style.width = (oWidth + 50) + "px"
                    el.style.height = (oHeight + 50 / oWidth * oHeight) + "px"

                } else if (delta < 0) {//缩小
                    //向下滚
                    let oWidth = el.offsetWidth; //取得图片的实际宽度
                    let oHeight = el.offsetHeight; //取得图片的实际高度
                    if (el.offsetWidth > 100 || el.offsetHeight > 75) {//判断如果图片缩小到原图大小就停止缩小(100和75分别为原图的宽高)

                        el.style.width = oWidth - 50 + "px"
                        el.style.height = oHeight - 50 / oWidth * oHeight + "px"
                    }
                }
            }
        }
    </script>
</body>

</html>

当页面有滚动条时,放大缩小图片页面会抖动可以禁用滚动条

const body = document.querySelector('body');
body.style.overflow = 'hidden';

 

标签:el,style,鼠标,js,let,缩小,oHeight,oWidth,图片
From: https://www.cnblogs.com/Lmyong/p/16888856.html

相关文章

  • WPF学习 - 用鼠标移动、缩放、旋转图片(1)
    原文网址:https://www.cnblogs.com/raynado/p/16704856.html1.需求其实我的需求很简单。就是想做一个图片查看器,可以通过鼠标来平移、缩放、旋转图片。2.解决思路:......
  • 用jsp 实现断点续传 (HTTP)
    ​1、介绍enctypeenctype 属性规定发送到服务器之前应该如何对表单数据进行编码。enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用一样)1、1......
  • js作用域、作用域链和它的一些优化
    前言作用域和作用域链是所有JavaScript开发人员每天都要接触和应用的内容。不管是面试中的作用域链的面试考察,还是日常代码研发中变量与作用域链的构建,它的身影几乎无处不......
  • Nodejs:ESModule和commonjs,傻傻分不清
    最近写nodejs脚本的时候遇到了commonjs和ESModule的问题,正好之前用得稀里糊涂的,这次好好学习一下。ESModule导出仅导出namedexports:命名导出,每次可以导出一个或......
  • Nodejs相关ORM框架分析
    概述写这篇blog的原因,想找个node的ORM框架用用,确很难找到一篇对比分析这些ORM框架的文章,唯一找到了一篇,居然是通过star数来论英雄,我觉着很难服众,于是就找几个看看。后来又......
  • Nodejs+Redis实现简易消息队列
    前言消息队列是存储数据的一个中间件,可以理解为一个容器。生产者生产消息投递到队列中,消费者可以拉取消息进行消费,如果消费者目前没有消费的打算,则消息队列会保留消息,直......
  • 【Web技术】951- 如何打造一款标准的 JSSDK ?
    岳鹰全景监控,是阿里UC官方出品的先进移动应用线上监控平台,为开发者及企业提供一套完整的移动应用线上质量监控解决方案。岳鹰WEB前端监控,可实时监控页面性能、JS异常、资源......
  • django传递数据到前端的js使用
     djang的view文件中importjsondefeg(request):data=[{'name':'通过','value':20},{'name':'jack','value':14}]returnrender(request,"html文件",......
  • 3.JS
    1.简介JavaScript因为互联网而生,紧随着浏览器的出现而问世1997年7月,ECMAScript1.0发布。1998年6月,ECMAScript2.0版发布。1999年12月,ECMAScript3.0版发布,成为JavaSc......
  • js正则的一些常用知识点
    前言本文就是记录一下我平常会用到的正则一些知识点,长时间不用就会忘,在这里记录一下方便查找知识点? 匹配0个到1个内容[abc][12]能匹配3*2个内容,分别是a1,a2,b1,b2......