怎么让图片加载完后再执行JS

zls3406 2011-07-08 09:59:10
内容是图片向左滚动,但是图片没有完全加载就执行JS了。导致滚动一遍就停了,怎么让一直滚动呢。

<div id="jsweb8_cn_left" style="overflow:hidden;width:830px; margin-top:12px; float:left;">
<table cellpadding="0" cellspacing="0" border="0">
<tr><td id="jsweb8_cn_left1" valign="top" align="center">
<table cellpadding="5" cellspacing="5" border="0">
<tr align="center">

<!--精品案例-->
<!--{foreach from=$case item=s}-->

<td class="pich" width="147" height="90" ><a href="index.php?act=case_list&id={$s.id}"><img src="{$s.case_image}" border="0" width="147" height="90" ></a> </td>
<!--{/foreach}-->

</tr>
</table>
</td>
<td id="jsweb8_cn_left2" valign="top"></td>
</tr>
</table>
</div>
<!--向左滚动代码结束-->
</div>
{literal}
<script type="text/javascript">

var speed=30//速度数值越大速度越慢
//alert(document.getElementById('jsweb8_cn_left1').innerHTML);
document.getElementById('jsweb8_cn_left2').innerHTML=document.getElementById('jsweb8_cn_left1').innerHTML

function Marquee3(){

if(document.getElementById('jsweb8_cn_left2').offsetWidth-document.getElementById('jsweb8_cn_left').scrollLeft<=0)
document.getElementById('jsweb8_cn_left').scrollLeft-=document.getElementById('jsweb8_cn_left1').offsetWidth
else{
document.getElementById('jsweb8_cn_left').scrollLeft++
}
}
var MyMar3=setInterval(Marquee3,speed)
document.getElementById('jsweb8_cn_left').onmouseover=function() {clearInterval(MyMar3)}
document.getElementById('jsweb8_cn_left').onmouseout=function() {MyMar3=setInterval(Marquee3,speed)}
</script>
{/literal}
</div>
...全文
515 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zls3406 2011-07-08
  • 打赏
  • 举报
回复
呵。谢谢了。可能都吃饭去了。
chenhongxin 2011-07-08
  • 打赏
  • 举报
回复
帮楼主顶一下,别沉下去。
zls3406 2011-07-08
  • 打赏
  • 举报
回复
slowhand还在吗。
zls3406 2011-07-08
  • 打赏
  • 举报
回复
晕。怎么我把overflow:hidden 改为 overflow:scroll后。再改回去就不好用了呢。
zls3406 2011-07-08
  • 打赏
  • 举报
回复
#5楼slowhand厉害厉害,改831好用了。咋来的这个数呢。我都整一天多了。再弄不出来今天交不了差了。呵。谢谢了。
APM60- 2011-07-08
  • 打赏
  • 举报
回复
横向的话,把 jsweb8_cn_left 和 jsweb8_cn_left2 的宽度都设为 831 试试。

overflow:hidden 改为 overflow:scroll
仔细观察正常和一遍停止这2种情况有什么区别。
zls3406 2011-07-08
  • 打赏
  • 举报
回复
谢谢2楼showbo。我试了。不行。所以我感觉可能不是加载的问题。是什么图片滚动时无缝连接的问题。所以放在静态页面里是好用的。程序加完后台就滚动一遍就停了。现在还反正来让我改。我哪会啊。急死了。
zls3406 2011-07-08
  • 打赏
  • 举报
回复
有没有人帮帮忙啊。我加了
<script language="javascript" type="text/javascript">

if(document.readyState=="complete"){aa();}

function aa(){你要执行的代码}

</script>
不过还是不好用。不知道是不是什么无缝连接的问题,。
Go 旅城通票 2011-07-08
  • 打赏
  • 举报
回复
放到window.onload中
window.onload=function(){

var speed=30//速度数值越大速度越慢
//alert(document.getElementById('jsweb8_cn_left1').innerHTML);
document.getElementById('jsweb8_cn_left2').innerHTML=document.getElementById('jsweb8_cn_left1').innerHTML

function Marquee3(){

if(document.getElementById('jsweb8_cn_left2').offsetWidth-document.getElementById('jsweb8_cn_left').scrollLeft<=0)
document.getElementById('jsweb8_cn_left').scrollLeft-=document.getElementById('jsweb8_cn_left1').offsetWidth
else{
document.getElementById('jsweb8_cn_left').scrollLeft++
}
}
var MyMar3=setInterval(Marquee3,speed)
document.getElementById('jsweb8_cn_left').onmouseover=function() {clearInterval(MyMar3)}
document.getElementById('jsweb8_cn_left').onmouseout=function() {MyMar3=setInterval(Marquee3,speed)}

}
zls3406 2011-07-08
  • 打赏
  • 举报
回复
唉。有没有会的啊。请指点一下。让我一个做图的改这个真是头疼死了。
hch126163 2011-07-08
  • 打赏
  • 举报
回复
 演示地址:http://www.popub.net/script/MSClass.html
 下载地址:http://www.popub.net/script/MSClass.js
lsw645645645 2011-07-08
  • 打赏
  • 举报
回复
帮顶
chenhongxin 2011-07-08
  • 打赏
  • 举报
回复
在IE的各个版本下都好用。在FF下无效果。

87,907

社区成员

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

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