基于jquery的放大镜效果


Posted in Javascript onMay 30, 2012

核心代码:

$(function(){ 
var mouseX = 0; //鼠标移动的位置X 
var mouseY = 0; //鼠标移动的位置Y 
var maxLeft = 0; //最右边 
var maxTop = 0; //最下边 
var markLeft = 0; //放大镜移动的左部距离 
var markTop = 0; //放大镜移动的顶部距离 
var perX = 0; //移动的X百分比 
var perY = 0; //移动的Y百分比 
var bigLeft = 0; //大图要移动left的距离 
var bigTop = 0; //大图要移动top的距离 
//改变放大镜的位置 
function updataMark($mark){ 
//通过判断,让小框只能在小图区域中移动 
if(markLeft<0){ 
markLeft = 0; 
}else if(markLeft>maxLeft){ 
markLeft = maxLeft; 
} if(markTop<0){ 
markTop = 0; 
}else if(markTop>maxTop){ 
markTop = maxTop; 
} 
//获取放大镜的移动比例,即这个小框在区域中移动的比例 
perX = markLeft/$(".small").outerWidth(); 
perY = markTop/$(".small").outerHeight(); 
bigLeft = -perX*$(".big").outerWidth(); 
bigTop = -perY*$(".big").outerHeight(); 
//设定小框的位置 
$mark.css({"left":markLeft,"top":markTop,"display":"block"}); 
} 
//改变大图的位置 
function updataBig(){ 
$(".big").css({"display":"block","left":bigLeft,"top":bigTop}); 
} 
//鼠标移出时 
function cancle(){ 
$(".big").css({"display":"none"}); 
$(".mark").css({"display":"none"}); 
} 
//鼠标小图上移动时 
function imgMouseMove(event){ 
var $this = $(this); 
var $mark = $(this).children(".mark"); 
//鼠标在小图的位置 
mouseX = event.pageX-$this.offset().left - $mark.outerWidth()/2; 
mouseY = event.pageY-$this.offset().top - $mark.outerHeight()/2; 
//最大值 
maxLeft =$this.width()- $mark.outerWidth(); 
maxTop =$this.height()- $mark.outerHeight(); 
markLeft = mouseX; 
markTop = mouseY; 
updataMark($mark); 
updataBig(); 
} 
$(".small").bind("mousemove",imgMouseMove).bind("mouseleave",cancle); 
})

这个里面主要有二点

1.如何大图跟随"放大镜"的位置,同时移动大图?

其实就是用到一个比例关系,当“放大镜”移动多少比例(是比例,不是具体值),大图也同时用这个比例去乘以大图的宽和高,就可以算出大图该移动多少距离了;

2.显示区域和放大镜的关系?

这里的“放大镜”应该和大图的显示区域的比例,应该是大图和小的比例关系一样。比如大图和小图的比例是1:2,那个“放大镜”区域的大小,和显示大图区域的大小比例也应该是1:2,不然“放大镜”罩住的小图区域,和大图的显示区域,所显示的图像信息,不能保持一致。(妙味课堂里讲的那个实例,就是没有保持一至);

在线演示:http://demo.3water.com/js/2012/mymagnifier/
打包下载:https://3water.com/jiaoben/45315.html

Javascript 相关文章推荐
JS控制表格隔行变色
Jun 26 Javascript
JavaScript中SQL语句的应用实现
May 04 Javascript
基于jquery的气泡提示效果
May 31 Javascript
清空上传控件input file的值
Jul 03 Javascript
jQuery配合coin-slider插件制作幻灯片效果的流程解析
May 13 Javascript
再谈javascript常见错误及解决方法
Sep 16 Javascript
ionic2 tabs使用 Modal底部tab弹出框
Dec 30 Javascript
jQuery树控件zTree使用方法详解(一)
Feb 28 Javascript
简单的网页广告特效实例
Aug 19 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
Feb 21 Javascript
js实现简单的打印表格
Jan 15 Javascript
Vue+Element自定义纵向表格表头教程
Oct 26 Javascript
幻灯片带网页设计中的20个奇妙应用示例小结
May 27 #Javascript
Javascript的常规数组和关联数组对比小结
May 24 #Javascript
基于mootools插件实现遮罩层新手引导
May 24 #Javascript
jQuery 拖动层(在可视区域范围内)
May 24 #Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 #Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 #Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 #Javascript
You might like
豆瓣网的jquery代码实例
2008/06/15 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
基于mouseout和mouseover等类似事件的冒泡问题解决方法
2013/11/18 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
js使用递归解析xml
2014/12/12 Javascript
javascript的BOM汇总
2015/07/16 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
AngularJS基础 ng-open 指令简单实例
2016/08/02 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
JS严格模式知识点总结
2018/02/27 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
JS实现纸牌发牌动画
2021/01/19 Javascript
python里大整数相乘相关技巧指南
2014/09/12 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
日本酒店、民宿、温泉旅馆、当地旅行团中文预订:e路东瀛
2019/12/09 全球购物
莫斯科珠宝厂官方网站:Miuz
2020/09/19 全球购物
就业推荐表自我鉴定
2013/10/29 职场文书
厂长助理岗位职责
2013/12/27 职场文书
人力资源作业细则
2014/03/03 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
小学老师对学生的评语
2014/12/29 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
被委托人身份证明
2015/08/07 职场文书