js放大镜放大购物图片效果


Posted in Javascript onJanuary 18, 2017

图片放大镜效果,供大家参考,具体内容如下

一难点:不让黄盒子出界

二难点:让大盒子相应移动(比例)

<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>我的放大镜</title>
 <style>
  *{
   margin: 0;
   padding: 0;
  }
  .box{
   margin: 100px;
   position: relative;
  }
  .small{
   width: 350px;
   height: 350px;
   border: 1px solid #999;
   position: relative;
  }
  .select{
   display: none;
   width: 100px;
   height: 100px;
   background: rgba(255,255,0,0.4);
   position: absolute;
   left: 0;
   top: 0;
   cursor: move;

  }
  .big{
   display: none;
   position: absolute;
   left: 360px;
   top: 0;
   width: 450px;
   height: 450px;
   border: 1px solid #ccc;
   overflow: hidden;
  }
  .big img{
   position: absolute;
   left: 0;
   top: 0;
  }
 </style> 
</head>
<body>
 <div class="box">
  <div class="small" id="smallbox">
   <img src="images/001.jpg" alt="">
   <div class="select" id="mask" style="display:none;"></div>
  </div>

  <div class="big" id="bigbox">
   <img src="images/0001.jpg" alt="">
  </div>
 </div>

 <script> 
  var smallbox = document.getElementById('smallbox');
  var bigbox = document.getElementById('bigbox');
  var mask = document.getElementById('mask');
  var bigImg = bigbox.children[0];
  smallbox.onmouseover = function(){
   mask.style.display = "block";
   bigbox.style.display = "block";
  }
  smallbox.onmouseout = function(){
   mask.style.display = "none";
   bigbox.style.display = "none";
  }

  smallbox.onmousemove = function(event){
   var event = event || window.event;

   var x = event.clientX - this.offsetParent.offsetLeft - mask.offsetWidth/2;
   var y = event.clientY - this.offsetParent.offsetTop - mask.offsetHeight/2;
   //不让黄盒子出界
   if(x < 0){
    x = 0;
   }else if(x > smallbox.offsetWidth - mask.offsetWidth){
    x = smallbox.offsetWidth - mask.offsetWidth;
   }

   if(y<0) {
    y = 0;
   }else if(y > smallbox.offsetHeight - mask.offsetHeight){
     y = smallbox.offsetHeight - mask.offsetHeight;
   }
   mask.style.left = x + "px";
   mask.style.top = y + "px";

   bigImg.style.left = -x/smallbox.offsetWidth * bigbox.offsetWidth + "px"; //注意是-x
   bigImg.style.top = -y/smallbox.offsetHeight * bigbox.offsetHeight + "px";
  }
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery ajax 登录验证实现代码
Sep 23 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
Jul 18 Javascript
JQuery+Ajax无刷新分页的实例代码
Feb 08 Javascript
JavaScript使用focus()设置焦点失败的解决方法
Sep 03 Javascript
javascript使用call调用微信API
Dec 15 Javascript
浅谈angular懒加载的一些坑
Aug 20 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
AngularJS修改model值时,显示内容不变的实例
Sep 13 Javascript
在vue里使用codemirror遇到的问题
Nov 01 Javascript
如何实现小程序tab栏下划线动画效果
May 18 Javascript
AngularJs中$cookies简单用法分析
May 30 Javascript
详解vue 中使用 AJAX获取数据的方法
Jan 18 #Javascript
easyui 中的datagrid跨页勾选问题的实现方法
Jan 18 #Javascript
JavaScript日期对象(Date)基本用法示例
Jan 18 #Javascript
jQuery中的一些小技巧
Jan 18 #Javascript
AngularJS Select(选择框)使用详解
Jan 18 #Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 #Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 #Javascript
You might like
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
探寻Javascript执行效率问题
2014/11/12 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
质量安全标语
2014/06/07 职场文书
大跃进口号
2014/06/16 职场文书
雷人标语集锦
2014/06/19 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
优秀班集体申报材料
2014/12/25 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
表扬信格式模板
2015/05/05 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android