基于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 相关文章推荐
js 用CreateElement动态创建标签示例
Nov 20 Javascript
jQuery.position()方法获取不到值的安全替换方法
Mar 13 Javascript
JavaScript的jQuery库中ready方法的学习教程
Aug 14 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
Webpack优化配置缩小文件搜索范围
Dec 25 Javascript
vue2.0 实现页面导航提示引导的方法
Mar 13 Javascript
Babel 入门教程学习笔记
Jun 13 Javascript
axios简单实现小程序延时loading指示
Jul 30 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
Jun 06 Javascript
Vue实现剪贴板复制功能
Dec 31 Javascript
jQuery操作动画完整实例分析
Jan 10 jQuery
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 socket方式提交的post详解
2008/07/19 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
JavaScript拆分字符串时产生空字符的解决方案
2014/09/26 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
4个顶级开源JavaScript图表库
2018/09/29 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python简单实现Base64编码和解码的方法
2017/04/29 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
对Python中DataFrame选择某列值为XX的行实例详解
2019/01/29 Python
Django中URL的参数传递的实现
2019/08/04 Python
Python如何合并多个字典或映射
2020/07/24 Python
香港个人化生活购物网站:Ballyhoo Limited
2016/09/10 全球购物
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
德国亚马逊官方网站:Amazon.de
2020/11/15 全球购物
运动会通讯稿100字
2014/01/31 职场文书
大班亲子运动会方案
2014/06/10 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
旅游活动总结
2014/08/27 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
领导个人查摆剖析材料
2014/10/29 职场文书
网络管理员岗位职责
2015/02/12 职场文书
七一活动主持词
2015/06/29 职场文书
js不常见操作运算符总结
2021/11/20 Javascript
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS