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 相关文章推荐
js 分栏效果实现代码
Aug 29 Javascript
JS 修改URL参数(实现代码)
Jul 08 Javascript
一个JavaScript变量声明的知识点
Oct 28 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
JavaScript文本框脚本编写的注意事项
Jan 25 Javascript
jQuery基于ID调用指定iframe页面内的方法
Jul 06 Javascript
AngularJS通过$sce输出html的方法
Sep 22 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
Aug 24 Javascript
原生js实现仿window10系统日历效果的实例
Oct 31 Javascript
layer ui 导入文件之前传入数据的实例
Sep 23 Javascript
JavaScript实现多层颜色选项卡嵌套
Sep 21 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
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
js简单的弹出框有关闭按钮
2014/05/05 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
详解Python中的__new__()方法的使用
2015/04/09 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
2017/12/15 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
学习python可以干什么
2019/02/26 Python
python中单下划线(_)和双下划线(__)的特殊用法
2019/08/29 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
python求解汉诺塔游戏
2020/07/09 Python
python实现画图工具
2020/08/27 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
报告会主持词
2014/04/02 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
2015年政教主任工作总结
2015/07/23 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
关于使用Redisson订阅数问题
2022/01/18 Redis
DIY胆机必读:各国电子管评价
2022/04/06 无线电