Autor Zpráva
weroro
Profil
Zdravím,
Snažím sa vyrobiť si vlastnú bublinku (popis), ktorá bude behať za kurzorom myši. Funguje mi to vo všetkom okrem IE7 (teda možno IE celkovo ale ja mám iba verziu 7).

Mohol by som niekoho poprosiť aby sa mi na to pozrel? Moje JS znalosti mi nedovoľujú vyriešiť to. Pomocou googlu som našiel aspoň to ako zachytiť v IE event, tak tam som pridal window.event (pretože mi tam vždy zastavilo funkciu, keď som tam to window nemal) a teraz mi to aj ten DIV (asi) vytvorí lebo keď si to alertnem na konci a dám si vypísať innerHTML toho DIVu, tak je tam ten text, čo do neho vkladám ale proste nikde ten DIV nevidím.

        var bubbleStyle = "width: 160px;" +
                          "height: 100px;" +
                          "color: #FFFFFF;" + 
                          "background-color: #000000;" + 
                          "position: absolute;" + 
                          "z-index: 15;";
        var isIE = document.all ? true : false;
        function setBubble(elem)
        {
            function clearBubble()
            {
                var bubble_tmp = document.getElementById("title_bubble");
                if (bubble_tmp != null)
                {
                    document.body.removeChild(bubble_tmp);
                }
            }
            function getMousePOS(event)
            {
                var _x;
                var _y;
                if (!isIE)
                { 
                    _x = event.pageX;
                    _y = event.pageY;
                }
                else
                {
                    _x = window.event.clientX - document.body.scrollLeft;
                    _y = window.event.clientY - document.body.scrollTop;
                }
                getBubblePosition(_x, _y, elem);
                return true;
            }
            elem.onmousemove = getMousePOS;
            elem.onmouseout = clearBubble;
        }
        function getBubblePosition(x, y, element)
        {
            if (document.getElementById("title_bubble") == null)
            {
                var bubbleElement = document.createElement("div");
                bubbleElement.setAttribute("id", "title_bubble");
                bubbleElement.setAttribute("style", bubbleStyle);
                document.body.appendChild(bubbleElement);
            }
            else
            {
                bubbleElement = document.getElementById("title_bubble");
            }
            bubbleElement.style.top = (y + 20) + "px";
            bubbleElement.style.left = (x + 20) + "px";
            bubbleElement.innerHTML = "Nejaký text v bubline";
        }

Ďakujem za odpovede.
weroro
Profil
Mám taký nechutný pocit, že problém bude tu: bubbleElement.setAttribute("style", bubbleStyle); Keď som toto zakomentoval a štýl som nadefinoval pomocou CSS, tak mi to zobrazilo normálne. Máte niekto prosím funkčné riešenie pre IE, ktorým sa dá priradiť hromadný style nejakému elementu? Lebo vypisovať to pomocou HTML DOMu je trochu odrádzajúce.

Ďakujem
Chamurappi
Profil
Reaguji na werora:
Proč vlastně chceš používat setAttribute? Kuk.

funkčné riešenie pre IE, ktorým sa dá priradiť hromadný style nejakému elementu
Ve všech nyní užívaných prohlížečích funguje element.style.cssText.

Ta tvá podmínka s isIE je ošklivá.
weroro
Profil
Chamurappi:
Ve všech nyní užívaných prohlížečích funguje element.style.cssText.
Ďakujem, toto som nepoznal, vyskúšam.

Ta tvá podmínka s isIE je ošklivá.
To mi je jasné. Ono by sa dalo povedať, že celé je to škaredé ale svoju funkcionalitu to spĺňa. Do JS nevŕtam často, to nechávam radšej na kompetentných a to málo čo viem mi na bežné veci stačí. Bohužiaľ som z tých, ktorí nemajú až takú chuť učiť sa nové jazyky a vstrebávam to všetko za behu. Ešte som sa stále nedokopal ani k tomu pozrieť sa hlbšie na ActionScript 3.0, ale to asi preto lebo všetko čo potrebujem viem urobiť aj v AS2 (okrem 3D).

Ešte raz veľmi pekne ďakujem.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0