在div中让图片左右滑动,滑动到右端停止,求教(附代码与html)

kk706 2010-03-02 09:40:47
实现的效果是,让图片在div中左右滑动,但是目前滑动到右端就停止了。求教
html部分

<div style="width:100px;height:100px;overflow:auto;" id="d1">
<table>
<tr>
<td><img src="imgs/1.jpg" /></td>
<td><img src="imgs/2.jpg" /></td>
<td><img src="imgs/3.jpg" /></td>

</tr>
</table>
</div>

js部分

var direct = 50;
function MoveDiv()
{
var d1 = document.getElementById("d1");
var d1ScrollLeft = d1.scrollLeft + direct;


if (d1ScrollLeft > d1.scrollWidth || d1ScrollLeft < 0)
{
d1.scrollLeft = d1.scrollWidth;
direct = (-1) * direct;
}
else
{
d1.scrollLeft = d1ScrollLeft
}
window.setTimeout("MoveDiv()", 500);
}


跟踪发现div的scrollWidth值是400多,可div的scrollLeft值到399就停止不再增长了
...全文
768 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhyzdl 2010-03-06
  • 打赏
  • 举报
回复
学习。。。。。。。。。。。。。。。。
yexianshow 2010-03-05
  • 打赏
  • 举报
回复
是 d1.scrollLeft 与 d1.scrollWidth 值的问题

当到达最右边的时候,d1.scrollLeft + 最后一张图片的宽 = d1.scrollWidth;

明白了上面这一点就好解决了,不过LZ你写的代码……

我给你改了一下


<div style="width:243px;height:235px;overflow: hidden; border: #666666 solid 1px;" id="d1">
<table>
<tr>
<td><img src="try/image/01.jpg" /></td>
<td><img src="try/image/02.jpg" /></td>
<td><img src="try/image/03.jpg" /></td>
</tr>
</table>
</div>

<script type="text/javascript">
var direct = 50;
var flag = false; //false 向左, true向右
function MoveDiv() {
var d1 = document.getElementById("d1");
var imgObj = d1.getElementsByTagName("img");

//var d1ScrollLeft = d1.scrollLeft + direct;

/*if (d1ScrollLeft > d1.scrollWidth || d1ScrollLeft < 0) {
d1.scrollLeft = d1.scrollWidth;
direct = (-1) * direct;
}
else {
direct = Math.abs(direct);
d1.scrollLeft = d1ScrollLeft
}*/

if(!flag) {
d1.scrollLeft += direct;
if(d1.scrollLeft == d1.scrollWidth-imgObj[imgObj.length-1].width) flag = true;
}
else {
d1.scrollLeft -= direct;
if(d1.scrollLeft == 0) flag = false;
}
window.setTimeout("MoveDiv()", 500);
}
MoveDiv();
</script>
shan1119 2010-03-02
  • 打赏
  • 举报
回复
window.setInterval("MoveDiv()", 500);
kk706 2010-03-02
  • 打赏
  • 举报
回复
2楼,我的意思是在div中放置一个table,table的宽度比div的宽度要大,控制div的滚动条来显示table的所有内容。
还是多谢2楼。
licip 2010-03-02
  • 打赏
  • 举报
回复
你要左右滑动那应该是位置的变化吧。
<div style="position:absolute;left:100px;top:100px;overflow:auto;" id="d1">

然后,通过,改变left值来实成左右移动呀。

87,910

社区成员

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

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