JS代码:图片由下向上不间断滚动,滚动到第二遍时写的CSS样式无效了,求指导!

代码如下:
<div id=demo style="overflow:hidden; width:220px; height:800px; border:1px solid #ddd;">
<div id=demo1>
<ul>
<li><a href="cpzx.asp"><img name="红色防火门" src="images/cp/gzfhm/5.jpg" width="130" height="180" alt="红色防火门"><p>红色防火门</p></a></li>
<li><a href="cpzx.asp"><img name="钢木子母带玻璃防火门" src="images/cp/gmzfhm/5.jpg" width="130" height="180" alt="钢木子母带玻璃防火门"><p>钢木子母带玻璃防火门</p></a></li>
..........
<li><a href="cpzx.asp"><img name="钢质防火窗" src="images/cp/fhc/3.jpg" width="130" height="180" alt="钢质防火窗"><p>钢质防火窗</p></a></li>
</ul>
</div>
<div id=demo2></div>
</div>
<script language="javascript">
var speed=20
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=0)
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>
加了些样式,滚动时就是一次CSS有效,一次无效不间断滚动,为何啊?
CSS:
#demo1{
width:130px;
margin:0 auto;
}
#demo1 ul li a{
width:130px;
font-size:12px;
color:#000;
}
#demo1 ul li a p{
width:130px;
text-align:center;
line-height:2.5em;
margin-bottom:10px;
}

第1个回答  推荐于2016-05-13
我的测试结果是这样的:
demo2.innerHTML=demo1.innerHTML;
//demo1.offsetHeight=783 demo2.offsetHeight=773
//demo2.offsetTop=792 scrollTop=752时停止
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=40)

当它停止的时候,还差40,所以,改成<=40 就可以了。

当scrollTop=752时,它是停止,是因为滚动条已经到底了,不能再滚动了,所以停止了。
但是,
demo1.offsetHeight=783
demo2.offsetHeight=773

这两个数据为什么不一样,我就不太理解了。楼主如果知道为什么的话,麻烦告诉我一下。

(噢,对了,差点忘了,因为楼主原引用的图片,我这里无法显示,于是,我就换了一张图片,但如果是原图片的话,上面三个数据也应该会是不一样的!楼主可以测试一下。)追问

非常感谢,不懂为何demo2.offsetTop-demo.scrollTop<=0不成立,水平方向滚动的代码就没问题。还有重要一点,要如何测试啊?

追答

我用的方法很简单,在用到某个变量的时候,需要知道它的值是不是我们想要的那个,可以在那个位置加个alert(demo1.offsetHeight); 之类的。

在你用的if语句之前,用alert判断一下各个变量的值就可以了。

但是,你这个代码我测试下来,就是没有明白这两个值一直都不相等:
demo1.offsetHeight=783
demo2.offsetHeight=773

这点我也感觉很奇怪。

本回答被提问者和网友采纳

网页中的滚动图片的代码怎么写?
colee.onmouseout=function(){MyMar1=setInterval(Marquee1,speed)} <!--向上滚动代码结束--> <!--下面是向下滚动代码-->

求JS控制的图片由下向上滚动代码,需要滚动一次停留几秒的
function AutoScroll(obj){ (obj).find("ul:first").animate({ marginTop:"-25px"},500,function(){ (this).css({marginTop:"0px"}).find("li:first").appendTo(this);});} (document).ready(function(){ setInterval('AutoScroll("#scrollDiv")',2000);)}; 滚动内容 ...

网页设计 图片滚动代码
新建一CSS样式表文件,并将该文件保存到与“index.html”相同的目录下,文件名称为“MyStyle.css"。在新建的样式表文件"MyStyle.css”文件中输入如下代码:* { padding:0; margin:0;} \/*设置所有对像的内边距为0*\/body { text-align:center;} \/*设置页面居中对齐*\/#photo-list {\/* 6...

js实现点击按钮图片左右滚动,不要自动滚动的。谢谢各位了!
<!-- 图片列表 begin --> 从巴黎旧公寓学家装点

js图片向上滚动一卡一卡的,求解决。
最后的代码中,滚动的步长改为1window.onload=function(){ new Marquee( "scroll", \/\/容器ID 0, \/\/向上滚动(0向上 1向下 2向左 3向右) 1, \/\/滚动的步长 173, \/\/容器可视宽度 149, \/\/容器可视高度 50, \/\/定时器 数值越小,滚动的速度越快(1000=1秒,建议不...

js图片滚动问题。无缝滚动图片做到一半,无法写下去了。4张图片,滚动时...
做无缝滚动的常规思路是:重复第一幅图片到最后,等滚动出位于最后的“第一幅图片”时,将画布位置切换回起始位置,此后重复执行滚动即可。给你个示例:

网页代码:求一个隔段时间可停顿的滚动字幕代码
Direction:用于设定活动字幕的滚动方向是向左(left)、向右(right)、向上(up)、向下(down)。Behavior:用于设定滚动的方式,主要由三种方式:behavior="scroll"表示由一端滚动到另一端;behavior="slide":表示由一端快速滑动到另一端,且不再重复;behavior="alternate"表示在两端之间来回滚动。Heigh...

js无空白循环滚动,为什么滚到最后一张图片就不滚了,求高手指点!代码在...
你好楼主,并不是JS有问题,是你在做表格时出现了问题。你设置colee_left,colee_left1,colee_left2的位置有问题。我改了下布局,用DIV来实现。你看下是不是你要的。直接上代码了。<!DOCTYPE html PUBLIC "-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN" "http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/...

求JS 大神,教教我图片轮播、、好心求解
4) 如果图片要看上去是连续滚动(到最后一幅时接着出现第一幅)的,那么可以重复第一幅图像到阵列的最末,然后当画轴滚动到此时,重置偏移量到第一幅。有了上述DOM结构后,就可以通过JS来控制画轴的偏移量了,如果使用动画,可以参考一些成熟的动画库,示例只提供最基本的线性动画(即匀速移动)。HTML...

js或是jquery代码怎么写让图片在一个div里实现由远到近的渐变效果,即图...
由远到仅需要做图片的效果(或者用css3效果也行,但目前的兼容性不行)div固定大小 js,jquery只用setTimeout、setInterval函数进行图片由小变大,宽度到底指定宽度后停止放大

相似回答