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 相关文章推荐
javascript对象的property和prototype是这样一种关系
Mar 24 Javascript
爆炸式的JS圆形浮动菜单特效代码
Mar 03 Javascript
JavaScript改变CSS样式的方法汇总
May 07 Javascript
学习JavaScript设计模式(代理模式)
Dec 03 Javascript
深入理解js中this的用法
May 28 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
Oct 12 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 Javascript
原生js实现公告滚动效果
Jan 10 Javascript
从0搭建vue-cli4脚手架
Jun 17 Javascript
JavaScript常用工具函数库汇总
Sep 17 Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 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
php GUID生成函数和类
2014/03/10 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
浅谈PHP的$_SERVER[SERVER_NAME]
2017/02/04 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
javascript json2 使用方法
2010/03/16 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python flask安装和命令详解
2019/04/02 Python
Python之pymysql的使用小结
2019/07/01 Python
pandas的qcut()方法详解
2019/07/06 Python
wxPython实现文本框基础组件
2019/11/18 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
你的自行车健身专家:FaFit24
2016/11/16 全球购物
英国网上花店:Bunches
2016/11/29 全球购物
乔迁之喜主持词
2014/03/27 职场文书
超市采购员岗位职责
2015/04/07 职场文书