前面的文章說了一點浮動圖層的問題,,但是還不夠詳細,,在FireFox,,IE兩種瀏覽器下,在有DOCTYPE定義和無DOCTYPE定義兩種情況下,,浮動圖層所表現(xiàn)出來的問題都是不一樣的,,甚者今天發(fā)現(xiàn)在IE和FireFox都正常的時候,在Maxthon下居然出現(xiàn)了問題,。 下面的解決辦法應(yīng)該沒有什么問題了,。 1. 取scrollLeft、scrollTop的時候這樣?。?/p> varscrollLeft,scrollTop;
if(window.pageYOffset){ scrollTop=window.pageYOffset }elseif(document.documentElement&&document.documentElement.scrollTop){ scrollTop=document.documentElement.scrollTop; }elseif(document.body){ scrollTop=document.body.scrollTop; } if(window.pageXOffset){ scrollLeft=window.pageXOffset }elseif(document.documentElement&&document.documentElement.scrollLeft){ scrollLeft=document.documentElement.scrollLeft; }elseif(document.body){ scrollLeft=document.body.scrollLeft; } 2.取clientWidth,、clientHeight的時候這樣取:(下面用theX,、theY代替,,尤其是想在頁面的右下端顯示浮動窗口的時候會用到這兩個參數(shù)) vartheX,theY;
if(window.innerWidth){ theX=‘window.innerWidth‘; }elseif(document.documentElement&&document.documentElement.clientWidth){ theX=‘document.documentElement.clientWidth‘; }elseif(document.body){ theX=‘document.body.clientWidth‘; } if(window.innerHeight){ theY=‘window.innerHeight‘; }elseif(document.documentElement&&document.documentElement.clientHeight){ theY=‘document.documentElement.clientHeight‘; }elseif(document.body){ theY=‘document.body.clientHeight‘; } 3.在開始的時候,要將準(zhǔn)備浮動的圖層弄成隱藏的,,這樣會避免向?qū)D層在右端浮動,,在頁面加載的時候圖層由左至右的飛過去。 4.設(shè)置圖層可以顯示的時候,,下面兩個都要用,,不然圖層在某瀏覽器下會不顯示: object.style.display = ‘block‘; 5.在給圖層設(shè)浮動位置的時候,用表達式而不用具體的數(shù)值,,例如設(shè)置 theX = ‘document.body.clientHeight-20‘; 然后在執(zhí)行的時候求值eval(theX),,這樣做的好處是當(dāng)窗口有全屏變小的時候,浮動窗口會跟著浮動,,否則就會隱藏在右面了,。 |
|