js实现放大镜特效


Posted in Javascript onMay 18, 2017

本文实例为大家分享了js放大镜特效的实现代码,供大家参考,具体内容如下

<!doctype html>
<html lang="en">
<head>
 <meta charset="UTF-8" />
 <title>Document</title>
 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 <style type="text/css">
  *{
   margin: 0;
   padding: 0;
  }
  .imgBox{
   width: 1000px;
   margin: auto;
   text-align: center;
  }
  .small,.large{
   font-size: 0;
   outline: 1px solid burlywood;
   margin: auto;
  }
  .small{
   margin: 20px auto;
  }
  .large{
   /*display: none;*/
  }
  .small,.small img,.large{
   width: 300px;
   height: 200px;
   overflow: hidden;
  }
  .large img{
   width: 900px;
   height: 600px;
  }
  .small,.large{
   position: relative;
  }
  .mark{
   opacity: 0.5;
   background-color: #DEB887;
   z-index: 55;
   width: 100px;
   height: 66.666666666px;
   display: none;
  }
  .mark,.large img{
   position: absolute;
   left: 0;
   top: 0;
  }
 </style>
</head>
<body>
 <div class="imgBox">
  <div class="small">
   <img src="img/img_14.jpg"/>
   <div class="mark"></div>
  </div>
  <div class="large">
   <img src="img/img_14.jpg"/>
  </div>
 </div>
 
 <script type="text/javascript">
  $(function(){
   var $small = $(".small"),
    $mark = $(".mark"),
    $large = $(".large");
   $small.on("mousemove",function(e){
// 在鼠标移到小图片中显示出mark
    $mark.css("display","block");
//    $large.css("display","block");
// 获取mark的一半宽度高度
    var hw = $mark.width()/2,
     hh = $mark.height()/2;
// 获取鼠标在当前图片中的位置
    var lf = e.pageX-$small.offset().left-hw,
     tt = e.pageY-$small.offset().top-hh;
// 获取mark的想x,y轴偏移率
    var ix = lf/$small.width(),
     iy = tt/$small.height();
// 获取边缘线
    var lb = 1-hw/$small.width()*2,
     tb = 1-hh/$small.height()*2;
// 计算和边缘的关系
    var ix = ix<lb?ix>0?ix:0:lb,
     iy = iy<tb?iy>0?iy:0:tb;
// 进行大图和小图百分比计算
    $mark.css("left",ix*100+"%").css("top",iy*100+"%");
    $large.children().css("left",-ix*300+"%").css("top",-iy*300+"%");
   }).on("mouseout",function(){
// 鼠标移出后mark隐藏
    $mark.css("display","none");
//    $large.css("display","none");
   })
  })
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
将json当数据库一样操作的javascript lib
Oct 28 Javascript
Javascript中string转date示例代码
Nov 01 Javascript
JavaScript 学习笔记之数据类型
Jan 14 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
jquery插件corner实现圆角边框的方法
Mar 09 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
Apr 05 Javascript
js去除浏览器默认底图的方法
Jun 08 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
Jun 18 Javascript
javascript实现消灭星星小游戏简单版
Nov 15 Javascript
angularjs中$http异步上传Excel文件方法
Feb 23 Javascript
jQuery 隐藏/显示效果函数用法实例分析
May 20 jQuery
vue v-on监听事件详解
May 17 #Javascript
vue v-model表单控件绑定详解
May 17 #Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
May 17 #Javascript
JavaScript中offsetWidth的bug及解决方法
May 17 #Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
May 17 #Javascript
基于vue+ bootstrap实现图片上传图片展示功能
May 17 #Javascript
JavaScript运动框架 多物体任意值运动(三)
May 17 #Javascript
You might like
php面向对象中static静态属性与方法的内存位置分析
2015/02/08 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
jquery简单体验
2007/01/10 Javascript
javascript编程起步(第七课)
2007/01/10 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
button没写type=button会导致点击时提交
2014/03/06 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
Angularjs根据json文件动态生成路由状态的实现方法
2017/04/17 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
浅谈vue+webpack项目调试方法步骤
2017/09/11 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
Python制作钉钉加密/解密工具
2016/12/07 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
python中with用法讲解
2020/02/07 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
导游实习生自荐书
2014/01/28 职场文书
幼儿园教师国培感言
2014/02/02 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
个人先进事迹材料
2014/12/29 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
redis protocol通信协议及使用详解
2022/07/15 Redis