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 弹出窗体点击按钮返回选择数据的实现
Apr 01 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
Apr 11 Javascript
获取表单控件原始(初始)值的方法
Aug 21 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 jQuery
VUE实现一个分页组件的示例
Sep 13 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
bootstrap下拉框动态赋值方法
Aug 10 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
Nov 08 Javascript
使用preload预加载页面资源时注意事项
Feb 03 Javascript
javascript+css实现进度条效果
Mar 25 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
javascript实现拖放效果
2015/12/16 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
vue系列之动态路由详解【原创】
2017/09/10 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
Vue使用高德地图搭建实时公交应用功能(地图 + 附近站点+线路详情 + 输入提示+换乘详情)
2018/05/16 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Pandas中Series和DataFrame的索引实现
2019/06/27 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python turtle 绘制太极图的实例
2019/12/18 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
keras 读取多标签图像数据方式
2020/06/12 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
Python编写单元测试代码实例
2020/09/10 Python
使用HTML5 Canvas API控制字体的显示与渲染的方法
2016/03/24 HTML / CSS
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
工作失职检讨书范文
2014/01/16 职场文书
狮子林导游词
2015/02/03 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
python 实现图与图之间的间距调整subplots_adjust
2021/05/21 Python
Python自动化爬取天眼查数据的实现
2021/06/15 Python
HTML怎么设置下划线?html文字加下划线方法
2021/12/06 HTML / CSS