背景图跟随鼠标移动的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("http://www.eg-live.com.tw/@upload/2182/07_7e4cb.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>
复制代码



posted @   已經停更  阅读(1890)  评论(1编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示