jQuery补充,模拟图片放大镜

html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/fdj.css">
</head>
<body> <div class="outer"> <!--放大镜主体div-->
<div class="small_box"> <!--放大镜小图区域-->
<div class="float"></div> <!--小图里的玻璃罩区域-->
<img src="img/small.jpg">
</div>
<div class="big_box"> <!--放大镜大图区域-->
<img src="img/big.jpg">
</div>
</div>
<script src="jquery/jquery.min.js"></script>
<script src="fdj.js"></script>
</body>
</html>

css

@charset "utf-8";
*{
margin:;
padding:;
}
.outer{ /*放大镜主体div*/
width: 350px;
height: 350px;
border:5px solid #0f68ee;
}
.outer .small_box{ /*放大镜小图区域*/
position: relative;
}
.outer .small_box .float{ /*放大镜小图区域里的玻璃罩*/
width: 175px;
height: 175px;
background-color: #ABC7E2;
opacity: 0.4;
position: absolute;
display: none;
}
.outer .big_box{ /*放大镜大图区域*/
width: 400px;
height: 400px;
border:5px solid #0f68ee;
overflow:hidden;
position: absolute;
top:;
left: 370px;
display: none;
}
.outer .big_box img{
position: absolute;
}

js

/**
* Created by admin on 2017/5/10.
*/
$(function () {
// 当鼠标悬浮到小图片区域的时候,执行鼠标悬浮事件
$('.outer .small_box').mouseover(function () {
$('.outer .small_box .float').css('display','block'); //显示小图片区域里的玻璃罩
$('.outer .big_box').css('display','block'); //显示大图片区域
});
//当前鼠标离开小图片区域的时候,执行鼠标离开事件
$('.outer .small_box').mouseout(function () {
$('.outer .small_box .float').css('display','none'); //隐藏小图片区域里的玻璃罩
$('.outer .big_box').css('display','none'); //隐藏大图片区域
});
// 当鼠标在小图片区域移动的时候,执行鼠标移动事件
$('.outer .small_box').mousemove(function (e) {
var _event = e || window.event; //接收事件里的event对象信息 var small_box_height = $('.outer .small_box').height(); //获取小图区域div的高度
var small_box_width = $('.outer .small_box').width(); //获取小图区域div的宽度 var float_height = $('.outer .small_box .float').height(); //获取小图区域里的玻璃罩高度
var float_width = $('.outer .small_box .float').width(); //获取小图区域里的玻璃罩宽度 var float_height_ban = $('.outer .small_box .float').height()/2; //获取小图区域里的玻璃罩一半高度
var float_width_ban = $('.outer .small_box .float').width()/2; //获取小图区域里的玻璃罩一半宽度 //换算玻璃罩滑动值
var mouse_left = _event.clientX - float_width_ban; //将鼠标点与左边边距,减去玻璃罩的一半,就是玻璃罩横向滑动值
var mouse_top = _event.clientY - float_height_ban; //将鼠标点与上边边距,减去玻璃罩的一百,就是玻璃罩纵向滑动值 if (mouse_left < 0){ //玻璃罩横向滑动值,如果小于0
mouse_left = 0; //将璃罩横向滑动值,设置为0
}else if (mouse_left >small_box_width - float_width){ //判断璃罩横向滑动值,如果大于了小图区域宽度减去玻璃罩宽度,说明璃罩横向滑动值向右已经超出了小图区域
mouse_left = small_box_width - float_width; //将璃罩横向滑动值,设置成小图区域宽度减去玻璃罩宽度,就是横向滑动值向右到头
} if (mouse_top < 0){ //玻璃罩纵向滑动值,如果小于0
mouse_top = 0; //将璃罩纵向滑动值,设置为0
}else if (mouse_top >small_box_height - float_height){ //判断璃罩纵向滑动值,如果大于了小图区域高度减去玻璃罩高度,说明璃罩纵向滑动值向下已经超出了小图区域
mouse_top = small_box_height - float_height; //将璃罩纵向滑动值,设置成小图区域高度减去玻璃罩高度,就是纵向滑动值向下到头
} $('.outer .small_box .float').css('left',mouse_left + 'px'); //获取到玻璃罩纵向滑动值
$('.outer .small_box .float').css('top',mouse_top + 'px'); //获取到玻璃罩横向滑动值 //换算大图滑动比例
//将大图片的宽度减去大图容器div宽度,除以小图容器div宽度减去玻璃罩宽度,等于大图反向横向滑动比例
var percentX = ($('.outer .big_box img').width()-$('.outer .big_box').width())/(small_box_width-float_width);
//将大图片的高度减去大图容器div高度,除以小图容器div高度减去玻璃罩高度,等于大图反向纵向滑动比例
var percentY = ($('.outer .big_box img').height()-$('.outer .big_box').height())/(small_box_height-float_height); $('.outer .big_box img').css('left',-percentX*mouse_left+'px'); //反向横向滑动比例,除以玻璃罩横向滑动值,等于大图横向滑动值
$('.outer .big_box img').css('top',-percentY*mouse_top+'px'); //反向纵向滑动比例,除以玻璃罩纵向滑动值,等于大图纵向滑动值
}); });

jQuery补充,模拟图片放大镜的更多相关文章

  1. jquery.jqzoom.js图片放大镜

    jqzoom插件实现图片放大镜效果 1. jquery.jqzoom.js //************************************************************ ...

  2. Jquery插件开发之图片放大镜效果(仿淘宝)

    原网转载地址:http://www.cnblogs.com/hnvvv/archive/2011/11/19/2255197.html 需求:公司某个网站,需要实现图片预览效果,并能像淘宝一样实现局部 ...

  3. ♫【jQuery插件】图片放大镜

    JQZoom

  4. Jquery图片放大镜

    一般在“在线商城.电子商务.企业产品介绍”等地方经常会看到一些图片放大镜的功能,而做这个功能一般是会用一个js包——enlarge.js(这是jquery图片放大镜的插件).Enlarge 是一个基于 ...

  5. jquery图片放大镜和遮罩层效果

    图片放大镜效果将借助于jqzoom插件,遮罩层借助于thickbox插件. 1.引入样式表 /*整体样式*/ <link rel="stylesheet" href=&quo ...

  6. Jquery的jqzoom插件的使用(图片放大镜)

    今天学习一下,图片放大镜功能,需要使用插件JQzoom 引入文件 <script type="text/javascript" src="js/jquery.min ...

  7. jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)

    1.表单验证插件——validate   该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下:   $(form).validate({o ...

  8. 图片放大镜——jQuery插件Cloud Zoom

    下载地址:cloud_zoom.rar 图片放大镜效果是一种不错的效果,多应用于电子商务.图片展示等网站,给用户带来更好的体验.实现这种效果的代码不少,今天要给大家介绍的是 Cloud Zoom,它是 ...

  9. 基于jQuery仿淘宝产品图片放大镜代码

    今天给大家分享一款 基于jQuery淘宝产品图片放大镜代码.这是一款基于jquery.imagezoom插件实现的jQuery放大镜.适用浏览器:IE8.360.FireFox.Chrome.Safa ...

随机推荐

  1. 使用CopyTable工具方法在线备份HBase表

    CopyTable is a simple Apache HBase utility that, unsurprisingly, can be used for copying individual ...

  2. Linux dig

    安装dig: yum install bind-utils dig 常用命令: # dig 最基本的用法dig @server sina.com.cn. # 用 dig 查看 zone 数据传输 di ...

  3. android中获取某段程序的执行时间

    Date   startDate   =   new   Date(System.currentTimeMillis()); 在收到设备返回数据之后添加如下语句: Date   endDate   = ...

  4. 在Form中调用请求并直接打印结果

    请求打印,一般都是需要提交请求,然后在请求界面查看输出,将打印内容显示在浏览器上 现可在通过调用请求后直接打印到浏览器上, 实现步骤如下:   ---设置请求打印模板      l_req_bool ...

  5. phpredis中文手册——《redis中文手册》 php版(转)

    redis中文手册:http://readthedocs.org/docs/redis/en/latest/ 本文是参考<redis中文手册>,将示例代码用php来实现,注意php-red ...

  6. 转:【微信小程序】实现锚点定位楼层跳跃的实例

    微信小程序实现楼层锚点跳跃,点击不同的锚点进行位置跳跃:  利用:scroll-into-view 来实现: 效果图:   wxml: <scroll-view class="cont ...

  7. 【iOS开发-25】UIDevice查看系统信息,从一个问题開始怎样高速找到自己想要的属性和方法并看懂它

    如果须要解决的问题:写代码时遇到一种情况,就是须要推断iOS版本号,可能低版本号和高版本号须要增减一些代码,此时.怎样推断iOS版本号? (1)第一步.当然度娘.输入"iOS 推断系统版本号 ...

  8. 转 springboot 教程

    转 Spring Boot 揭秘与实战 系列 拓展阅读: https://zhuanlan.zhihu.com/dreawer?topic=Java 发表于 2016-12-21 | Spring框架 ...

  9. apache 静态编译和动态编译参考

    apache-2.2.22 编译安装笔记 一.静态编译     在使用./configure 编译的时候,即没有使用--enable-mods-shared=[module]或者--enable-[m ...

  10. XMPP 基础 (转载)

    技术博客 http://www.cnblogs.com/ChenYilong/  新浪微博 http://weibo.com/luohanchenyilong Fullscreen XMPP   基础 ...