背景图跟随鼠标移动的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 相关文章推荐
javascript中的void运算符语法及使用介绍
Mar 10 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
Javascript无参数和有参数类继承问题解决方法
Mar 02 Javascript
jQuery自动添加表单项的方法
Jul 13 Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 Javascript
jquery+ajax+text文本框实现智能提示完整实例
Jul 09 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
Sep 19 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
仿淘宝JSsearch搜索下拉深度用法
Jan 15 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
在vue中使用G2图表的示例代码
Mar 19 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
PHP 八种基本的数据类型小结
2011/06/01 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
php伪静态验证码不显示的解决方案
2019/09/26 PHP
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
alert和confirm功能介绍
2014/05/21 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
vue mint-ui学习笔记之picker的使用
2017/10/11 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
[02:01]大师之路——DOTA2完美大师赛11月论剑上海
2017/11/06 DOTA
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
高性能装备提升营地:Kammok
2019/02/27 全球购物
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
办公室务虚会发言材料
2014/10/20 职场文书
排球赛新闻稿
2015/07/17 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python