ďťż

[JavaScript] Dymek niewidoczny w Operze

       

Podstrony


telcocafe

Witam wszystkich. Chciałem wykorzystać skrypt, który po najechaniu kursorem na odnośnik wyświetla dymek, w którym mogę napisać co chcę. Problem w tym, że nie działa on w Operze. W Firefoxie wszystko jest dobrze, a w IE gdy najadę na taki odnośnik dymek się pokazuje, ale przy okazji strona jest przesuwana trochę do góry (bo ma w stylu margin: 10px, ale to nie problem, mogę margin zmienić na 0). Poniżej macie skrypt (sory, że taki długi). Jeśli możecie to powiedzcie mi co trzeba zmienić, aby Opera też wyświetlała dymek. A jeśli nie wiecie co zrobić to podajcie mi funkcje w jakich różne przeglądarki pobierają współrzędna kusora. Z góry dzięki.

/* Graculini's Popup Engine - GPE v1.0 Copyright© Gracjan Lech 2003. Contact me: gracjan.lech@poczta.fm This notice must remain untouched at all times. */ function displayConfig() { //KONFIGURACJA START <nie wkleiłem tej części, bo w niej nic z przeglądarkami nie ma> //KONFIGURACJA KONIEC } document.write("<div id=\"popupDiv\" style=\"position: absolute; display: none; z-index: 1000; filter: alpha(opacity=100); -moz-opacity: 1;\">GPE v1.1 - popup engine</div>") popup=document.getElementById("popupDiv") OP=NS=IE=false if (navigator.userAgent.indexOf("Opera")!=-1) OP=true else if (navigator.appName=="Netscape") NS=true else if (navigator.appName=="Microsoft Internet Explorer") IE=true function gpe(arguments) { fadingIn=false fadeOut=false params=arguments layout=new Array() captionClass=getValue("captionClass") caption=getValue("caption") textClass=getValue("textClass") text=getValue("text") popupLayout=getValue("popupLayout") if (popupLayout!=null) params+=grabLay() NA=null displayConfig() if (popupBorderColor==NA && captionBackgroundColor!=NA) popupBorderColor=captionBackgroundColor po=eval(popupOpacity) if (NS) NSpo=(po/100) if (textBackgroundImage!=null) textBackgroundImage="url('"+textBackgroundImage+"') "+textBackgroundImageProperties+"" if (captionBackgroundImage!=null) captionBackgroundImage="url('"+captionBackgroundImage+"') "+captionBackgroundImageProperties+"" popupContent="<table cellpadding=0 cellspacing=0 style=\"width: "+popupWidth+"; border: "+popupBorderWidth+" "+popupBorderStyle+" "+popupBorderColor+";\">" if (caption!=NA) { popupContent+="<tr><td " if (captionClass==null) popupContent+="style=\"color: "+captionColor+"; font: "+captionFontStyle+" "+captionFontWeight+" "+captionFontSize+" "+captionFontFamily+"; padding: "+captionPadding+"; background: "+captionBackgroundColor+" "+captionBackgroundImage+";\"" else popupContent+="class=\""+captionClass+"\"" popupContent+=">"+caption+"</td></tr>" } popupContent+="<tr><td " if (textClass==null) popupContent+="style=\"color: "+textColor+"; font: "+textFontStyle+" "+textFontWeight+" "+textFontSize+" "+textFontFamily+"; padding: "+textPadding+"; background: "+textBackgroundColor+" "+textBackgroundImage+";\"" else popupContent+="class=\""+textClass+"\"" popupContent+=">"+text+"</td></tr></table>" if (NS) { content=document.createRange(); content.setStartBefore(popup); content=content.createContextualFragment(popupContent); with (popup) { if (hasChildNodes()) removeChild(lastChild) appendChild(content) } } else popup.innerHTML=popupContent pO(po) if (IE) gpePos() document.onmousemove=function gpePos(evt) { if (NS) { coordX=evt.pageX coordY=evt.pageY winWidth=innerWidth } else { coordX=event.clientX+document.body.scrollLeft coordY=event.clientY+document.body.scrollTop winWidth=document.body.clientWidth } switch (popupAlign) { case "left" : if (coordX-popupWidth-popupOffsetX<0) coordX=popupWidth+popupOffsetX coordX-=popupWidth+(popupOffsetX*2) break case "center" : if (coordX+popupWidth/2>winWidth) {coordX=winWidth-popupWidth/2; popupOffsetX=0} if (coordX-popupWidth/2<0) {coordX=popupWidth/2; popupOffsetX=0} coordX-=popupWidth/2+popupOffsetX break case "right" : if (coordX+popupWidth+popupOffsetX>winWidth) coordX=winWidth-popupWidth-popupOffsetX } popup.style.left=coordX+popupOffsetX popup.style.top=coordY+popupOffsetY } popup.style.display="block" if (fadeIn==true) { pO(0) fade(1) } popup.style.display="block" document.onmouseout=function() { if (fadeOut==true) { if (fadeIn) fadeIn=false else pO(po) fade(2) } else popup.style.display="none" } } function getValue(keyWord) { with (params) { if (indexOf(keyWord+":")==-1) return keyInd=lastIndexOf(keyWord+":") value=substring(keyInd+(keyWord.length+1),indexOf(";",keyInd)) } while (value.indexOf("|:|")!=-1) { with (value) { value=substring(0,indexOf("|:|"))+";"+substring(indexOf("|:|")+3) } } while (value.indexOf(" ")!=-1 && keyWord!="text" && keyWord!="caption") { with (value) { value=substring(0,indexOf(" "))+substring(indexOf(" ")+1) } } if (keyWord=="popupOffsetX" || keyWord=="popupOffsetY" || keyWord=="popupWidth") { value=eval(value) } return value } function grabLay() { layParam=displayConfig+"" with (layParam) { layParam=substring(indexOf("layout["+popupLayout+"]"),indexOf(";\ "",indexOf("layout["+popupLayout+"]"))+1) } return layParam; } function fade(num) { if (num==1 && fadeIn==true) { if (pO()!=po) { pO(2,"+") fadingIn=setTimeout("fade(1)",fadeInTime) } else fadeIn=false } if (num==2 && fadeOut==true) { if (pO()!=0) { pO(2,"-") fadingOut=setTimeout("fade(2)",fadeOutTime) } else { fadeOut=false if (NS==false && IE==false) popup.style.display="none" } } } function pO(oL,op) { if (IE) { with (popup.filters.alpha) { if (oL==NA) return opacity if (op==NA) opacity=oL if (op=="+") { if (opacity>=po) opacity=po else opacity+=oL } if (op=="-") opacity-=oL } } else if (NS) { with (popup.style) { if (oL==NA) return MozOpacity else oL=(oL/100) if (op==NA) MozOpacity=oL if (op=="+") { if (MozOpacity>=NSpo) MozOpacity=NSpo else MozOpacity=parseFloat(MozOpacity)+oL } if (op=="-") MozOpacity=parseFloat(MozOpacity)-oL } } else return false }
Użytkownik lofix edytował ten post 19 czerwiec 2006, 12:54


hmm weź użyj innego skryptu, np. tego bądź tego.

Dziękuję bardzo. Przynajmniej mam to czego szukałem przez 3 dni.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.