背景图跟随鼠标移动的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 1.0.4 - New Wave Javascript(js源文件)
Jan 15 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
Oct 20 Javascript
Javascript类库的顶层对象名用户体验分析
Oct 24 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
Feb 27 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
Dec 18 Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
Feb 27 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
jQuery动态生成Bootstrap表格
Nov 01 Javascript
Angular6 写一个简单的Select组件示例
Aug 20 Javascript
javascript实现计算指定范围内的质数示例
Dec 29 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
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
PHP设计模式(一)工厂模式Factory实例详解【创建型】
2020/05/02 PHP
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
javascript实现贪吃蛇小游戏
2020/07/28 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
[04:14]从西雅图到上海——玩家自制DOTA2主题歌曲应援TI9
2019/07/11 DOTA
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Python运维自动化之nginx配置文件对比操作示例
2018/08/29 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Python任务调度模块APScheduler使用
2020/04/15 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
社区八一活动方案
2014/02/03 职场文书
《跟踪台风的卫星》教学反思
2014/04/10 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏