感觉是对的 效果是错的

wtcsy 2009-05-11 01:09:08
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<style type="text/css">
#ss{ width:130px;height:88px;margin:0 auto;overflow: hidden;white-space: nowrap;background:#ffffff; border:1px solid #000000}
#ss ul{margin:0px; padding:0px;}
#ss ul li{ margin:0px; padding:0px; list-style:none; display:inline;}
</style>
<body>

<div id='ss'>
<ul>
<li><img src="http://img1.qq.com/news/pics/17522/17522502.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515126.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515135.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515141.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17522/17522502.jpg"/></li>
</ul>
</div>
<div id='s'></div>
<script>
/////////////////////////////////////////////////////////////////////////////////
var Tween = {
Elastic: {
easeOut: function(t,b,c,d,a,p){
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
}
}
}
/////////////////////////////////////////////////////////////////////////////////

function $(Id){return document.getElementById(Id)};
var n = $('ss').getElementsByTagName('li').length-1;
var w = $('ss').getElementsByTagName('li')[0].offsetWidth;
var i=0,t=0,b=0,c=w,d=110;

function Run(){
$('ss').scrollLeft = Math.ceil(Tween.Elastic.easeOut(t,b,c,d));
if(t<d)
{ t++;setTimeout(Run, 10);}
else{
if(i==(n-1))
{$('ss').scrollLeft=0;i=0,b=0,c=w,t=0}
else
{t=0,b=c,c=c+w,i++;} //这里b=c 和c=c+w 就是重新赋值了 感觉按每次移动一个图片大小的位置来看 没有错误呀, 为什么效果会不对了?
$('s').innerHTML=$('ss').scrollLeft;setTimeout(Run, 1000);
}
};
setTimeout(Run,2000);
</script>
</body>
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtcsy 2009-05-11
  • 打赏
  • 举报
回复

<style type="text/css">
#ss{ width:130px;height:88px;margin:0 auto;overflow: hidden;white-space: nowrap;background:#ffffff; border:1px solid #000000}
#ss ul{margin:0px; padding:0px;}
#ss ul li{ margin:0px; padding:0px; list-style:none; display:inline;}
</style>
<body>

<div id='ss'>
<ul>
<li><img src="http://img1.qq.com/news/pics/17522/17522502.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515126.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515135.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515141.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17522/17522502.jpg"/></li>
</ul>
</div>
<div id='s'></div>
<li><img src="http://img1.qq.com/news/pics/17522/17522502.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515126.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515135.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17515/17515141.jpg"/></li>
<li><img src="http://img1.qq.com/news/pics/17522/17522502.jpg"/></li>
<script>
/////////////////////////////////////////////////////////////////////////////////
var Tween = {
Elastic: {
easeOut: function(t,b,c,d,a,p){
if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b);
}
}
}
/////////////////////////////////////////////////////////////////////////////////

function $(Id){return document.getElementById(Id)};
var n = $('ss').getElementsByTagName('li').length-1;
var w = $('ss').getElementsByTagName('li')[0].offsetWidth;
var i=0,t=0,b=0,c=w,d=110;

function Run(){
$('ss').scrollLeft = Math.ceil(Tween.Elastic.easeOut(t,b,c,d));
if(t<d)
{ t++;setTimeout(Run, 10);}
else{
if(i==(n-1))
{$('ss').scrollLeft=0;i=0,b=0,c=w,t=0}
else
{i++;t=0,b=i*w,c=w;}
$('s').innerHTML=$('ss').scrollLeft;setTimeout(Run, 1000);
}
};
setTimeout(Run,2000);
</script>
</body>
wtcsy 2009-05-11
  • 打赏
  • 举报
回复
感觉我就象个送分的额!~
wtcsy 2009-05-11
  • 打赏
  • 举报
回复
我晕
我写setTimeout(Run,2000);只是希望不要一开始就晃 看不清第一张图片是啥
xiaojing7 2009-05-11
  • 打赏
  • 举报
回复
可以正常运行啊
xiaojing7 2009-05-11
  • 打赏
  • 举报
回复
setInterval(Run,2000);

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧