Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
jo, stimmt.unnötiges Speichern in Variablen - $("#bereich"+i)
Aber mit Klassen ist es schöner.
$('#area1').click(function() {
$('#area1').animate({
width: ['toggle', 'swing'],
height: ['toggle', 'swing'],
}, 2000, 'linear');
});
$(document).ready(function(){
$('#area1').mouseover(function() {
$('#area2').animate({
width: ['toggle', 'swing'],
height: ['toggle', 'swing'],
}, 250, 'linear');
});
$('#area1').mouseout(function() {
$('#area2').animate({
width: ['toggle', 'swing'],
height: ['toggle', 'swing'],
}, 30, 'linear');
});
})
var http = null;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
window.onload = function() {
if (http != null) {
http.open("GET", "xml/area.xml", true);
http.onreadystatechange = ausgeben;
http.send(null);
}
}
function ausgeben() {
if (http.readyState == 4) {
var selectionbox = document.getElementById("selectionbox");
var daten = http.responseXML;
var ergebnisse = daten.getElementsByTagName("area");
for (var i = 0; i < ergebnisse.length; i++) {
var kurzbezeichnung,xworldmap,xworldmap,detailansicht;
var irgendwas = ergebnisse;
for (var j = 0; j < irgendwas.childNodes.length; j++) {
with (irgendwas.childNodes[j]) {
if (nodeName == "kurzbezeichnung") {
name = firstChild.nodeValue;
}
}
}
var div = document.createElement("div");
div.id="area"+i;
div.className="areas";
div.index=i;
/* div.onclick = alert(this.index); */
selectionbox.appendChild(div);
}
}
}
for (var i = 0; i < ergebnisse.length; i++) {
var kurzbezeichnung,xworldmap,xworldmap,detailansicht;
var irgendwas = ergebnisse[i];
for (var j = 0; j < irgendwas.childNodes.length; j++) {
with (irgendwas.childNodes[j]) {
if (nodeName == "kurzbezeichnung") {
name = firstChild.nodeValue;
}
}
}
var div = document.createElement("div");
div.id="area"+i;
div.className="areas";
div.index=i;
div.style.marginLeft="400px";
/* div.onclick = alert(this.index); */
selectionbox.appendChild(div);
$('#area'+i).mouseover(function() {
alert(this.id);
$('#area'+i).animate({
width: "-=38px",
height: "-=46px",
opacity: 1,
marginTop: "+=23",
marginLeft: "+=15px",
borderWidth: "4px"
}, 200 );
});
}
Beispielsweise die folgende Zeile ist ein closure:Ich werd mich jetzt mal mit den "Closures" befassen (was auch immer das ist)...hoffentlich komm ich drauf
![]()
for (var j = 0; j < irgendwas.childNodes.length; j++) {
with (irgendwas.childNodes[j]) {
if (nodeName == "xworldmap") {
xworldmap = firstChild.nodeValue;
alert(xworldmap);
}
}
}
???OK - ich hab' das Problem nach langem suchen gefunden: wenn du einem Element im IE eine Transparenz verpasst reagiert es nur noch bei den sichtbaren Teilen (bei dir also der Rand) auf irgendwelche Mausaktionen
ne, du sorgst dafür, das das element, welches die events hat sich nicht verkleinert und dadurch sofort mouseout auslöst.Lösung: dem Hauptelement keine Opacity verpassen, sondern ein Kindelement erzeugen, das den Rand und den Text darstellt, und nur diesem die Opacity geben (Bsp: http://kkjs.kkapsner.de/tests/mouseenter+opacity_test.html)
Bei dir reagiert das "verdeckte" Element (test) auf mouseenter/mouseleave würde ich sagen - ohne das jetzt getestet zu haben - obwohl es auch nichts sichtbares enthällt, weil das ganze ja ein "feature" sein soll und wohl nur einstufig gelöst wurde - reine vermutung.@hesst: hm... stimmt auch irgendwie - nur ohne opacity reagiert das Element trotzdem auf mouseenter/mouseleave... sonst würde mein Beispiel ja nicht funktionieren.