背景图跟随鼠标移动的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 相关文章推荐
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
Sep 04 Javascript
FireFox与IE 下js兼容触发click事件的代码
Nov 20 Javascript
FireFox JavaScript全局Event对象
Jun 14 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
Jquery阻止事件冒泡 event.stopPropagation
Dec 11 Javascript
滚动图片效果 jquery实现回旋滚动效果
Jan 08 Javascript
jQuery快速上手:写jQuery与直接写JS的区别详细解析
Aug 26 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 Javascript
简单三步实现报表页面集成天气
Dec 15 Javascript
Vue 过渡实现轮播图效果
Mar 27 Javascript
vue项目持久化存储数据的实现代码
Oct 01 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
Sep 23 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 Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
Javascript模块化编程(一)模块的写法最佳实践
2013/01/17 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
js读写json文件实例代码
2014/10/21 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
详解基于webpack搭建react运行环境
2017/06/01 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
Vue引入Stylus知识点总结
2020/01/16 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
2020/11/06 Javascript
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
pytyon 带有重复的全排列
2013/08/13 Python
python服务器端收发请求的实现代码
2014/09/29 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
对Python信号处理模块signal详解
2019/01/09 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
新闻专业个人自我评价
2013/09/21 职场文书
工厂实习感言
2014/01/14 职场文书
支教自我鉴定
2014/01/18 职场文书
《再别康桥》教学反思
2014/02/12 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers
css样式important规则的正确使用方式
2022/06/10 HTML / CSS