多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > 【JavaScript】利用文件碎片DocumentFragment改進兼容IE6可調可控的圖片滑塊

【JavaScript】利用文件碎片DocumentFragment改進兼容IE6可調可控的圖片滑塊

來源:程序員人生   發布時間:2015-04-07 08:30:35 閱讀次數:2752次

上次在《【JavaScript】兼容IE6可調可控的圖片滑塊》(點擊打開鏈接)的算法寫得很不好,如果你要做N個圖片的圖片滑塊,每次顯示X張圖片,則要1次性地多加載X⑴張圖片,還要用1種顯示框移動的方法去實現。更可怕的是,還要天經地義地認為就是這樣的。雖然這個背背常人思惟方式在網上廣泛流傳,而且好像還是公式1樣,就只有1種實現方法,其實不是的,明顯可以利用文件碎片DocumentFragment去實現圖片滑塊,如果你要N個圖片的圖片滑塊,就加載N個圖片,這才是正常的。關鍵利用文件碎片,實現200000張圖片的圖片滑塊也是沒問題的。前文寫的方法就捉襟見肘了。


1、基本目標

還是與上次1模1樣的功能,但是實現方式與上次不同,具體請比對兩篇文章瀏覽



2、基本思想

上次要加載N張圖片,利用顯示滑塊去實現,但是這次再利用以下的方式:


就是我在上文中認為打死也不可能的方式,把4個圖片滑塊看作是數組,滑塊向左移則把數組第1個元素移到末尾,滑塊向右移則把數組最后1個元素移到頭部。


3、制作進程

1、HTML布局還是上文的布局,圖片就是那幾張從winxp系統拔來的可憐圖片,1字沒改,具體以下,不再贅述。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf⑻" /> <title>picmarquee</title> </head> <body> <div>sssssss</div> <div style="float:left;"><button onclick="pic_marquee_move(0)"><</button></div> <div id="picMarquee" style="float:left;"> <div style="padding-left:10px; float:left; display:block;"><a href="imgs/Ascent.jpg" target="_new"><img src="imgs/Ascent.jpg" width="50px" border="0" /></a></div> <div style="padding-left:10px; float:left; display:block;"><a href="imgs/Autumn.jpg" target="_new"><img src="imgs/Autumn.jpg" width="50px" border="0" /></a></div> <div style="padding-left:10px; float:left; display:block;"><a href="imgs/Azul.jpg" target="_new"><img src="imgs/Azul.jpg" width="50px" border="0" /></a></div> <div style="padding-left:10px; float:left; display:block;"><a href="imgs/Crystal.jpg" target="_new"><img src="imgs/Crystal.jpg" width="50px" border="0" /></a></div> </div> <div style="float:left; padding-left:10px;"><button onclick="pic_marquee_move(1)">></button></div> <div style="clear:both"></div> <div>sssssss</div> </body> </html>
2、以后的javascript實現部份是實現的重點,這里靈活使用了《【JavaScript】利用getElementsByTagName與getElementsByName改進原生態兼容IE6標簽頁》(點擊打開鏈接)成組取節點的方式與javascript對數組Array的操作函數unshift(),shift(),pop(),push(),文件碎片就是1個在內存的節點,與操作平時節點《【JavaScript】網頁節點的增刪改查》(點擊打開鏈接)沒有任何區分,具體以下:

<script> //網頁加載就要調用這個函數了,參數1代表向右轉動,注意HTML的按鈕調用的函數你就知道了 pic_marquee_move(1); //每2S向右變換1次 setInterval("pic_marquee_move(1)",2000); function pic_marquee_move(leftOrRight){ //獲得picMarquee下的所有div節點,構成1個數組 var divArr=document.getElementById("picMarquee").getElementsByTagName("div"); //只是這樣的1個“援用數組”還不能直接操作,必須新建1個真正數組把這里面的所有存進去 var tempSoftArr=new Array(); for(var i=0;i<divArr.length;i++){ tempSoftArr[i]=divArr[i]; } //如果向左移 if(leftOrRight==0){ //那末把刪除數組第1個元素,并把這個元素通過變量存起來 var firstPic=tempSoftArr.shift(); //以后把這個元素放到這個數組的最后1個位置,也相當于插入到數組 tempSoftArr[tempSoftArr.length]=firstPic; } else{ //如果向右移,把最后1個元素放到這個數組的頭部 tempSoftArr.unshift(tempSoftArr.pop()); } //新建1個文件碎片,文件碎片就是1個暫存夾,你先把這個節點弄好再放到真實的網頁里面去,不用弄1個節點就刷新1次網頁,卡爆 var frag=document.createDocumentFragment(); for(var i=0;i<tempSoftArr.length;i++){ frag.appendChild(tempSoftArr[i]); } //文件碎片是替換插入方式,原來id為picMarquee節點旗下的東西會被文件碎片節點替換 document.getElementById("picMarquee").appendChild(frag); } </script>

至此,全部畫圖滑塊做完。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲精品久久久久久久久久久网站 | 日韩视频在线一区 | 国产精品视频在线观看 | 伊人影院视频 | 性freesexvideo xxx | 日欧毛片 | 日韩精品一区二区三区视频网 | 日韩精品欧美激情亚洲综合 | 高清不卡一区二区三区 | 国产精品一级视频 | 亚洲国产最新 | 欧美xxxxx九色视频免费观看 | 一区二区三区四区在线播放 | freexxx性欧美vide0高清 | 欧美日韩国产超高清免费看片 | 精品国产一区二区三区久久 | 美国人和狍xxxx视频 | 国产一级特黄aaaa大片野外 | 一区二区三区影视 | 新午夜影院 | 亚洲伊人久久大香线蕉啊 | chinese多姿势videos | 亚洲情a成黄在线观看动 | 国产95在线 | 亚洲 | 日本亚洲乱码中文字幕影院 | 亚洲 欧美 另类 综合 日韩 | 又污又黄又无遮挡的网站国产 | 免费观看成年欧美1314www色 | 波多野结衣久久国产精品 | 欧美在线视频播放 | 欧美不卡在线视频 | 精品国产福利片在线观看 | 亚洲国产精品看片在线观看 | 五月婷婷亚洲综合 | 欧美日韩午夜精品不卡综合 | 男人天堂久久 | 国产欧美日韩在线一区二区不卡 | 亚洲欧美一区二区三区不卡 | 亚洲国产日韩欧美 | 性激烈的欧美三级视频中文字幕 | 国产亚洲第一页 |