郁闷小男人 发表于 2008-12-7 13:35:36

dreamweaver制作可控制的横向滚动

<P>1. 在DreamWeaver里插入一个层,这个层做为滚动区域。设置层的参数如下: <BR><BR><IMG src="/bbs/attachments/websoft/20081206/200812713334595377801.gif"> <BR><BR>设置层编号为:slayer ,也就是层的ID属性。<BR><BR>左和上的值是层在页面的位置可以根据需要自行设置;这里是100和120象素。<BR><BR>宽和高是层的大小,也根据需要设置;<BR><BR>剪辑是指层的显示区域,在剪辑以外的部分被隐藏,我们利用这个显示区域隐藏层的右面部分,然后控制层移动的同时控制这个显示区域,来完成我们要的滚动区域效果。<BR><BR>设置右为显示的宽,这里为340;下等于高。<BR><BR>下面为层的代码:<BR><FONT color=blue><BR>&lt; div id="slayer" style="position:absolute; top: 120px; left: 100px; clip: rect(0 340 120 0); height: 120px; background-color: #CCCCCC; layer-background-color: #CCCCCC; border: 1px none #000000; width: 670px" &gt;</FONT><BR><BR>我们在可以在层里横着放一些图片,这里用表格代替。而上面设置的层的大小正好能包容所有图片。</P><P>2. 下面代码是层滚动代码,我们插到层标记&lt; div &gt;的下面:<BR><BR>插入时注意layerW的值为剪辑(clip)右的值,这里为340。<BR><BR><FONT color=blue>&lt; script language="javascript" &gt;<BR><BR>&lt; !-- //by hve<BR><BR>var layerW=340; //设定显示区域的宽<BR><BR>var layerH=parseInt(slayer.style.height);<BR><BR>var layerL=parseInt(slayer.style.left);<BR><BR>var layerT=parseInt(slayer.style.top);<BR><BR>var step=0; //scroll value<BR><BR>function movstar(a,time){<BR><BR>if (a&lt; 0&amp;&amp;step &gt;-parseInt(slayer.scrollWidth) layerW||a &gt;0&amp;&amp;step&lt; 0) <BR><BR>mov(a);<BR><BR>movx=setTimeout("movstar(" a "," time ")",time);<BR><BR>}<BR><BR>function movover(){<BR><BR>clearTimeout(movx);<BR><BR>}<BR><BR>function mov(a){<BR><BR>slayer.style.left = (step =a)   layerL;<BR><BR>clipL=0-step;<BR><BR>clipR=layerW-step;<BR><BR>clipB=layerH; <BR><BR>clipT=0;<BR><BR>slayer.style.clip="rect(" clipT " " clipR " " clipB " " clipL ")"; <BR><BR>}<BR><BR>//-- &gt;<BR><BR>&lt; /script &gt;</FONT><BR><BR>3. 再插入一个层放置“控制按钮”。<BR><BR>这个层靠在前面层的下面,用来放置“控制按钮”,位置可以根据需要自行调整,如下图。我们这里用表格的色块当作控制按钮,如果做两个箭头形状的图片会更好。<BR><BR><IMG src="/bbs/attachments/websoft/20081206/2008127133346077802.gif"></P><P>4. 在“控制按钮”的标记里分别加上下面代码。<BR><BR>这里是加在表格标记&lt; td &gt;里的,如果你用图片做按钮则加在&lt; img &gt;标记里。<BR><BR><B>左按钮:</B><BR><FONT color=blue><BR>onMouseDown="movover();movstar(3,2)" onMouseOut="movover()" onMouseOver="movstar(1,20)" onMouseUp="movover();movstar(1,20)"</FONT><BR><BR><B>右按钮:</B><BR><FONT color=blue><BR>onMouseDown="movover();movstar(-3,2)" onMouseOut="movover()" onMouseOver="movstar(-1,20)" onMouseUp="movover();movstar(-1,20)"</FONT><BR><BR>上面代码的含义为当鼠标指向按钮开始动作,按住则加快速度,鼠标离开按钮则停止动作,-号为反方向运动。<BR><BR>5. 完成<BR><BR>当鼠标指向“控制按钮”时,会向左或向右滚动,点住鼠标不放会加快滚动速度。<BR><BR>全部代码为:(可以拷贝在BODY区测试)<BR><FONT color=blue><BR>&lt; div id="slayer" style="position:absolute; top: 120px; left: 100px; clip: rect(0 340 120 0); height: 120px; background-color: #CCCCCC; layer-background-color: #CCCCCC; border: 1px none #000000; width: 670px" &gt; <BR><BR>&lt; script language="javascript" &gt;<BR><BR>&lt; !-- //by hve<BR><BR>var layerW=340; //设定显示区域的宽<BR><BR>var layerH=parseInt(slayer.style.height);<BR><BR>var layerL=parseInt(slayer.style.left);<BR><BR>var layerT=parseInt(slayer.style.top);<BR><BR>var step=0; //scroll value<BR><BR>function movstar(a,time){<BR><BR>if (a&lt; 0&amp;&amp;step &gt;-parseInt(slayer.scrollWidth) layerW||a &gt;0&amp;&amp;step&lt; 0) <BR><BR>mov(a);<BR><BR>movx=setTimeout("movstar(" a "," time ")",time);<BR><BR>}<BR><BR>function movover(){<BR><BR>clearTimeout(movx);<BR><BR>}<BR><BR>function mov(a){<BR><BR>slayer.style.left = (step =a)   layerL;<BR><BR>clipL=0-step;<BR><BR>clipR=layerW-step;<BR><BR>clipB=layerH; <BR><BR>clipT=0;<BR><BR>slayer.style.clip="rect(" clipT " " clipR " " clipB " " clipL ")"; <BR><BR>}<BR><BR>//-- &gt;<BR><BR>&lt; /script &gt;<BR><BR>&lt; table cellspacing="10" border="0" cellp
页: [1]
查看完整版本: dreamweaver制作可控制的横向滚动