基于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 相关文章推荐
Iframe thickbox2.0使用的方法
Mar 05 Javascript
JavaScript 学习点滴记录
Apr 24 Javascript
基于JQuery.timer插件实现一个计时器
Apr 25 Javascript
Juqery Html(),append()等方法的Bug解决方法
Dec 13 Javascript
javascript 快速排序函数代码
May 30 Javascript
jQuery中has()方法用法实例
Jan 06 Javascript
使用Meteor配合Node.js编写实时聊天应用的范例
Jun 23 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
Nov 17 Javascript
easyui combobox开启搜索自动完成功能的实例代码
Nov 08 Javascript
MUI实现上拉加载和下拉刷新效果
Jun 30 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
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
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
js 得到文件后缀(通过正则实现)
2013/07/08 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Python的Flask框架的简介和安装方法
2015/11/13 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python实现Event回调机制的方法
2019/02/13 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
如何基于python操作excel并获取内容
2019/12/24 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
eBay德国站:eBay.de
2017/09/14 全球购物
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
成品仓管员岗位职责
2013/12/11 职场文书
项目合作协议书范本
2014/04/16 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
党员检讨书
2014/10/13 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript