原生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 相关文章推荐
Extjs 几个方法的讨论
Jan 28 Javascript
jQuery对象和DOM对象的相互转化实现代码
Mar 02 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
Mar 14 Javascript
js生成验证码并直接在前端判断
May 15 Javascript
JS区分浏览器页面是刷新还是关闭
Apr 17 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
Jun 27 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
Sep 06 Javascript
jquery获取easyui日期控件的值实现方法
Nov 09 Javascript
详解ng-alain动态表单SF表单项设置必填和正则校验
Jun 11 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 Javascript
js+canvas实现画板功能
Sep 13 Javascript
详解JavaScript 的执行机制
Sep 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
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
简单的php写入数据库类代码分享
2011/07/26 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
php打印一个边长为N的实心和空心菱型的方法
2015/03/02 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
对联广告js flash激活
2006/10/19 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
2019/05/29 Javascript
Python更新数据库脚本两种方法及对比介绍
2017/07/27 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Java及python正则表达式详解
2017/12/27 Python
Python线程创建和终止实例代码
2018/01/20 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
python实现合并两个排序的链表
2019/03/03 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
基于python3实现倒叙字符串
2020/02/18 Python
Python接口测试文件上传实例解析
2020/05/22 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
马云的职业生涯规划之路
2014/01/01 职场文书
天猫某品牌专卖店运营计划书
2014/03/21 职场文书
爱国演讲稿400字
2014/05/07 职场文书
领导干部作风建设总结
2014/10/23 职场文书
丧事答谢词
2015/01/05 职场文书
物业工程部岗位职责
2015/02/11 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书