MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-08-11, 15:48

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 7 篇文章 ] 
發表人 內容
 文章主題 : 緊急的js問題
文章發表於 : 2006-01-19, 21:49 
離線
頭像

註冊時間: 2005-01-07, 15:55
文章: 947
來自: 我愛台妹
我寫了一個js,但在firefox是沒有效的,我的是在mouse滑過時,顯示了下拉式選單....

代碼:
<!--

var menuOffX=0        //菜單距連接文字最左端距離
var menuOffY=18        //菜單距連接文字頂端距離

var fo_shadows=new Array()
var linkset=new Array()


var ie4=document.all&&navigator.userAgent.indexOf("Opera")==-1
var ns6=document.getElementById&&!document.all
var ns4=document.layers
function openScript(url, width, height){
        var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no,status=no' );
}

function showmenu(e,vmenu,mod){
        if (!document.all&&!document.getElementById&&!document.layers)
                return
        which=vmenu
        clearhidemenu()
        ie_clearshadow()
        menuobj=ie4? document.all.popmenu : ns6? document.getElementById("popmenu") : ns4? document.popmenu : ""
        menuobj.thestyle=(ie4||ns6)? menuobj.style : menuobj
       
        if (ie4||ns6)
                menuobj.innerHTML=which
        else{
                menuobj.document.write('<layer name=gui bgColor=#E6E6E6 width=165 onmouseover="clearhidemenu()" onmouseout="hidemenu()">'+which+'</layer>')
                menuobj.document.close()
        }
        menuobj.contentwidth=(ie4||ns6)? menuobj.offsetWidth : menuobj.document.gui.document.width
        menuobj.contentheight=(ie4||ns6)? menuobj.offsetHeight : menuobj.document.gui.document.height
       
        eventX=ie4? event.clientX : ns6? e.clientX : e.x
        eventY=ie4? event.clientY : ns6? e.clientY : e.y
       
        var rightedge=ie4? document.body.clientWidth-eventX : window.innerWidth-eventX
        var bottomedge=ie4? document.body.clientHeight-eventY : window.innerHeight-eventY
                if (rightedge<menuobj.contentwidth)
                        menuobj.thestyle.left=ie4? document.body.scrollLeft+eventX-menuobj.contentwidth+menuOffX : ns6? window.pageXOffset+eventX-menuobj.contentwidth : eventX-menuobj.contentwidth
                else
                        menuobj.thestyle.left=ie4? ie_x(event.srcElement)+menuOffX : ns6? window.pageXOffset+eventX : eventX
               
                if (bottomedge<menuobj.contentheight&&mod!=0)
                        menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
                else
                        menuobj.thestyle.top=ie4? ie_y(event.srcElement)+menuOffY : ns6? window.pageYOffset+eventY+10 : eventY
        menuobj.thestyle.visibility="visible"
        ie_dropshadow(menuobj,"#999999",3)
        return false
}

function ie_y(e){ 
        var t=e.offsetTop; 
        while(e=e.offsetParent){ 
                t+=e.offsetTop; 
        } 
        return t; 

function ie_x(e){ 
        var l=e.offsetLeft; 
        while(e=e.offsetParent){ 
                l+=e.offsetLeft; 
        } 
        return l; 

function ie_dropshadow(el, color, size)
{
        var i;
        for (i=size; i>0; i--)
        {
                var rect = document.createElement('div');
                var rs = rect.style
                rs.position = 'absolute';
                rs.left = (el.style.posLeft + i) + 'px';
                rs.top = (el.style.posTop + i) + 'px';
                rs.width = el.offsetWidth + 'px';
                rs.height = el.offsetHeight + 'px';
                rs.zIndex = el.style.zIndex - i;
                rs.backgroundColor = color;
                var opacity = 1 - i / (i + 1);
                rs.filter = 'alpha(opacity=' + (100 * opacity) + ')';
                //el.insertAdjacentElement('afterEnd', rect);
                fo_shadows[fo_shadows.length] = rect;
        }
}
function ie_clearshadow()
{
        for(var i=0;i<fo_shadows.length;i++)
        {
                if (fo_shadows[i])
                        fo_shadows[i].style.display="none"
        }
        fo_shadows=new Array();
}


function contains_ns6(a, b) {
        while (b.parentNode)
                if ((b = b.parentNode) == a)
                        return true;
        return false;
}

function hidemenu(){
        if (window.menuobj)
                menuobj.thestyle.visibility=(ie4||ns6)? "hidden" : "hide"
        ie_clearshadow()
}

function dynamichide(e){
        if (ie4&&!menuobj.contains(e.toElement))
                hidemenu()
        else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget))
                hidemenu()
}

function delayhidemenu(){
        if (ie4||ns6||ns4)
                delayhide=setTimeout("hidemenu()",500)
}

function clearhidemenu(){
        if (window.delayhide)
                clearTimeout(delayhide)
}

function highlightmenu(e,state){
        if (document.all)
                source_el=event.srcElement
        else if (document.getElementById)
                source_el=e.target
        if (source_el.className=="menuitems"){
                source_el.id=(state=="on")? "mouseoverstyle" : ""
        }
        else{
                while(source_el.id!="popmenu"){
                        source_el=document.getElementById? source_el.parentNode : source_el.parentElement
                        if (source_el.className=="menuitems"){
                                source_el.id=(state=="on")? "mouseoverstyle" : ""
                        }
                }
        }
}





//-->


勞煩了各位

_________________
郭采潔全新專輯《愛異想》,5月1日正式發售
放下你手上萬惡的搖控器,支持無敵珊寶妹!別轉來轉去,否則會得散光!
我的部落格


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8) Gecko/20051111 Firefox/1.5
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-01-20, 04:02 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
Look near the end of the function showmenu
代碼:
menuobj.thestyle.visibility="visible"

maybe this would work...
代碼:
menuobj.thestyle.visibility="visible";
menuobj.thestyle.display="block";

What a messy js code...

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-01-20, 10:12 
離線
頭像

註冊時間: 2005-01-07, 15:55
文章: 947
來自: 我愛台妹
kourge 寫:
Look near the end of the function showmenu
代碼:
menuobj.thestyle.visibility="visible"

maybe this would work...
代碼:
menuobj.thestyle.visibility="visible";
menuobj.thestyle.display="block";

What a messy js code...

小弟入世未深啊 :oops:

_________________
郭采潔全新專輯《愛異想》,5月1日正式發售
放下你手上萬惡的搖控器,支持無敵珊寶妹!別轉來轉去,否則會得散光!
我的部落格


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8) Gecko/20051111 Firefox/1.5
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-01-20, 16:24 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
嗯,我在想...Eric Meyer 的純 CSS 選單應該會比較好^^;

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CHT; rv:1.8) Gecko/20051111 Firefox/1.5
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-01-20, 21:21 
離線
頭像

註冊時間: 2005-01-07, 15:55
文章: 947
來自: 我愛台妹
kourge 寫:
嗯,我在想...Eric Meyer 的純 CSS 選單應該會比較好^^;
可以介紹一下嗎^^ :P

_________________
郭采潔全新專輯《愛異想》,5月1日正式發售
放下你手上萬惡的搖控器,支持無敵珊寶妹!別轉來轉去,否則會得散光!
我的部落格


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8) Gecko/20051111 Firefox/1.5
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-01-21, 00:16 
離線
頭像

註冊時間: 2004-09-17, 18:02
文章: 1913
來自: MSB, MND
kourge 寫:
嗯,我在想...Eric Meyer 的純 CSS 選單應該會比較好^^;

這個除了掛 IE7 ,不然 IE 不支援吧...= ="

_________________
吟風齋


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8) Gecko/20051111 Firefox/1.5
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2006-01-21, 03:28 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
josesun 寫:
kourge 寫:
嗯,我在想...Eric Meyer 的純 CSS 選單應該會比較好^^;

這個除了掛 IE7 ,不然 IE 不支援吧...= ="

You can use csshover.htc to fix that.

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20051111 Firefox/1.5
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 7 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:Google [Bot] 和 4 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群