基于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 相关文章推荐
Javascript 构造函数 实例分析
Nov 26 Javascript
jquery $.ajax相关用法分享
Mar 16 Javascript
Jquery UI震动效果实现原理及步骤
Feb 04 Javascript
jQuery实现的在线答题功能
Apr 12 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
Jun 08 Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
Nov 01 Javascript
JS验证码实现代码
Sep 14 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
Dec 25 Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 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
MySQL数据源表结构图示
2008/06/05 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
js类中的公有变量和私有变量
2008/07/24 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
中止javascript执行的方法
2014/02/14 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
Python抓取电影天堂电影信息的代码
2016/04/07 Python
python中子类继承父类的__init__方法实例
2016/12/15 Python
python下读取公私钥做加解密实例详解
2017/03/29 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
Python实现替换文件中指定内容的方法
2018/03/19 Python
python/golang 删除链表中的元素
2020/09/14 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
大客户销售经理职责
2013/12/04 职场文书
外贸英语专业求职信范文
2013/12/25 职场文书
党课学习思想汇报
2014/01/02 职场文书
北京大学自荐信范文
2014/01/28 职场文书
《凡卡》教学反思
2014/04/09 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
Vue实现跑马灯样式文字横向滚动
2021/11/23 Vue.js
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python