背景图跟随鼠标移动的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 相关文章推荐
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
Jun 26 Javascript
任意位置显示html菜单
Feb 01 Javascript
图片轮换效果实现代码(点击按钮停止执行)
Apr 12 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
JavaScript 数组中最大最小值
Jun 05 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
Jun 13 Javascript
javascript 中的继承实例详解
May 05 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
May 11 Javascript
使用socket.io制做简易WEB聊天室
Jan 02 Javascript
在vue.js中使用JSZip实现在前端解压文件的方法
Sep 05 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
Apr 12 Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 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
discuz7 phpMysql操作类
2009/06/21 PHP
php去除HTML标签实例
2013/11/06 PHP
PHP单例模式详细介绍
2015/07/01 PHP
脚本收藏iframe
2006/07/21 Javascript
Jquery Change与bind事件代码
2011/09/29 Javascript
jquery 选择器引擎sizzle浅析
2013/02/06 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
2016/07/11 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
[04:44]DOTA2西游记战队视频彩蛋流出 师徒开黑巧遇林书豪
2016/08/03 DOTA
Python实现控制台进度条功能
2016/01/04 Python
解决pandas中读取中文名称的csv文件报错的问题
2018/07/04 Python
python3学习之Splash的安装与实例教程
2018/07/09 Python
Python OS模块实例详解
2019/04/15 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
市场营销管理毕业生自荐信
2014/03/03 职场文书
企业人事任命书
2014/06/05 职场文书
体育运动口号
2014/06/09 职场文书
会计电算化专业求职信
2014/06/10 职场文书
邓小平理论心得体会
2014/09/09 职场文书
工作作风建设心得体会
2014/10/22 职场文书
合作意向协议书
2015/01/29 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
小学教代会开幕词
2016/03/04 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android