基于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某一元素重复绑定的问题
Jan 03 Javascript
javascript制作游戏开发碰撞检测的封装代码
Mar 31 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
全屏滚动插件fullPage.js使用实例解析
Oct 21 Javascript
Node.js数据库操作之连接MySQL数据库(一)
Mar 04 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
解决vue-router进行build无法正常显示路由页面的问题
Mar 06 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
vue实现页面滚动到底部刷新
Aug 16 Javascript
jQuery实现轮播图效果demo
Jan 11 jQuery
JS图片懒加载技术实现过程解析
Jul 27 Javascript
JS实现扫雷项目总结
May 19 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
php 远程关机操作的代码
2008/12/05 PHP
php不写闭合标签的好处
2014/03/04 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
PHP面向对象五大原则之依赖倒置原则(DIP)详解
2018/04/08 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
人工神经网络算法知识点总结
2019/06/11 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
python实现扫雷游戏的示例
2020/10/20 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
高中毕业生自我鉴定例文
2013/12/29 职场文书
公司中秋节活动方案
2014/02/12 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
建议书标准格式
2014/03/12 职场文书
2014年宣传工作总结
2014/11/18 职场文书
自荐信怎么写
2015/03/04 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
Mysql忘记密码解决方法
2022/02/12 MySQL