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 相关文章推荐
浅谈tudou土豆网首页图片延迟加载的效果
Jun 23 Javascript
jquery限制输入字数,并提示剩余字数实现代码
Dec 24 Javascript
html超链接打开窗口大小的方法
Mar 05 Javascript
js模仿jquery的写法示例代码
Jun 16 Javascript
Javascript玩转继承(一)
May 08 Javascript
实例浅析js的this
Dec 11 Javascript
Vue中之nextTick函数源码分析详解
Oct 17 Javascript
解决jquery有正确返回值但不执行success函数的问题
Aug 20 jQuery
详解Express笔记之动态渲染HTML(新手入坑)
Dec 13 Javascript
VUE注册全局组件和局部组件过程解析
Oct 10 Javascript
Node.js开发之套接字(socket)编程入门示例
Nov 05 Javascript
聊聊JS ES6中的解构
Apr 29 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执行速度全攻略(上)
2006/10/09 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
php算法实例分享
2015/07/14 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
javascript读取xml
2006/11/04 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
前台js对象在后台转化java对象的问题探讨
2013/12/20 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
Python读写配置文件的方法
2015/06/03 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
Ralph Lauren拉夫·劳伦美国官网:带有浓郁美国气息的高品味时装品牌
2017/11/01 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
文秘专业应届生求职信范文
2013/11/14 职场文书
餐饮营销方案
2014/02/23 职场文书
小学教师培训方案
2014/06/09 职场文书
师范生求职自荐信
2014/06/14 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
校本研修个人总结
2015/02/28 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
总结Python常用的魔法方法
2021/05/25 Python
Javascript之datagrid查询详解
2021/09/15 Javascript
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB