位置: IT常识 - 正文

js实现图片的放大缩小(鼠标长按拖拽、鼠标滚轮控制放大缩小)(js图片放大代码)

编辑:rootadmin
js实现图片的放大缩小(鼠标长按拖拽、鼠标滚轮控制放大缩小) 系列文章目录文章目录系列文章目录背景与效果图1.背景如下(功能图):2.效果图如下:拖拽后的效果缩放的效果放大的效果一、功能:支持鼠标长按拖拽1.鼠标事件:2.拖拽功能流程3.拖拽部分代码如下二、功能:滚轮控制图片放大缩小1.鼠标事件(推荐使用onwheel;mousewheel存在安全隐患)2.功能流程:3.具体代码如下:三、案例功能的完整代码如下:四、总结(一定要看,功能是有坑的)背景与效果图1.背景如下(功能图):

推荐整理分享js实现图片的放大缩小(鼠标长按拖拽、鼠标滚轮控制放大缩小)(js图片放大代码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript图片放大,js怎么放图片,js点击图片让图片放大显示,js图片局部放大,js图片展示,js实现图片的放大功能,js图片展示,js怎么放图片,内容如对您有帮助,希望把文章链接给更多的朋友!

该功能的需求点事2个月前的一个需求,当时采用的是Element-UI中的image图片做的一个功能,但是不能满足产品真实的需求,只能定制化自己封装。

该功能在Vue2 的element-UI中还是比较鸡肋的 ⬇️ ⬇️ Element-UI

该功能在Emenent-UI-plus(vue3)版本已经很好的支持了。 完整功能如下link⬇️ ⬇️ Element-Plus的Image标签

2.效果图如下:拖拽后的效果

缩放的效果

放大的效果

一、功能:支持鼠标长按拖拽1.鼠标事件:js实现图片的放大缩小(鼠标长按拖拽、鼠标滚轮控制放大缩小)(js图片放大代码)

onmouseup : 按键弹起事件 onmousemove :鼠标移动事件 onmousedown :鼠标按下事件

2.拖拽功能流程

1.给 需要移动的盒子 添加鼠标按下事件 : onmousedown 盒子要添加绝对定位 。

2.并且给全局(window)注册鼠标移动事件 : onmousemove

3.给需要移动的盒子添加鼠标距离左侧和顶部的长度

4.在鼠标按键松开后把全局注册的鼠标事件移除 (到此拖拽的功能基本完成)

这里如果使用的是img标签作为图片展示的话,一定要把img上的长按拖拽事件先去除,要不然就回出现BUG

3.拖拽部分代码如下 var divMove = document.querySelector('div') divMove.onmousedown = function (e) { window.onmousemove = function (event) { divMove.style.left=event.clientX-e.target.offsetWidth/2+'px' divMove.style.top=event.clientY-e.target.offsetHeight/2+'px' } } divMove.onmouseup=function(){ window.onmousemove =null }二、功能:滚轮控制图片放大缩小1.鼠标事件(推荐使用onwheel;mousewheel存在安全隐患)

1.onwheel : wheel当用户旋转定点设备(通常是鼠标)上的滚轮按钮时会触发该事件。(现在主流的浏览器都支持该事件)

2.mousewheel : 操作鼠标滚轮或类似设备时异步触发该事件。它由MouseWheelEvent界面表示

2.功能流程:

1.获取需要放大缩小的盒子DOM 给盒子绑定onwheel事件(这个事件里面存在在谷歌和火狐上放大和缩小的Api不准确,建议先尝试确认下)

2.给需要放大缩小的盒子DOM 添加Css样式 scale控制图片的缩放

3.具体代码如下: //scale是为了控制图片大小为正常渲染 let scale = 1 divMove.onwheel=function(e){ if(e.wheelDelta>0){ scale+=0.05 divMove.style.transform=`scale(${scale})` }else{ scale-=0.05 divMove.style.transform=`scale(${scale})` } }三、案例功能的完整代码如下:<!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> <style> div { width: 500px; background-color: antiquewhite; position: absolute; background-image: url("https://top-mvp-img.xhscdn.com/miniimg/1000g1i81etmd8is4o0003oqd6mc015uq3uh1hcg"); background-repeat: no-repeat; background-size: 100% 100%; } </style></head><body> <button>重置</button> <div><img style=" width: 100%; visibility: hidden;" src="https://top-mvp-img.xhscdn.com/miniimg/1000g1i81etmd8is4o0003oqd6mc015uq3uh1hcg" alt=""></div></body><script> var button =document.querySelector('button') button.onclick=function(){ divMove.style.top=40+'px' divMove.style.left=10+'px' scale=1 divMove.style.transform=`scale(${scale})` } var divMove = document.querySelector('div') divMove.onmousedown = function (e) { window.onmousemove = function (event) { divMove.style.left=event.clientX-e.target.offsetWidth/2+'px' divMove.style.top=event.clientY-e.target.offsetHeight/2+'px' } } divMove.onmouseup=function(){ window.onmousemove =null } let scale = 1 divMove.onwheel=function(e){ if(e.wheelDelta>0){ scale+=0.05 divMove.style.transform=`scale(${scale})` }else{ scale-=0.05 divMove.style.transform=`scale(${scale})` } }</script></html>四、总结(一定要看,功能是有坑的)

在完整的代码里面给出了,多种解决图片拖拽和onmousemove冲突的问题,第一种:可以使用background-image代替img标签;第二种:可以使用img标签添加css的属性解决这个问题。

只是写了简易的功能,主要是为了给大家提供思路,可以通过这个小案例,完善自己的需求。

本文链接地址:https://www.jiuchutong.com/zhishi/278034.html 转载请保留说明!

上一篇:deepin20语音记事本在哪? deepin语音记事本的使用方法(deepin声音)

下一篇:win10待机自动关机怎么办(win10待机自动关机软件)

  • 苹果指南针在哪里打开(苹果指南针在哪里设置)

    苹果指南针在哪里打开(苹果指南针在哪里设置)

  • MIUI纯净模式怎么关(小米手机纯净模式是什么意思)

    MIUI纯净模式怎么关(小米手机纯净模式是什么意思)

  • 孩子辽事通怎么注册

    孩子辽事通怎么注册

  • 光猫无信号灯闪烁红灯是怎么回事(光猫无信号灯闪烁)

    光猫无信号灯闪烁红灯是怎么回事(光猫无信号灯闪烁)

  • 快手上传有赞商品信息无法识别(快手有赞商家版)

    快手上传有赞商品信息无法识别(快手有赞商家版)

  • 淘宝为什么搜不到电子烟(淘宝为什么搜不到GTA5)

    淘宝为什么搜不到电子烟(淘宝为什么搜不到GTA5)

  • 变焦版什么意思(变焦版和普通版)

    变焦版什么意思(变焦版和普通版)

  • word公式显示空白(word2010公式显示空白)

    word公式显示空白(word2010公式显示空白)

  • 为什么鸿业打开是cad界面(鸿业为什么破解不了)

    为什么鸿业打开是cad界面(鸿业为什么破解不了)

  • 微信显示有被盗风险登不上去(微信显示有被盗嫌疑怎么解除)

    微信显示有被盗风险登不上去(微信显示有被盗嫌疑怎么解除)

  • 电生磁的应用有哪些(电生磁的生活中的应用)

    电生磁的应用有哪些(电生磁的生活中的应用)

  • 电子书怎么下载到kindle(电子书怎么下载阅读免费)

    电子书怎么下载到kindle(电子书怎么下载阅读免费)

  • 美团人脸识别怎么不通过(美团人脸识别怎么破)

    美团人脸识别怎么不通过(美团人脸识别怎么破)

  • atx机箱和itx机箱区别

    atx机箱和itx机箱区别

  • 企业微信怎么更改手机号码(企业微信怎么更改打卡地点)

    企业微信怎么更改手机号码(企业微信怎么更改打卡地点)

  • 拼多多收藏商品有什么好处(拼多多收藏商品分类)

    拼多多收藏商品有什么好处(拼多多收藏商品分类)

  • iqooneo855版支持nfc吗(iqooneo855版支持5g吗)

    iqooneo855版支持nfc吗(iqooneo855版支持5g吗)

  • 快手怎么举报正在直播(快手上如何举报人)

    快手怎么举报正在直播(快手上如何举报人)

  • 侯补购票什么意思(侯补够票什么意思)

    侯补购票什么意思(侯补够票什么意思)

  • word中的标题占位符在哪(word标题占几行怎么设置)

    word中的标题占位符在哪(word标题占几行怎么设置)

  • oppo桌面小程序在哪(oppo桌面小程序变小了怎么恢复)

    oppo桌面小程序在哪(oppo桌面小程序变小了怎么恢复)

  • ps怎么隆鼻(如何用ps隆鼻)

    ps怎么隆鼻(如何用ps隆鼻)

  • 苹果系统截图快捷键(苹果系统截图快捷键设置)

    苹果系统截图快捷键(苹果系统截图快捷键设置)

  • hashmap有序还是无序(java hashmap是否有序)

    hashmap有序还是无序(java hashmap是否有序)

  • 路由器用户名和密码是什么(路由器用户名和密码忘了怎么查)

    路由器用户名和密码是什么(路由器用户名和密码忘了怎么查)

  • 三星手机如何下载app(三星手机如何下载微信)

    三星手机如何下载app(三星手机如何下载微信)

  • 小规模增值税会计处理流程
  • 利润总额亏损还有没有所得税
  • 企业个人所得税税率表2023
  • 增值税科目及会计处理
  • 公司替个人交的水电费计入哪里了
  • 企业账户被冻结可以去开其他账户吗
  • 电子税务局怎么注册
  • 化肥发票怎么开
  • 税收的组成
  • 银行承兑汇票怎么填写
  • 收到单位预交卖材料款如何做会计分录?
  • 调账以前年度损益调整如何结转
  • 货代行业增值税
  • 股东贷款可以转给其他人吗
  • 旧税号开出的发票能认证抵扣吗?
  • 进项税和销项税怎么区分
  • 取得增值税专用发票是否可以抵扣
  • 小微企业季度缴税一百万退税吗
  • 甲供材项目施工方怎样开票
  • 没给顾客发票需要罚款吗
  • 外币结算方式有哪几种
  • 个人独资企业收款码
  • 京挑客怎么赚钱
  • 已经销售但是没货怎么办
  • 培训机构收一年费用合法吗
  • 暂停装修
  • 华为手机如何关闭负一屏
  • 本月未认证的怎么处理
  • 华为手机悬浮导航是干什么用
  • 硬盘安装系统方法
  • php扩展编写
  • 线程是什么意思
  • linux配置多网卡设置
  • 公司过户费用怎么入账
  • 实收资本的会计编码
  • phpseessid
  • php面向对象的三大特征
  • 递延收益与递延所得税资产的区别
  • php xdebug配置
  • 人工智能 深度
  • 爬虫失败的原因
  • 进项税额转出会计分录
  • 旅行社代订的机票可以退吗
  • 工业企业应收应付会计怎样
  • 营改增后还有企业所得税吗?
  • 补记以前年度固定资产怎么记账
  • phpcms目录结构
  • 安装centos7.2
  • 酒店维修费是计入销售成本吗
  • 出售专利技术收增值税吗
  • 国债利息收入的分录
  • 实际发的工资跟个人所得税不一样怎么办
  • 网上交税已经缴费怎么退
  • 制造费用工资计入什么科目
  • 多交个税收到退回怎么办
  • 挂靠工程如何交纳税金帐务处理?
  • 营改增后税额计算公式
  • 增值税转型不得超过多少
  • 废品相关内容有哪些
  • 购入固定资产中的增值税
  • sqlserver 获取字符位置
  • win10好几个操作系统
  • xp桌面消失 右击无反应
  • macbookpro怎么测声音
  • 使用移动硬盘快速启动
  • win8只能应用商店下软件吗
  • 在windows中用户建立的文件默认具有的属性是
  • window8系统安装步骤
  • win7怎么禁止程序自启动
  • Android游戏开发读后感
  • css翻转正反面
  • linux自动清理磁盘空间
  • python3 functools
  • 甘肃国家税务局兰州专用章图片
  • 税务局赵昭
  • 教育培训机构都交哪些税
  • 中国银行手机银行app官方下载
  • 原木进项税率
  • 个体工商户银行卡是对公还是对私
  • 陕西的发票在哪里领取
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设