如何使用js模拟实现京东详情页图片放大效果
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章给大家分享的是有关如何使用js模拟实现京东详情页图片放大效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下效果:html: css:.prev
千家信息网最后更新 2025年11月09日如何使用js模拟实现京东详情页图片放大效果
这篇文章给大家分享的是有关如何使用js模拟实现京东详情页图片放大效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
具体内容如下
效果:
html:
css:
.preview_img { position: relative; height: 398px; border: 1px solid #ccc;}.mask { display: none; position: absolute; width: 300px; height: 300px; top: 0; left: 0; background: #FEFE4F; opacity: .5; border: 1px solid #ccc; cursor: move;}.big { display: none; position: absolute; width: 550px; height: 550px; top: 0; left: 410px; z-index: 999; border: 1px solid #ccc; overflow: hidden;}.big img { position: absolute; left: 0; top: 0;}js(重点):
window.addEventListener('load',function(){ var preview_img = document.querySelector('.preview_img'); var mask = this.document.querySelector('.mask'); var big = this.document.querySelector('.big'); var bigImg = this.document.querySelector('.bigImg'); //鼠标经过 preview_img.addEventListener('mouseover',function(){ mask.style.display = 'block'; big.style.display = 'block'; }) //鼠标移出去 preview_img.addEventListener('mouseout',function(){ mask.style.display = 'none'; big.style.display = 'none'; }) //鼠标移动的时候 preview_img.addEventListener('mousemove',function(e){ //鼠标在盒子内的坐标 var x = e.pageX - this.offsetLeft; var y = e.pageY - this.offsetTop; //遮挡层移动的距离 var maskX = x - mask.offsetWidth/2; var maskY = y -mask.offsetHeight/2; //大图移动距离 //遮挡层的最大移动距离 var maskMaxX = preview_img.offsetWidth - mask.offsetWidth; var maskMaxY = preview_img.offsetHeight - mask.offsetHeight; //如果X坐标小于0 就让它停留在0 的位置 if (maskX <= 0) { maskX = 0; }else if (maskX >= maskMaxX) { maskX = maskMaxX; } //如果Y坐标小于0 就让它停留在0 的位置 if (maskY <= 0) { maskY = 0; }else if (maskY >= maskMaxY) { maskY = maskMaxY; } //遮挡层移动 mask.style.left = maskX + 'px'; mask.style.top = maskY + 'px'; //大图片最大移动距离 var bigMaxX = bigImg.offsetWidth - big.offsetWidth; var bigMaxY = bigImg.offsetHeight - big.offsetHeight; //大图片的移动距离 X Y // 大图片的移动距离 = 遮挡层移动距离 * 大图片最大移动距离 / 遮挡层的最大移动距离 var bigX = maskX * bigMaxX / maskMaxX; var bigY = maskY * bigMaxY / maskMaxY; //大图和小图(鼠标移动)方向相反 bigImg.style.left = -bigX + 'px'; bigImg.style.top = -bigY + 'px'; })})感谢各位的阅读!关于"如何使用js模拟实现京东详情页图片放大效果"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
移动
图片
鼠标
最大
效果
内容
坐标
详情
京东
位置
更多
篇文章
大图
不错
实用
文章
方向
时候
盒子
看吧
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
合肥壹间网络技术有限公司
计算机网络技术吉林大学
安全意识对网络安全的影响
vac 安全服务器游玩
Mysql 数据库和表
进化神经网络技术框架图学习
软件开发二三事
如何把网页发布到阿里云服务器
家用电脑服务器赚钱
上海荣耀手机出租服务器
idea软件数据库部分
网管和软件开发的区别
上海招网络安全工程师
长春做软件开发
金穗软件开发是干啥的
描述软件开发流程图
华中科技大学网络安全学院基地
数字技术与网络技术的联系
软件开发公司增值税如何计算
gprs核心网络技术
一个数据库多条记录
onenet连接数据库
软件开发名税
2021年软件开发行业分析
霓虹灯制作软件开发
域名还要配备服务器吗
惠普怎么进入网络安全模式
国家电网山东电力公司网络安全
深圳市软件开发公司联系电话
奥拉星共几个服务器