jQuery补充,模拟图片放大镜
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补充,模拟图片放大镜的更多相关文章
- jquery.jqzoom.js图片放大镜
jqzoom插件实现图片放大镜效果 1. jquery.jqzoom.js //************************************************************ ...
- Jquery插件开发之图片放大镜效果(仿淘宝)
原网转载地址:http://www.cnblogs.com/hnvvv/archive/2011/11/19/2255197.html 需求:公司某个网站,需要实现图片预览效果,并能像淘宝一样实现局部 ...
- ♫【jQuery插件】图片放大镜
JQZoom
- Jquery图片放大镜
一般在“在线商城.电子商务.企业产品介绍”等地方经常会看到一些图片放大镜的功能,而做这个功能一般是会用一个js包——enlarge.js(这是jquery图片放大镜的插件).Enlarge 是一个基于 ...
- jquery图片放大镜和遮罩层效果
图片放大镜效果将借助于jqzoom插件,遮罩层借助于thickbox插件. 1.引入样式表 /*整体样式*/ <link rel="stylesheet" href=&quo ...
- Jquery的jqzoom插件的使用(图片放大镜)
今天学习一下,图片放大镜功能,需要使用插件JQzoom 引入文件 <script type="text/javascript" src="js/jquery.min ...
- jQuery基础(常用插件 表单验证,图片放大镜,自定义对象级,jQuery UI,面板折叠)
1.表单验证插件——validate 该插件自带包含必填.数字.URL在内容的验证规则,即时显示异常信息,此外,还允许自定义验证规则,插件调用方法如下: $(form).validate({o ...
- 图片放大镜——jQuery插件Cloud Zoom
下载地址:cloud_zoom.rar 图片放大镜效果是一种不错的效果,多应用于电子商务.图片展示等网站,给用户带来更好的体验.实现这种效果的代码不少,今天要给大家介绍的是 Cloud Zoom,它是 ...
- 基于jQuery仿淘宝产品图片放大镜代码
今天给大家分享一款 基于jQuery淘宝产品图片放大镜代码.这是一款基于jquery.imagezoom插件实现的jQuery放大镜.适用浏览器:IE8.360.FireFox.Chrome.Safa ...
随机推荐
- Asp.Net Web Api 图片上传
public string UploadFile() { if (Request.Content.IsMimeMultipartContent()) ...
- 【转】linux下的单线程
传统的每个进程中只有一个线程在执行,称作单线程方法.MS-DOS是一种支持单用户进程和单线程的操作系统,UNIX支持多用户进程,但只支持每个进程一个线程,WINDOWS 2000(W2K).SOLAR ...
- Event sender
Sometimes it is convenient to know which widget is the sender of a signal. For this, PyQt4 has these ...
- Jquery中对checkbox的各种“全选”或者“取消”功能实现(特别注意1.6+的一定不能使用attr来取属性了!用prop!)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- codeforces 558D Guess Your Way Out! II 规律
题目链接 题意: 给出n和q 表示有一棵深度为n的全然二叉树.叶子节点中有恰好一个点是出口 主角从根往下走.但不知道出口在哪里,但主角会获得q个提示. 像这样标号 q个提示 格式: deep [l, ...
- android6.0权限管理工具EasyPermissionUtil
前言 android6.0開始,权限的申请发生了改变,申请变的动态化,也就是执行时权限,和iOS相仿,动态化的意思是指,在每次使用须要危急权限的方法的时候.须要检查程序是否获得了该权限的许可.动态化的 ...
- 记一次CurrentDirectory导致的问题
现在项目里需要实现一个功能如下: A.exe把B.exe复制到临时目录,然后A.exe退出,B.exe负责把A.exe所在的整个目录删除. 实现: A.exe用CreateProcess创建B.exe ...
- javascript 新知识
document.compatMode 属性 BackCompat: Standards-compliant mode is not switched on. (Quirks Mode) 标准模式 ...
- android中RecycleView分页原生代码封装,无任何第三方代
概述 RecycleView分页加载封装,简单方便,功能齐全 详细 代码下载:http://www.demodashi.com/demo/13283.html 一.场景: 在项目开发中经常使用到列表集 ...
- mysql数据库创建删除带横杠的数据库名
mysql> create database d-d; ERROR 1064 (42000): You have an error in your SQL syntax; check the m ...