基于JavaScript实现购物网站商品放大镜效果


Posted in Javascript onSeptember 06, 2016

大家几乎都有在网上购物的经验,有的网站会有一个商品放大镜功能,就是把鼠标移到图片上的时候,旁边会有另外一张大的图片展示,等同于放大镜效果,那这样的效果怎样实现的呢,我把代码发给大家,请大家参考。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>放大镜</title>
<style>
*{margin:0;padding: 0;}
#warp{width: 1184px;height:500px;margin:50px auto 0;background-color: #ccc;overflow: hidden;padding: 10px;position: relative;}
#warp #minbox{width: 350px;height: 350px;float: left;position: relative;}
#maxbox{width: 400px;height: 400px;position: absolute;left: 380px;overflow: hidden;display: none;}
#maxbox img{width: 800px;height: 800px;position: absolute;}
#con{float: left;margin-left: 20px;}
#meng{width: 175px;height: 175px;position: absolute;background-color:yellow;opacity:0.4;filter:alpha(opacity=40);left: 0;top: 0;display: none;}
</style>
</head>
<body>
<div id="warp">
<div id="minbox">
<img src="images/min.jpg" alt="">
<p id="meng"></p>
</div>
<div id="maxbox">
<img src="images/max.jpg" alt="">
</div>
<div id="con">
<img src="images/msg.png" alt="">
</div>
</div>
<script>
var minbox=document.getElementById('minbox');
var meng=document.getElementById('meng');
var maxbox=document.getElementById('maxbox');
var maximg=maxbox.getElementsByTagName('img')[0];
var minimg=minbox.getElementsByTagName('img')[0];
function offsetTL(obj){
var ofL=0,ofT=0;
while(obj){
ofL+=obj.offsetLeft+obj.clientLeft;
ofT+=obj.offsetTop+obj.clientTop;
obj=obj.offsetParent;
}
return{left:ofL,top:ofT};
}
minbox.onmousemove=function(e){
var e=e||window.event;
meng.style.display='block';
maxbox.style.display='block';
var niubi1=e.clientX-offsetTL(minbox).left-meng.clientWidth/2;//蒙板的X坐标
var niubi2=e.clientY-offsetTL(minbox).top-meng.clientHeight/2;//蒙板的Y坐标
var bili=maximg.clientWidth/minimg.clientWidth;
if (niubi1<=0) {
niubi1=0;
}else if (niubi1>=minbox.clientWidth-meng.clientWidth) {
niubi1=minbox.clientWidth-meng.clientWidth;
}
if (niubi2<=0) {
niubi2=0;
}else if (niubi2>=minbox.clientHeight-meng.clientHeight) {
niubi2=minbox.clientHeight-meng.clientHeight;
}
console.log(niubi1);
console.log(niubi2);
meng.style.left=niubi1+'px';
meng.style.top=niubi2+'px';
maximg.style.left=-parseInt(meng.style.left)*bili+'px';
maximg.style.top=-parseInt(meng.style.top)*bili+'px';
}
minbox.onmouseout=function(){
meng.style.display='none';
maxbox.style.display='none';
}
</script>
</body>
</html>

以上所述是小编给大家介绍的基于JavaScript实现购物网站商品放大镜效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
各种效果的jquery ui(接口)介绍
Sep 17 Javascript
javascript利用apply和arguments复用方法
Nov 25 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
Oct 28 Javascript
基于Vue.js实现简单搜索框
Mar 26 Javascript
原生js实现打字动画游戏
Feb 04 Javascript
Vue中img的src属性绑定与static文件夹实例
May 18 Javascript
在Vue.js中使用Mixins的方法
Sep 12 Javascript
Vue按需加载的具体实现
Dec 02 Javascript
js中DOM事件绑定分析
Mar 18 Javascript
小程序云开发部署攻略(图文教程)
Oct 30 Javascript
Vue.js实现备忘录功能
Jun 26 Javascript
AngularGauge 属性解析详解
Sep 06 #Javascript
AngularJS 面试题集锦
Sep 06 #Javascript
BootStrap glyphicon图标无法显示的解决方法
Sep 06 #Javascript
JS原型链 详解及示例代码
Sep 06 #Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 #Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 #Javascript
fullpage.js全屏滚动插件使用实例
Sep 06 #Javascript
You might like
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
php旋转图片90度的方法
2013/11/07 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
JS模板实现方法
2013/04/03 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
JS清除字符串中重复值的实现方法
2016/08/03 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
2018/01/03 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
美国老牌主机服务商:iPage
2016/07/22 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
会计实习生自我鉴定
2013/12/12 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
小学英语教学反思范文
2016/02/15 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书