图片滚动奇效实现方法的分析(JavaScript)

图片滚动特效实现方法的分析(JavaScript)

 

 转载请标明是引用于 http://blog.****.net/chenyujing5678 

欢迎拍砖!

 一、第一种特效

1、待分析的特效

http://www.bdqn.cn/网站下可以看到这要的自动播放效果

图片滚动奇效实现方法的分析(JavaScript)

2、分析

打开主页的源文件,找到此模块的代码:

<!--左侧图片广告开始-->
        <div class="flash">
             <script type="text/javascript">
					             var swf_width=338;
					 			var swf_height=250;
                                var config='5|0xffffff|0x666666|80|0xffffff|0xFF9900|0x000000';	//-- config 参数设置 -- 自动播放时间(秒)|文字颜色|文字背景色|文字背景透明度|按键数字颜色|当前按键颜色|普通按键色彩 --
                                var files='',links='', texts='';
                                                                files+='|http://www.bdqn.cn/admin/uploads/2012/05/24/4fbe063fc1e5f.jpg';links+='|http://www.bdqn.cn/xczb';texts+='|';
                                                                files+='|http://www.bdqn.cn/admin/uploads/2012/05/24/4fbe064b7a999.jpg';links+='|http://www.bdqn.cn/topic/index2.html';texts+='|';
                                                                files+='|http://www.bdqn.cn/admin/uploads/2012/05/24/4fbe06558fd44.jpg';links+='|http://www.bdqn.cn/news/info/id/1892.html';texts+='|';
                                                                files+='|http://www.bdqn.cn/admin/uploads/2012/05/24/4fbe06703c4d3.jpg';links+='|http://www.bdqn.cn/topic/index1.html';texts+='|';
                                                                files+='|http://www.bdqn.cn/admin/uploads/2012/05/24/4fbe06674845f.jpg';links+='|http://home.bdqn.cn/client_down.php';texts+='|';
                                                                files=files.substring(1);links=links.substring(1);texts=texts.substring(1);
                                document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+ swf_width +'" height="'+ swf_height +'">');
                                document.write('<param name="movie" value="media/focus.swf" />');
                                document.write('<param name="quality" value="high" />');
                                document.write('<param name="menu" value="false" />');
                                document.write('<param name=wmode value="opaque" />');
                                document.write('<param name="FlashVars" value="config='+config+'&bcastr_flie='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'" />');
                                document.write('<embed src="media/focus.swf" wmode="opaque" FlashVars="config='+config+'&bcastr_flie='+files+'&bcastr_link='+links+'&bcastr_title='+texts+'& menu="false" quality="high" width="'+ swf_width +'" height="'+ swf_height +'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />');
                                document.write('</object>');
              </script>
        
      </div>


1)、<div class="flash">

它表从引入的.css文件中读取样式flash,如下:

.flash{ border:1px solid #ccc; height:250px;}

2)、

前面是变量定义:swf_width、 swf_height、config、files、links、texts

二、第二种特效

1、待分析的特效

http://www.bdqn.cn/网站下可以看到这要的自动播放效果

图片滚动奇效实现方法的分析(JavaScript)

 

2、分析

(1)它在HTML中的是一个table。

图片滚动奇效实现方法的分析(JavaScript)

(2)通过以下两句中的id来引用到JavaScript代码:

<tr><td  align="center" valign="top" id="colee_left1">
<td width="70" valign="top" id="colee_left2"></td>

(3)javaScript的定义就在主页的源码中的底部:(它是实现特效的关键所在

图片滚动奇效实现方法的分析(JavaScript)

 

 

以上getElementById("colee_left2");中的colee_left2 是从哪里来的呢?我猜想是从外部链接的.js文件中来的,后来发现它就是在我们的页面中指定了:

图片滚动奇效实现方法的分析(JavaScript)

 

3、用于的javaScript说明

3、1   document 对象

http://www.phpx.com/man/dhtmlcn/objects/obj_document.html

属性: title ; bgColor ; url; ( 使用: document.title)

方法:

focus

使得元素得到焦点并执行由 onfocus事件指定的代码。

getElementById

获取对 ID标签属性为指定值的第一个对象的引用。

getElementsByName

根据 NAME标签属性的值获取对象的集合。

getElementsByTagName

获取基于指定元素名称的对象集合。

3、2    document . getElementById 的用法,如下:

 A :  语法:
    oElement = document . getElementById ( sID )
     参数:
    sID  : 必选项。字符串 (String) 。

     返回值:
    oElement  : 对象 (Element) 。

 说明:
根据指定的 id 属性值得到对象。返回 id 属性值等于 sID 的第一个对象的引用。假如对应的为一组对象 ,则返回该组对象中的第一个。 如果无符合条件的对象,则返回 null 。

 

B :有一个例子可以很好的说明:

  ****************************************************************************
  *                                                                          *
  *  这个函数中最关键的地方是 document.getElementById ,他是什么呢?       *
  *                                                                          *
  *  关于 document.getElementById ,是这样的:                             *
  *                                                                    *
  *  如: document.getElementById('hdrPageHeader_lblTitle')              *
  *                                                                    *
  *  表示的意思是:获取 ID 为 :hdrPageHeader_lblTitle 的对象                 *
  *                                                                          *
  * <a id="hdrPageHeader_lblTitle0">aa</a>                             *
  * <a id="hdrPageHeader_lblTitle">bb</a>                              *
  * <a id="hdrPageHeader_lblTitle1">cc</a>                             *
  * <script language="javascript">                                     *
  * <!--                                                               *
  * var idtext=document.getElementById('hdrPageHeader_lblTitle')       *
  * alert(idtext.innerText)                                            *
  * //-->                                                              *
  * </script>                                                          *
  *                                                                          *
  **************************************************************************** 

 

C :另外还得到一个细节:

http://bbs.cnitn.cn/dispbbs.asp?boardid=20&id=12957,内容是:

① document.getElementById 有时会抓 name 放过了 id ,据说是 IE 的一个 BUG ;
页面中有
    <input type="hidden" id="hello8" name="category_id" value="2" />

         <select id="category_id"   onchange="al();">

一个是 name="category_id" 一个是 id="category_id"

用 document.getElementById 取第二个,可是,取到的却是第一个 name=category_id

在 IE 中 getElementById 竟然不是先抓 id 而是先找 name 相同的物件 ...

兩個 form, 每個 form 有兩個 textbox, 兩個 form 中的 textbox 是相同的 name, 但 id 都不同 ...
這樣在 Firefox 是沒問題的 ... 但在 IE 卻只抓得到第一個出現的 name 資料

4、收获

知道了滚动物资的实现,以后我们可以从别人的网站上把特效代码给copy过来使用了。