MozTW 討論區 https://forum.moztw.org/ |
|
如何在Firefox裡使用javascript fillter屬性 https://forum.moztw.org/viewtopic.php?f=13&t=18573 |
第 1 頁 (共 1 頁) |
發表人: | avseq [ 2007-04-18, 23:12 ] |
文章主題 : | 如何在Firefox裡使用javascript fillter屬性 |
下面這段javascript只能在IE使用,不能在firefox使用,要怎麼改才能在firefox裡使用呢? 代碼: <html>
<head><title></title> <script language="JavaScript1.1"> var img1 = new Image(); img1.src = "ap_20060728014313104.jpg"; var img2 = new Image(); img2.src = "ap_20060728014301639.jpg"; </script> <head> <body onLoad="init()"> <script language="JavaScript"> var maxLoops = 2; //圖片總數 var bInterval = 2; //圖片完全開啟之後,停留的時間,2=2秒 var count = 1; function init() { document.getElementById('blendtrjs').filters.blendTrans.apply(); document.images.blendtrjs.src = eval("img"+count+".src"); document.getElementById('blendtrjs').filters.blendTrans.play(); if (count < maxLoops) { count++; } else { count = 1; } setTimeout("init()", bInterval*500+2000); } </script><img src="ap_20060728014313104.jpg" id="blendtrjs" border="0" style="filter: blendTrans(duration=2);> </body> <html> |
發表人: | 風痕影 [ 2007-04-19, 07:07 ] |
文章主題 : | |
很可惜,沒有辦法,filter 的特效是 IE 專有的 @@" |
發表人: | kourge [ 2007-04-19, 15:08 ] |
文章主題 : | |
而且還用 eval() = =||| 甚麼年代了... document.images.blendtrjs.src = eval("img"+count+".src"); 可以改成 document.images.blendtrjs.src = window["img"+count].src; |
發表人: | 訪客 [ 2007-04-21, 13:46 ] |
文章主題 : | |
原程式碼中 eval( "img"+count+".src") 的寫法, 使用 eval() 確實不是好主意,也無此必要, 直接寫成 = "img"+count+".src" 即可。 但是,每回執行時會分別建立暫存變數、 指定值 "img"、".scr" 給暫存變數,然後進行運算。 因此在快速循環處理的情形下,效能稍差。 kourge 寫: 可以改成
document.images.blendtrjs.src = window["img"+count].src; 不可以吧!? 建議改成: 代碼: var count = 1, u='_', imgSrc="img_.src";
function init() { .... document.images.blendtrjs.src = imgSrc.replace(u,count); .... 這樣 init() 每次執行時,直接由變數 u, imgSrc 取出運算。 |
發表人: | kourge [ 2007-04-26, 21:17 ] |
文章主題 : | |
Anonymous 寫: 原程式碼中 eval( "img"+count+".src") 的寫法,
使用 eval() 確實不是好主意,也無此必要, 直接寫成 = "img"+count+".src" 即可。 直接寫成 "img"+count+".src" 就會直接把類似像 "img1.src" 這樣的字串指定給 document.images.blendtrjs.src,"img1.src" 又不是有效的 src 路徑。 eval( "img"+count+".src") 是為了把實際路徑,如 ap_20060728014313104.jpg,給取出來。 而全域變數 (global variables) 都可以藉由 window 來存取,再加上 foo.bar 跟 foo['bar'] 意思是一樣的,所以可以改成 window["img"+count].src。 代碼: var x1 = {y: 'blah'};
var a = eval('x' + '1' + '.y'); var b = 'x' + '1' + '.y'; var c = window['x' + '1'].y; b 會等於 'x1.y',a 和 c 會等於 'blah'。 |
發表人: | BobChao [ 2007-04-29, 15:26 ] |
文章主題 : | |
如果真有需要,請參考這篇: http://www.brainerror.net/scripts_js_blendtrans.php (關鍵字: blendtrans firefox) |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |