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 相关文章推荐
用Javascript读取中文COOKIE的解决办法
Feb 15 Javascript
script标签的 charset 属性使用说明
Dec 04 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
vue awesome swiper异步加载数据出现的bug问题
Jul 03 Javascript
解决vue动态为数据添加新属性遇到的问题
Sep 18 Javascript
彻底揭秘keep-alive原理(小结)
May 05 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 Javascript
Javascript执行流程细节原理解析
May 14 Javascript
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
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php date与gmdate的获取日期的区别
2010/02/08 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
使用JavaScript实现链表的数据结构的代码
2017/08/02 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
微信小程序实现手指触摸画板
2018/07/09 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
2019/04/04 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
Python匹配中文的正则表达式
2016/05/11 Python
python版本单链表实现代码
2018/09/28 Python
python制作填词游戏步骤详解
2019/05/05 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
校园文化建设方案
2014/02/03 职场文书
学生自我评语大全
2014/04/18 职场文书
员工工作自我评价
2014/09/26 职场文书
在人间读书笔记
2015/06/30 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python