原生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
JQuery学习笔录 简单的JQuery
Apr 09 Javascript
JavaScript二维数组实现的省市联动菜单
May 08 Javascript
45个JavaScript编程注意事项、技巧大全
Feb 11 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
May 31 Javascript
Bootstrap开发实战之第一次接触Bootstrap
Jun 02 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
Oct 11 Javascript
Vue自定义指令介绍(2)
Dec 08 Javascript
微信小程序 地图map详解及简单实例
Jan 10 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
Jun 01 Javascript
vue实现移动端input上传视频、音频
Aug 18 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
smarty实例教程
2006/11/19 PHP
php split汉字
2009/06/05 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
JS重要知识点小结
2011/11/06 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
JS跨域问题详解
2014/11/25 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
使用VUE实现在table中文字信息超过5个隐藏鼠标移到时弹窗显示全部
2019/09/16 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python函数装饰器原理与用法详解
2019/08/16 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
《油菜花开了》教学反思
2014/02/22 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
卖房授权委托书样本
2014/10/05 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
小学生反邪教心得体会
2016/01/15 职场文书