背景图跟随鼠标移动的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的高性能TreeView(asp.net)
Feb 23 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
Nov 30 Javascript
浅析javascript的间隔调用和延时调用
Nov 12 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
JS实现弹出下载对话框及常见文件类型的下载
Jul 13 Javascript
基于JavaScript实现弹幕特效
Aug 27 Javascript
Vue中之nextTick函数源码分析详解
Oct 17 Javascript
vue移动端弹框组件的实例
Sep 25 Javascript
vue中node_modules中第三方模块的修改使用详解
May 31 Javascript
jQuery实现的分页插件完整示例
May 26 jQuery
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
el-table-column 内容不自动换行的解决方法
Aug 14 Vue.js
用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
PHP 5.0 Pear安装方法
2006/12/06 PHP
在PHP中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
jq选项卡鼠标延迟的插件实例
2013/05/13 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
jQuery操作css样式
2017/05/15 jQuery
VueRouter导航守卫用法详解
2017/12/25 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
浅谈Python中重载isinstance继承关系的问题
2018/05/04 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
专升本学生毕业自我鉴定
2014/10/04 职场文书
迎新生标语大全
2014/10/06 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
Python实现生成bmp图像的方法
2021/06/13 Python
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA