原生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 相关文章推荐
javascript Math.random()随机数函数
Nov 04 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
Mar 25 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
Javascript对象Clone实例分析
Jun 09 Javascript
JS判断元素是否在数组内的实现代码
Mar 30 Javascript
微信小程序  网络请求API详解
Oct 25 Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 Javascript
详谈angularjs中路由页面强制更新的问题
Apr 24 Javascript
解决vue keep-alive 数据更新的问题
Sep 21 Javascript
jsonp跨域获取百度联想词的方法分析
May 13 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
Sep 12 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
PHP DataGrid 实现代码
2009/08/12 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
javascript轻量级模板引擎juicer使用指南
2014/06/22 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
python Flask 装饰器顺序问题解决
2018/08/08 Python
python绘制封闭多边形教程
2020/02/18 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
python批量修改交换机密码的示例
2020/09/22 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
佛罗里达州印第安河新鲜水果:Hale Groves
2017/02/20 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题
中专生职业生涯规划书范文
2013/12/29 职场文书
庆七一活动总结
2014/08/27 职场文书
销售员岗位职责范本
2015/04/11 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书