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 相关文章推荐
JS版网站风格切换实例代码
Oct 06 Javascript
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
Oct 14 Javascript
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
深入理解jquery自定义动画animate()
May 24 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
Webpack实战加载SVG的方法
Dec 26 Javascript
详解ES6 系列之异步处理实战
Oct 26 Javascript
浅谈js中的bind
Mar 18 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
Sep 02 Javascript
小程序实现图片移动缩放效果
May 26 Javascript
javascript实现移动端轮播图
Dec 09 Javascript
手写Vue源码之数据劫持示例详解
Jan 04 Vue.js
详解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
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
PHP同时连接多个mysql数据库示例代码
2014/03/17 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
js显示时间 js显示最后修改时间
2013/01/02 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
2014/06/24 Javascript
使用js实现数据格式化
2014/12/03 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
React中嵌套组件与被嵌套组件的通信过程
2018/07/11 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
Django获取应用下的所有models的例子
2019/08/30 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
Pytorch之contiguous的用法
2019/12/31 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
C# Debug和Testing相关面试题
2015/10/25 面试题
毕业研究生的自我鉴定
2013/11/30 职场文书
司机职责范本
2014/03/08 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
媒体宣传策划方案
2014/05/25 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
自我检讨书怎么写
2015/05/07 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书