js实现商品添加(js实现购物网站放大镜功能)
类别:编程学习 浏览量:1763
时间:2021-10-16 00:36:33 js实现商品添加
js实现购物网站放大镜功能本文实例为大家分享了js实现购物网站放大镜功能的具体代码,供大家参考,具体内容如下
首先看效果图:
先是布局,左边一个小图框,包含一个鼠标移动框,右边一个放大框。
<li class="box"> <li class="small"> <img src="small3.jpg" alt="js实现商品添加(js实现购物网站放大镜功能)" border="0" />
写一下css
.small{ position: relative; float: left; width: 450px; height: 450px; border:1px solid #000; } .small .move{ position: absolute; top:0; width: 300px; height: 300px; background-color: rgba(0,0,0,0.4); cursor:move; display: none; } .big{ position: relative; float: left; width: 540px; height: 540px; margin-left: 20px; overflow: hidden; border:1px solid #000; display: none; } .big img{ position: absolute; top:0; left: 0; }
js部分:
var box=document.getElementsByClassName('box')[0],small=box.getElementsByClassName('small')[0],move=small.getElementsByClassName('move')[0],smallImg=small.getElementsByTagName('img')[0],big=box.getElementsByClassName('big')[0],bigImg=big.getElementsByTagName('img')[0]; //首先把需要的元素都获取出来 small.onmouseover=function(){ move.style.display='block'; big.style.display="block"; }; small.onmouseout=function(){ move.style.display='none'; big.style.display="none"; }; small.onmousemove=function(e){ e=e||window.event;//兼容性考虑 var x=e.clientX-smallImg.getBoundingClientRect().left-move.offsetWidth/2; var y=e.clientY-smallImg.getBoundingClientRect().top-move.offsetHeight/2; if(x<0){ x=0; } if(x>smallImg.offsetWidth-move.offsetWidth){ x=smallImg.offsetWidth-move.offsetWidth; } if(y<0){ y=0; } if(y>smallImg.offsetHeight-move.offsetHeight){ y=smallImg.offsetHeight-move.offsetHeight; } move.style.left=x+"px"; move.style.top=y+"px"; //实现左边move块跟随鼠标移动的代码 var scale=bigImg.offsetWidth/smallImg.offsetWidth; //按照比例放大 bigImg.style.left='-'+x*scale+'px'; //因为图片是需要左移和上移的所以要加负号 bigImg.style.top='-'+y*scale+'px'; }
放大镜效果就实现啦!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- lombok 代码行数(Lombok实现方式JSR-269)
- extjs anchor 锚点布局
- sqlserver如何生成xml文件(实现SQL Server 原生数据从XML生成JSON数据的实例代码)
- sqlserver字段说明(详解SQL Server 中 JSON_MODIFY 的使用)
- 如何判断数据是json还是字符串(JSON.stringify的多种用法总结)
- extjs多选下拉框
- 用javascript解析json(JavaScript JSON.stringify的使用总结)
- nodejs启动web服务器(使用NODE.JS创建一个WEBSERVER服务器的步骤)
- python class转json(Python对象转换为json的方法步骤)
- js实现string.format 字符串占位符
- js如何生成随机数
- js简单小游戏代码(用JS实现飞机大战小游戏)
- js实现图片旋转
- js闭包可以解决哪些问题(JavaScript中let避免闭包造成问题)
- 禁止鼠标右键的JS代码
- js三级联动说明(基于JavaScript实现省市联动效果)
- 挑战新国标电自天花板,九号机械师MMAX 110P深度体验(挑战新国标电自天花板)
- 《满江红》不要只当电影看,学生应该这样做(满江红不要只当电影看)
- 电影《民间怪谈录之走阴人》定档8月5日,开启一场中式惊悚之旅(电影民间怪谈录之走阴人定档8月5日)
- 原创图画书,以儿童视角讲述中国故事(以儿童视角讲述中国故事)
- 八月再见 愿你岁月不扰,余生静好(八月再见愿你岁月不扰)
- 赏读 八月再见,九月你好(赏读八月再见九月你好)
热门推荐
- css透明输入框(纯CSS实现气泡对话框尖角处理方案)
- pythonmatplotlib怎么画区域(python matplotlib实现双Y轴的实例)
- 微信小程序计数器代码(微信小程序实现计算器案例)
- sql中row的用法(sql server数据库中raiserror函数用法的详细介绍)
- mysql查询性能优化详解(实例讲解MySQL 慢查询)
- js对日期加减指定天、时、分、秒
- python用于机器人(python控制nao机器人身体动作实例详解)
- python闭包的讲解(详解python函数的闭包问题内部函数与外部函数详述)
- ftp服务器怎么搭建linux(Linux下使用vsftp搭建FTP服务器附参数说明)
- php里的fpm是什么(phpfpm的作用和用法)