编程论坛's Archiver

dushui265 发表于 2007-10-21 14:24

如何实现图片不间断的滚动啊?

我想通过 Marquee 实现图片不间断的循环滚动,中间不会出现空白<BR>有没有比较简单容易实现的代码啊?

zacom 发表于 2007-10-21 14:42

这个好象只能用JS来完成

天涯听雨 发表于 2007-10-21 16:43

<P>参考代码:<BR><BR>————————————————————————————————————————<BR><BR>&lt;style type="text/css"&gt;</P>
<P>.gradualshine{<BR>filter:alpha(opacity=30);<BR>-moz-opacity:0.3;<BR>}</P>
<P>&lt;/style&gt;</P>
<P>&lt;script type="text/javascript"&gt;<BR>var baseopacity=30</P>
<P>function slowhigh(which2){<BR>imgobj=which2<BR>browserdetect=which2.filters? "ie" : typeof which2.style.MozOpacity=="string"? "mozilla" : ""<BR>instantset(baseopacity)<BR>highlighting=setInterval("gradualfade(imgobj)",50)<BR>}</P>
<P>function slowlow(which2){<BR>cleartimer()<BR>instantset(baseopacity)<BR>}</P>
<P>function instantset(degree){<BR>if (browserdetect=="mozilla")<BR>imgobj.style.MozOpacity=degree/100<BR>else if (browserdetect=="ie")<BR>imgobj.filters.alpha.opacity=degree<BR>}</P>
<P>function cleartimer(){<BR>if (window.highlighting) clearInterval(highlighting)<BR>}</P>
<P>function gradualfade(cur2){<BR>if (browserdetect=="mozilla" &amp;&amp; cur2.style.MozOpacity&lt;1)<BR>cur2.style.MozOpacity=Math.min(parseFloat(cur2.style.MozOpacity)+0.1, 0.99)<BR>else if (browserdetect=="ie" &amp;&amp; cur2.filters.alpha.opacity&lt;100)<BR>cur2.filters.alpha.opacity+=10<BR>else if (window.highlighting)<BR>clearInterval(highlighting)<BR>}</P>
<P>&lt;/script&gt;<BR>&lt;DIV id=demo style="OVERFLOW: hidden; WIDTH:580px; HEIGHT:80px"&gt;<BR>  &lt;TABLE cellSpacing=0 cellPadding=0 border=0&gt;<BR>  <BR>    &lt;TBODY&gt;<BR>      &lt;TR&gt;<BR>        &lt;TD id=demo1&gt;<BR>          &lt;TABLE cellSpacing=0 cellPadding=3 &gt;<BR>            &lt;TBODY&gt;<BR>    &lt;TR vAlign=top align=left width="360"&gt; <BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo1.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo2.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo3.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo4.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo5.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo6.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo7.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo8.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo9.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>      &lt;TD&gt;&lt;IMG height=80 src="images/photo10.jpg" width=120 <BR>      border=0&gt;&lt;/TD&gt;<BR>    &lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;<BR>    &lt;TD id=demo2&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;<BR>  &lt;/TABLE&gt;<BR>&lt;/DIV&gt;<BR>&lt;SCRIPT&gt;<BR>var speed=20</P>
<P>demo2.innerHTML=demo1.innerHTML</P>
<P>function Marquee(){</P>
<P>if(demo2.offsetWidth-demo.scrollLeft&lt;=0)</P>
<P> demo.scrollLeft-=demo1.offsetWidth</P>
<P>else{</P>
<P> demo.scrollLeft++  <BR>}  </P>
<P>}</P>
<P>var MyMar=setInterval(Marquee,speed)</P>
<P>demo.onmouseover=function(){clearInterval(MyMar)}</P>
<P>demo.onmouseout=function(){MyMar=setInterval(Marquee,speed)}<BR>&lt;/SCRIPT&gt;</P>

威龙嘉少 发表于 2007-10-21 18:13

怎么改变运行框的大小啊,还有就是点击察看大图怎么做呢?

madpbpl 发表于 2007-10-21 19:00

<DIV class=quote><B>以下是引用<U>威龙嘉少</U>在2007-10-21 18:13:30的发言:</B><BR>怎么改变运行框的大小啊,还有就是点击察看大图怎么做呢?</DIV>
<p>搜索lightbox

天涯听雨 发表于 2007-10-22 09:22

这些还在写出来……,真是要把所有的代码全部写好![em03]

dushui265 发表于 2007-10-22 13:52

<P>怎么发现把上面比较长的一段&lt;script type="text/javascript"&gt;....&lt;/SCRIPT&gt;<BR>的代码去掉也会实现同样效果,没有影响啊?<BR></P>

chufanggang 发表于 2007-10-22 20:33

[em09]

cainiao158 发表于 2007-10-22 21:18

<P>我在网上找的,大家借鉴一下吧!!!!<BR><BR><BR>&lt;!DOCTYPE    HTML    PUBLIC    "-//W3C//DTD    HTML    4.01    Transitional//EN"   <BR>   "<a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank" >http://www.w3.org/TR/html4/loose.dtd</A>"&gt;   <BR>   &lt;html&gt;   <BR>   &lt;head&gt;   <BR>   &lt;meta    http-equiv="Content-Type"    content="text/html;    charset=gb2312"&gt;   <BR>   &lt;title&gt;无标题文档&lt;/title&gt;   <BR>   &lt;/head&gt;   <BR>    <BR>   &lt;body&gt;   <BR>   &lt;div    id="marquees"&gt;    &lt;!--    这些是字幕的内容,你可以任意定义    --&gt;   <BR>   &lt;a href=""&gt;&lt;img src=" " style="width:120px;height:120px;border:0px;" alt="test"/&gt;&lt;/a&gt;   <BR>   &lt;a href=""&gt;&lt;img src=" " style="width:120px;height:120px;border:0px;" alt="test"/&gt;&lt;/a&gt;<BR>   &lt;a href=""&gt;&lt;img src=" " style="width:120px;height:120px;border:0px;" alt="test"/&gt;&lt;/a&gt;<BR>   &lt;a href=""&gt;&lt;img src=" " style="width:120px;height:120px;border:0px;" alt="test"/&gt;&lt;/a&gt; <BR>   &lt;!--    字幕内容结束    --&gt;   <BR>   &lt;/div&gt;     <BR>     &lt;!--    以下是java-scrīpt代码    --&gt;   <BR>     &lt;scrīpt    language="javascrīpt"&gt;   <BR>     &lt;!--   <BR>       marqueesWidth=480;    //内容区宽度度   <BR>       stopscroll=false;    //这个变量控制是否停止滚动   <BR>       with(marquees){   <BR>       noWrap=true;    //这句表内容区不自动换行   <BR>       style.width=marqueesWidth;    //于是我们可以将它的宽度设为0,因为它会被撑大   <BR>       style.height=0;   <BR>          <BR>       style.overflowX="hidden";    //滚动条不可见   <BR>       onmouseover=new    Function("stopscroll=true");    //鼠标经过,停止滚动   <BR>       onmouseout=new    Function("stopscroll=false");    //鼠标离开,开始滚动   <BR>       }   <BR>       //这时候,内容区的高度是无法读取了。下面输出一个不可见的层"templayer",稍后将内容复制到里面:   <BR>       document.write('&lt;div    id="templayer"style="position:absolute;z-index:1;visibility:hidden"&gt;&lt;/div&gt;');   <BR>          <BR>       function    init(){    //初始化滚动内容   <BR>       while(templayer.offsetWidth&lt;marqueesWidth){   <BR>       templayer.innerHTML+=marquees.innerHTML;   <BR>       }    //把"templayer"的内容的“两倍”复制回原内容区:   <BR>       marquees.innerHTML=templayer.innerHTML+templayer.innerHTML;   <BR>       //设置连续超时,调用"scrollUp()"函数驱动滚动条:   <BR>       setInterval("scrollUp()",20);   <BR>       }   <BR>       document.body.onload=init;   <BR>       preTop=0;    //这个变量用于判断滚动条是否已经到了尽头   <BR>       function    scrollUp(){    //滚动条的驱动函数   <BR>       if(stopscroll==true)    return;    //如果变量"stopscroll"为真,则停止滚动     <BR>       preTop=marquees.scrollLeft;     <BR>       marquees.scrollLeft+=1;   <BR>       //如果滚动条不动了,则向上滚动到和当前画面一样的位置   <BR>       //当然不仅如此,同样还要向下滚动一个像素(+1):   <BR>       if(preTop==marquees.scrollLeft){   <BR>       marquees.scrollLeft=templayer.offsetHeight-marqueesWidth+1;   <BR>       }   <BR>       }   <BR>     --&gt;   <BR>     &lt;/scrīpt&gt;   <BR>    <BR>   &lt;/body&gt;   <BR>   &lt;/html&gt;  </P>

zhangpei01 发表于 2008-6-26 18:04

试一试先!

[em01]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.