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中的undefined学习总结
Nov 30 Javascript
jquery中交替点击事件的实现代码
Feb 14 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
jquery自定义插件开发之window的实现过程
May 06 Javascript
JS Ajax请求如何防止重复提交
Jun 13 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
Nov 12 Javascript
详解如何较好的使用js
Dec 16 Javascript
jQuery拖拽通过八个点改变div大小
Nov 29 Javascript
Vue resource中的GET与POST请求的实例代码
Jul 21 Javascript
js实现简单贪吃蛇游戏
May 15 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和javascript之间变量的传递实现代码
2012/12/19 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
jquery的extend和fn.extend的使用说明
2011/01/09 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
jQuery层级选择器实例代码
2017/02/06 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
VUE 3D轮播图封装实现方法
2018/07/03 Javascript
Jquery获取radio选中值实例总结
2019/01/17 jQuery
微信小程序地图实现展示线路
2020/07/29 Javascript
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
在Django中创建URLconf相关的通用视图的方法
2015/07/20 Python
Python连接DB2数据库
2016/08/27 Python
selenium+python自动化测试之鼠标和键盘事件
2019/01/23 Python
matplotlib.pyplot画图并导出保存的实例
2019/12/07 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
单位刻章介绍信范文
2014/01/11 职场文书
审计主管岗位职责
2014/01/31 职场文书
文明村创建实施方案
2014/03/27 职场文书
地球一小时倡议书
2014/04/15 职场文书
公司捐款倡议书
2014/05/14 职场文书
欠款起诉书范文
2015/05/19 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
React如何创建组件
2021/06/27 Javascript
PostgreSQL基于pgrouting的路径规划处理方法
2022/04/18 PostgreSQL