基于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 uaMatch源代码
Feb 14 Javascript
JavaScript利用append添加元素报错的解决方法
Jul 01 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
使用javascript实现简单的选项卡切换
Jan 09 Javascript
Jquery日期选择datepicker插件用法实例分析
Jun 08 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
Apr 21 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
url传递的参数值中包含&amp;时,url自动截断问题的解决方法
Aug 02 Javascript
浅谈Vue.js 组件中的v-on绑定自定义事件理解
Nov 17 Javascript
在nginx上部署vue项目(history模式)的方法
Dec 28 Javascript
关于vue组件事件属性穿透详解
Oct 28 Javascript
JavaScript ES6的函数拓展
Jan 18 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程序
2006/10/09 PHP
PHP 中dirname(_file_)讲解
2007/03/18 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
PHP中$GLOBALS与global的区别详解
2019/03/21 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
2020/04/23 PHP
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
2011/10/29 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
BootStrap的JS插件之轮播效果案例详解
2016/05/16 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
Angualrjs和bootstrap相结合实现数据表格table
2017/03/30 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
Vuejs监听vuex中值的变化的方法示例
2018/12/02 Javascript
一些可能会用到的Node.js面试题
2019/06/15 Javascript
axios实现文件上传并获取进度
2020/03/25 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
聊城大学毕业生自荐书
2014/02/01 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
学习保证书怎么写
2015/02/26 职场文书
golang内置函数len的小技巧
2021/07/25 Golang
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL