Mousehandler und dyn. Positionierung von div's im Mozilla
am 07.12.2010 - 22:37 Uhr in
Hallo Drupaler,
folgendes Problem stellt sich mir:
Ich möchte ein 'Rolling Eye' auf einem Theme haben (hier admire_grunge).
Nachdem ich im Core keinen Handler für die MouseMoves gefunden habe, binde ich eine entsprechende js-Datei im template.php ein.
:
....r website to rate this theme and see our Ppremium Themes.
drupal_add_css(path_to_theme() . '/css/eye.css', 'theme', 'all');
drupal_add_js(path_to_theme() . '/js/eye.js', 'theme');
:
if (is_null(theme_get_setting('admire_grunge_feed_url'))) {
global $theme_.....
:
In der eye.css ist deklariert:
#iris
{
position: absolute;
top: 120px;
left: 120px;
z-index: -1;
}
Die eye.js enthält folgenden Code:
//Browser Sniffer
var ns4up = (document.layers) ? 1 : 0;
var ie4up = (document.all) ? 1 : 0;
var mozup = (!document.all && document.getElementById) ? 1 : 0;
var ymouse=0, xmouse=0;
// Capturing MouseMove
function handlerMM(e)
{
xmouse = (ns4up || mozup) ? e.pageX : event.clientX;
ymouse = (ns4up || mozup) ? e.pageY : event.clientY;
moveAt( xmouse, ymouse );
}
if (ns4up)
{
window.captureEvents(Event.MOUSEMOVE);
window.onMouseMove = handlerMM;
}
if (ie4up || mozup)
{
window.document.onmousemove = handlerMM;
}
function moveAt(moveAtX, moveAtY)
{
var element = document.getElementById("iris");
element.style.top = moveAtY;
element.style.left = moveAtX;
element.innerHTML = "<p>" + moveAtX+ "/" + moveAtY+ "</p>";
return true;
}
Im page.tpl.php zwischen dem div 'preload' und dem div 'top_bar' steht mein 'Ich-wander-herum'-div.
:
<div id="iris"></div>
:
Resultat:
Die Koordinaten werden wunderbar (wenn auch nicht in 100% der Fälle, aber sehr oft!) in das div 'iris' reingeschrieben, bloss das Element selber bewegt sich nicht mit dem Mauszeiger! Nur wenn man an den oberen bzw. linken Rand kommt, springt das Element an die 0 Position der jeweiligen Achse, bis es schliesslich gaaaaaaanz oben links landet!
Gibt es andere Möglichkeiten Elemente zu bewegen? Was blockt das verschieben? Geht das überhaupt unter Drupal?
Wäre schön, wenn jemand eine Idee hat.
Banzai
PS: Habe gerade festgestellt, dass der Effekt nur im Mozilla 3.6.x auftritt. Im IE 8 funktioniert es!
PSS: Hat sich erledigt und interessiert hat es anscheinend auch niemanden
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 5 Stunden 26 Minuten
vor 6 Stunden 23 Minuten
vor 8 Stunden 6 Minuten
vor 21 Stunden 54 Minuten
vor 1 Tag 1 Stunde
vor 1 Tag 1 Stunde
vor 1 Tag 2 Stunden
vor 1 Tag 3 Stunden
vor 1 Tag 3 Stunden
vor 1 Tag 4 Stunden