背景图跟随鼠标移动的Mootools插件实现代码


Posted in Javascript onDecember 12, 2011

效果演示:
背景图跟随鼠标移动的Mootools插件实现代码
源代码:

<script style="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js"></script> 
</head> 
<body id='a'> 
<h2 class='a'>Single images</h2> 
<div id='bsfdimg' style='background:url("/upload/201112/20111212204031245.jpg") no-repeat scroll -50px -50px transparent;width:260px;height:200px;' w='392' h='600'></div> 
<script type='text/javascript'> 
var MoveBKimg=new Class({ 
initialize:function(){ 
this.$L=0; 
this.$T=0; 
}, 
Todo:function(i,opt){ 
this.opt={ 
bw:opt.bw || 0, //容器宽度 
bh:opt.bh || 0, 
iw:opt.iw || 0, //图像宽度 
ih:opt.ih || 0, 
X:opt.X || 0, //鼠标的clientX坐标 
Y:opt.Y || 0 
};o=this.opt; 
if(!i || !o.iw || !o.ih || !o.bw || !o.bh){return false;} 
o.iw=o.iw-o.bw; //图像实际可被移动的x轴范围 
o.ih=o.ih-o.bh; 
var P=i.getStyle('background-position');P=P.split(" ");//取得目前背景图的position值,并拆分转为Int型 
P[0]=P[0].toInt();P[0]=(P[0].abs()>o.iw)?((P[0]<0)?-o.iw:o.iw):P[0];//背景图目前的X偏移,并对值进行2次修正 
P[1]=P[1].toInt();P[1]=(P[1].abs()>o.ih)?((P[1]<0)?-o.ih:o.ih):P[1]; 
console.log(o.X+'|'+o.Y); 
if(o.X>this.$L){//往右移鼠标图片往左跑 




this.$L=o.X; 
P[0]=(o.iw<(P[0]-10))?o.iw:(P[0]-10); 
} 
if(o.X<this.$L){//往左移鼠标图片往右跑 





this.$L=o.X; 
P[0]=((P[0]+10)>0)?0:(P[0]+10); 
} 
if(o.Y>this.$T){//往下移鼠标图片往上跑 





this.$T=o.Y; 
P[1]=(o.ih<(P[1]-10))?o.ih:(P[1]-10); 
} 
if(o.Y<this.$T){//往上移鼠标图片往下跑 





this.$T=o.Y; 
P[1]=((P[1]+10)>0)?0:(P[1]+10); 
} 
i.setStyle('background-position',''+P[0]+'px '+P[1]+'px');//重新给背景图的position赋值 
} 
}); 
El=$('bsfdimg'); 
var MoveBKimg=new MoveBKimg(); 
El.addEvent('mousemove',function(event){ 
MoveBKimg.Todo(El,{bw:260,bh:200,iw:392,ih:600,X:event.client.x,Y:event.client.y}); 
}) 
</script>
Javascript 相关文章推荐
浏览器常用高宽的jquery插件
Feb 24 Javascript
node.js中的fs.fchmodSync方法使用说明
Dec 16 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
AngularJS 基础ng-class-even指令用法
Aug 01 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
Jan 19 Javascript
Express之get,pos请求参数的获取
May 02 Javascript
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
理解 JavaScript EventEmitter
Mar 29 Javascript
Jquery的Ajax技术使用方法
Jan 21 jQuery
js form表单input框限制20个字符,10个汉字代码实例
Apr 12 Javascript
js中的深浅拷贝问题简析
May 10 Javascript
JS如何实现动态添加的元素绑定事件
Nov 12 Javascript
用Mootools获得操作索引的两种方法分享
Dec 12 #Javascript
整理8个很棒的 jQuery 倒计时插件和教程
Dec 12 #Javascript
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 #Javascript
Jquery阻止事件冒泡 event.stopPropagation
Dec 11 #Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
Dec 11 #Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
Dec 11 #Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 #Javascript
You might like
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
PHP文件读写操作之文件写入代码
2011/01/13 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
php解决安全问题的方法实例
2019/09/19 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
javascript 函数使用说明
2010/04/07 Javascript
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
javascript解析json实例详解
2014/11/05 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Python批量查询域名是否被注册过
2017/06/21 Python
Django框架验证码用法实例分析
2019/05/10 Python
Python守护进程实现过程详解
2020/02/10 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
python实现在线翻译
2020/06/18 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
2014新年元旦活动策划方案
2014/02/18 职场文书
社区文化建设方案
2014/05/02 职场文书
电子商务专业应届生求职信
2014/05/28 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
python获取字符串中的email
2022/03/31 Python
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers