原生js仿淘宝网商品放大镜效果


Posted in Javascript onFebruary 28, 2017

效果图:(实例图片由自己添加)

原生js仿淘宝网商品放大镜效果

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>仿淘宝放大镜特效</title>
 <style type="text/css">
 *{margin: 0;padding: 0;}
 #demo{width:350px;height:350px;border: 1px solid #000;position:relative;margin:100px;}
 #smil_box{width: 350px;height: 350px;position:relative;}
 #mask{width:175px;height: 175px;background:rgba(255,255,0,0.4);position:absolute;top:0;left:0;display:none;cursor:move;}
 #big_box{width: 400px;height: 400px;position:absolute;top:0;left:360px;border: 1px solid #000;overflow:hidden;display:none;}
 #big_box img{position:absolute;top:0;left:0;}
 </style>
</head>
<body>
 <div id="demo">
 <div id="smil_box">
 <img src="http://www.qdfuns.com/misc.php?mod=attach&genre=editor&aid=193662baf63738c68b594f3ec920769f" height="350" width="350" alt="">
 <div id="mask"></div>
 </div>
 <div id="big_box">
 <img src="http://www.qdfuns.com/misc.php?mod=attach&genre=editor&aid=3e8b3554eb90dd13fa0f82465ac6d382" height="800" width="800" alt="" id="big_img">
 </div>
 </div>
</body>
<script type="text/javascript">
 (function(window){
 function $(id){
 return document.getElementById(id);
 };
 // 获取对象
 var demo = $("demo"),smilBox = $("smil_box"),mask = $("mask"),bigImg = $("big_img"),bigBox = $("big_box");
 // smilBox的hover事件
 smilBox.onmouseover = function(){
 mask.style.display = "block";
 bigBox.style.display = "block";
 };
 smilBox.onmouseout = function(){
 mask.style.display = "none";
 bigBox.style.display = "none";
 };
 // 鼠标移动事件
 smilBox.onmousemove = function(event){
 var event = event || window.event;
 // 获取鼠标在页面上的坐标
 var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
 var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
 // mask的位置坐标
 var boxX = pageX - demo.offsetLeft;
 var boxY = pageY - demo.offsetTop;
 var maskX = boxX - mask.offsetWidth / 2;
 var maskY = boxY - mask.offsetHeight / 2;
 // 限制mask的移动范围
 if( maskX < 0 ){
 maskX = 0;
 };
 if( maskX > smilBox.offsetWidth - mask.offsetWidth){
 maskX = smilBox.offsetWidth - mask.offsetWidth;
 };
 if( maskY < 0 ){
 maskY = 0;
 };
 if( maskY > smilBox.offsetHeight - mask.offsetHeight){
 maskY = smilBox.offsetHeight - mask.offsetHeight;
 };
 // 黄色遮罩层的位置坐标
 mask.style.top = maskY + "px";
 mask.style.left = maskX + "px";
 // 大图片移动的比例
 var prop = ( bigImg.offsetWidth - bigBox.offsetWidth ) / (smilBox.offsetWidth - mask.offsetWidth);
 // 大图片的坐标
 var bigImgX = prop * maskX;
 var bigImgY = prop * maskY;
 bigImg.style.top = -bigImgY + "px";
 bigImg.style.left = -bigImgX + "px";
 }
 })(window)
</script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
让iframe框架网页在任何浏览器下自动伸缩
Aug 18 Javascript
JS动态添加与删除select中的Option对象(示例代码)
Dec 20 Javascript
一个JavaScript操作元素定位元素的实例
Oct 29 Javascript
jQuery实现的文字hover颜色渐变效果实例
Feb 20 Javascript
详解webpack 多入口配置
Jun 16 Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 Javascript
原生JS实现获取及修改CSS样式的方法
Sep 04 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
JS图片懒加载的优点及实现原理
Jan 10 Javascript
vscode 调试 node.js的方法步骤
Sep 15 Javascript
原生js实现可拖拽效果
Feb 28 #Javascript
javascript 面向对象function详解及实例代码
Feb 28 #Javascript
正则验证小数点后面只能有两位数的方法
Feb 28 #Javascript
原生js实现鼠标跟随效果
Feb 28 #Javascript
canvas实现简易的圆环进度条效果
Feb 28 #Javascript
JS实现的tab切换选项卡效果示例
Feb 28 #Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 #Javascript
You might like
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
YII动态模型(动态表名)支持分析
2016/03/29 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
JavaScript中的索引数组、关联数组和静态数组、动态数组讲解
2014/11/08 Javascript
js实现右键菜单功能
2016/11/28 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
python matplotlib画图实例代码分享
2017/12/27 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
Python之修改图片像素值的方法
2019/07/03 Python
python实现的爬取电影下载链接功能示例
2019/08/26 Python
超实用的 30 段 Python 案例
2019/10/10 Python
python三引号如何输入
2020/07/06 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
什么是Python包的循环导入
2020/09/08 Python
Python list和str互转的实现示例
2020/11/16 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
金士达面试非笔试
2012/03/14 面试题
汽车维修专业个人求职信范文
2014/01/01 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
升学宴答谢词
2015/01/05 职场文书
世界文化遗产导游词
2015/02/13 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
创卫工作总结2015
2015/04/22 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
关于的python五子棋的算法
2022/05/02 Python