MozTW 討論區
https://forum.moztw.org/

請教.js的問題
https://forum.moztw.org/viewtopic.php?f=13&t=16219
1 頁 (共 1 頁)

發表人:  訪客 [ 2006-11-04, 11:58 ]
文章主題 :  請教.js的問題

我有一個網站,其中的訊息提示"alt="xxx"在IE中可以正常顯示,如下圖
圖檔

但在firefox下,就沒有了效果,變得很醜,請問如何修改呢
圖檔

以下是有關訊息提示的代碼,請各位大大指教,多謝~
代碼:
document.write("<style type='text/css'id='defaultPopStyle'>");
document.write(".PopText { font-family: Verdana,Tahoma; background-color: #F4F4F5; border: 1px #BBBBBB dashed; font-size: 12px; padding-right: 6px; padding-left: 6px; padding-top: 6px; padding-bottom: 6px; visibility: hidden; filter: Alpha(Opacity=0)}");

document.write("</style>");
document.write("<div id='popLayer' style='position:absolute;z-index:1000;filter:revealtrans(duration=.2,transition=10) revealTrans(duration=.2,transition=23) alpha(opacity=80,enabled=100)' class='PopText'></div>");

function showPopupText() {
   var o=event.srcElement;
   MouseX=event.x;
   MouseY=event.y;
   if(o.alt!=null && o.alt!="") { o.pop=o.alt;o.alt="" }
        if(o.title!=null && o.title!=""){ o.pop=o.title;o.title="" }
      if(o.pop) {
         o.pop=o.pop.replace("\n","<br>");
          o.pop=o.pop.replace("\n","<br>");   
               }
   if(o.pop!=sPop) {
      sPop=o.pop;
      if(sPop==null || sPop=="") {
         popLayer.filters[0].apply();
         popLayer.style.visibility="hidden";   
         popLayer.filters[0].play();
         popLayer.style.width=""
      } else {
         sPop=o.pop;
         var rpstr="<font color=black>================</font>"
         sPop=rpstr + "<br>" + sPop;         
         sPop+="<br>" + rpstr;
         if(o.dyclass!=null) popStyle=o.dyclass
         else popStyle="PopText";
             
         popLayer.filters[1].apply();
         popLayer.style.visibility="visible";
         popLayer.filters[1].play();
         showIt();
         if (popLayer.offsetWidth>500)
         {
            popLayer.style.width=500
         }
      }
   }
}

function showIt() {
   popLayer.className=popStyle;
   popLayer.innerHTML=sPop;

   popWidth=popLayer.clientWidth;
   popHeight=popLayer.clientHeight;
   if(event.clientX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
      else popLeftAdjust=0;
   if(event.clientY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
      else popTopAdjust=0;
   popLayer.style.left=event.clientX+12+document.body.scrollLeft+popLeftAdjust;
   popLayer.style.top=event.clientY+12+document.body.scrollTop+popTopAdjust;
}

document.onmouseover=showPopupText;
[/img]

發表人:  shray [ 2006-11-04, 12:01 ]
文章主題 : 

抱歉,上面發帖人是我,第一次發帖忘了登入

發表人:  chilly [ 2006-11-08, 16:24 ]
文章主題 : 

看"alt="xxx"改成"title="xxx"有沒有用

發表人:  風痕影 [ 2006-11-12, 15:37 ]
文章主題 : 

程式中直接寫出 popLayer 來控制這個 ID 只適用於 IE
標準的寫法應該是 document.getElementById("popLayer")
至於 event.srcElement 可以參考 這個範例 的原始碼
此外,filter 是 IE 的擴充,所以漸漸浮現的效果將無法在 Firefox 中出現

PS. revealtrans 沒有取代的方法,而 alpha 則可以用 opacity 取代
不過要取代的話還需要使用 setTimeout 來跑,挺麻煩的...

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/