js模拟动画之 商品展示效果

<HEAD>
<TITLE>方框移动</TITLE>
<metahttp-equiv="Content-Type"content="text/html;charset=GBK">
<stylelanguage="javascript">
<!--
body,td{
font-size:9pt;
}
.hidden{display:none;}
.show{display:block;}
#fk{overflow:hidden;}
.default{background:white;color:blue;cursor:pointer;}
.highlight{background:blue;color:white;}
-->
</style>
</HEAD>
<BODY>
<SCRIPTLANGUAGE="JavaScript">
<!--
varspeed=10;//速度
varci=10;//运动次数
varleft=0;//方框左位置
vartop=0;//方框上位置
varwidth=0;//方框宽
varheight=0;//方框高
varaimleft=0;//目标左位置
varaimtop=0;//目标上位置
varaimwidth=0;//目标宽
varaimheight=0;//目标高
varlb=0;//左步长
vartb=0;//上步长
varwb=0;//宽步长
varhb=0;//高步长
varfk=null;
varaim=null;
varaim1=null;
varlastObj=null;
functioninitObj(oid){
if(!fk){fk=document.getElementById('fk');}
if(!aim){aim=document.getElementById('aim');}
if(!aim1)aim1=document.getElementById('aim1');
if(oid)
append(fk,document.getElementById(oid),true);
}
functionappend(o,oc,cloned){
while(o.hasChildNodes())o.removeChild(o.firstChild);
if(cloned)oc=oc.cloneNode(true);
oc.className='show';
o.appendChild(oc);
}
/*
*取得对象位置、大小
*取得目标对象位置、大小
*/
functionsetSource(obj,oid){
initObj(oid);
left=getOffset(obj).Left;
top=getOffset(obj).Top;
width=obj.offsetWidth;
height=obj.offsetHeight;
aimleft=getOffset(aim).Left;
aimtop=getOffset(aim).Top;
aimwidth=aim.offsetWidth;
aimheight=aim.offsetHeight;
if(lastObj)lastObj.className='default';
obj.className='highlight';
lastObj=obj;
fk.style.display='';
clearInterval(MyMar);
}
/**
*设置方向步长、宽高步长
*/
functionsetStep(){
lb=(aimleft-left)/ci;
tb=(aimtop-top)/ci;
wb=(aimwidth-width)/ci;
hb=(aimheight-height)/ci;
}
/**
*移动
*/
functionmove(){
setStep();
left+=lb;
top+=tb;
width+=wb;
height+=hb;
if(left<aimleft-2||top<aimtop-2||width<aimwidth-2||height<aimheight-2){
fk.style.left=left+"px";
fk.style.top=top+"px";
fk.style.width=width+"px";
fk.style.height=height+"px";
}else{
if(fk)
while(fk.hasChildNodes()){append(aim1,fk.firstChild);}
hiddenFK();
clearInterval(MyMar)
}
}
functionhiddenFK(){
initObj();
fk.style.display='none';
}
/**
*取得某元素在页面中相对页面左上顶点的位置
*/
functiongetOffset(obj){
varoffsetleft=obj.offsetLeft;
varoffsettop=obj.offsetTop;
while(obj.offsetParent!=document.body)
{
obj=obj.offsetParent;
offsetleft+=obj.offsetLeft;
offsettop+=obj.offsetTop;
}
return{Left:offsetleft,Top:offsettop};
}
varMyMar=setInterval(move,speed);
//-->
</SCRIPT>
<divid="fk"style="position:absolute;width:46px;height:20px;border:1pxsolid#000000;display:none"></div>
<TABLEstyle="border:1pxsolid#666666"cellspacing=1bgcolor=#ff1111cellpadding=4border=0>
<TRbgcolor=#ffffff>
<TDonClick="setSource(this,'t1');MyMar=setInterval(move,speed)"class="default"id="test">笔记本</TD>
<TDonClick="setSource(this,'t2');{MyMar=setInterval(move,speed)}"class="default">小家电</TD>
<TDonClick="setSource(this,'t3');{MyMar=setInterval(move,speed)}"class="default">电冰箱</TD>
<TDonClick="setSource(this,'t4');{MyMar=setInterval(move,speed)}"class="default">波比娃娃</TD>
<TDonClick="setSource(this,'t5');{MyMar=setInterval(move,speed)}"class="default">小家电</TD>
<TDonClick="setSource(this,'t6');{MyMar=setInterval(move,speed)}"class="default">小家电</TD>
</TR>
</TABLE>
<br><br>
<br><br>
<br><br>
<TABLEid="aim"style="border:1pxsolid#666666;width:227px;height:300px;">
<TR>
<TDid='aim1'valign="top"></TD>
</TR>
</TABLE>
<br>
<br>
<br>
<br>
<TABLEstyle="border:1pxsolid#666666"cellspacing=1bgcolor=#ff1111cellpadding=4border=0>
<TRbgcolor=#ffffff>
<TDonClick="setSource(this,'t1');MyMar=setInterval(move,speed)"class="default">笔记本</TD>
<TDonClick="setSource(this,'t2');{MyMar=setInterval(move,speed)}"class="default">小家电</TD>
<TDonClick="setSource(this,'t3');{MyMar=setInterval(move,speed)}"class="default">电冰箱</TD>
<TDonClick="setSource(this,'t4');{MyMar=setInterval(move,speed)}"class="default">波比娃娃</TD>
<TDonClick="setSource(this,'t5');{MyMar=setInterval(move,speed)}"class="default">小家电</TD>
<TDonClick="setSource(this,'t6');{MyMar=setInterval(move,speed)}"class="default">小家电</TD>
</TR>
</TABLE>
<divid="t1"class="hidden">第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div第1个div</div>
<divid="t2"class="hidden">第2个div第2个div第2个div第2个div第2个div第2个div第2个div第2个div第2个div第2个div第2个div第2个div第2个div第2个div</div>
<divid="t3"class="hidden">第3个div</div>
<divid="t4"class="hidden">第4个div</div>
<divid="t5"class="hidden">第5个div</div>
<divid="t6"class="hidden">很长很长很长很长很长的第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个div第6个</div>
<script>
setSource(document.getElementById('test'),'t1');MyMar=setInterval(move,speed)
</script>
</BODY>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值