基于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中的new的使用方法与注意事项
May 16 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
Jul 27 Javascript
每天一篇javascript学习小结(Array数组)
Nov 11 Javascript
fullpage.js全屏滚动插件使用实例
Sep 06 Javascript
Vue.js快速入门实例教程
Oct 15 Javascript
angular-ui-sortable实现可拖拽排序列表
Dec 28 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
Mar 08 Javascript
Angular排序实例详解
Jun 28 Javascript
vue非父子组件通信问题及解决方法
Jun 11 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
May 15 Javascript
vue+element项目中过滤输入框特殊字符小结
Aug 07 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
重置版宣传动画
2020/04/09 魔兽争霸
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
2016/01/07 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
javascript适合移动端的日期时间拾取器
2015/11/10 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
基于对象合并功能的实现示例
2017/10/10 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
vue环形进度条组件实例应用
2018/10/10 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
vue组件库的在线主题编辑器的实现思路
2020/04/03 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
Python jieba库用法及实例解析
2019/11/04 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
2020/01/04 Python
django form和field具体方法和属性说明
2020/07/09 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
单位门卫岗位职责
2013/12/20 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
绿色小区申报材料
2014/08/22 职场文书
2014年办公室工作总结范文
2014/11/12 职场文书
行政二审代理词
2015/05/25 职场文书
Python list列表删除元素的4种方法
2021/11/01 Python
yolov5返回坐标的方法实例
2022/03/17 Python
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫