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 相关文章推荐
xml 封装与解析(javascript和C#中)
Jul 26 Javascript
Javascript 复制数组实现代码
Nov 26 Javascript
google 搜索框添加关键字实现代码
Apr 24 Javascript
JavaScript学习笔记之JS事件对象
Jan 22 Javascript
jquery实现拖动效果(代码分享)
Jan 25 Javascript
JS简单实现数组去重的方法示例
Mar 27 Javascript
详解如何去除vue项目中的#——History模式
Oct 13 Javascript
浏览器调试动态js脚本的方法(图解)
Jan 19 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
Jan 19 Javascript
html-webpack-plugin修改页面的title的方法
Jun 18 Javascript
JS pushlet XMLAdapter适配器用法案例解析
Oct 16 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/01/14 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP中串行化用法示例
2016/11/16 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
详解vuejs之v-for列表渲染
2017/06/22 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python下载图片实现方法(超简单)
2017/07/21 Python
django中的setting最佳配置小结
2017/11/21 Python
python 字符串常用方法汇总详解
2019/09/16 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
python__new__内置静态方法使用解析
2020/01/07 Python
python不同系统中打开方法
2020/06/23 Python
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
材料物理专业大学毕业生求职信
2013/10/15 职场文书
求职信范文怎么写
2014/01/29 职场文书
民主评议党员总结
2014/10/20 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
综合实践活动报告
2015/02/05 职场文书
2016年记者节感言
2015/12/08 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript