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. HTML5 本地存储形式

    1.sessionStorage 2.localStorage 3.Database Storage 4.globalStorage 5.兼容性 参考文献 本地持久化存储一直是本地客户端程序优于 we ...

  2. linux shell 总结

    .#!指定执行脚本的shell 如果不写的话,用系统默认的shell s shell是所有linux ,unix都支持的 .#开始的行表示注释(不限于行首) 命令建议写绝对路径 执行: ./examp ...

  3. MSSQL排序规则冲突

    更改表字段排序规则 ALTER TABLE 表名 ALTER COLUMN 字段名 数据类型(长度) COLLATE 排列规则

  4. Oracle XE安装具体解释

    一.原数据库的卸载       数据库的卸载就不多说了,讲一下过程:       1.运行Oracle Uninstall,卸载Oracle产品     2.删除regedit下的全部Oracle相关 ...

  5. Mysql中的算术运算符详解

    MySQL 支持的算术运算符包括加.减.乘.除和模运算.它们是最常使用.最简单的一类运算符.表4-1 列出了这些运算符及其作用. 下例中简单地描述了这几种运算符的使用方法: mysql> sel ...

  6. Hadoop-2.2.0中文文档—— Shell命令

    FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args>的形式. 全部的的FS shell命令使用URI路径作为參数.URI格式是scheme: ...

  7. MySQL防止delete命令删除数据

    在sql中删除数据库中记录我们会使用到delete命令,这样如果不小心给删除了很难恢复了,总结一些删除数据但是不在数据库删除的方法. 方法一 我常用的做法,就是在数据库中加一个删除标识字段,如: is ...

  8. 11个常用的Linux命令

    Linux命令行吸引了大多数Linux爱好者.一个正常的Linux用户一般掌握大约50-60个命令来处理每日的任务.今天为你解释下面几个命令:sudo.python.mtr.Ctrl+x+e.nl.s ...

  9. queue for max elem, pop, push

    queue for max elem, pop, push 个人信息:就读于燕大本科软件project专业 眼下大三; 本人博客:google搜索"cqs_2012"就可以; 个人 ...

  10. NIO--SocketChannel发送HTTP请求

    import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChanne ...