Hallo kkapsner
Zu Deinem Code von #35, den ich sogar verstehe, bis auf eins:
Warum muss man die Funktion "changeOpacity()" in eine Funktion "init()" packen?
Habe es wie unten versucht, aber funktioniert tatsächlich nicht:
Liegt es vielleicht daran, dass die Funktion mehrfach aufgerufen wird? Beim Funktionsaufruf mit "onclick" werden ja die Parameter an die Funktion übergeben, und die bleiben doch bei den weiteren Aufrufen drin? Die weiteren Aufrufe geschehen ja nicht mehr mit "onclick", aber die übergebenen Parameterwerte werden doch nach dem ersten "Durchlauf" nicht geleert, oder? Kann mir auch sonst keinen Grund für diese "init"-Funktion denken - aber eben, ohne funktioniert's halt leider nicht …
Zu Deinem Code von #35, den ich sogar verstehe, bis auf eins:
Warum muss man die Funktion "changeOpacity()" in eine Funktion "init()" packen?
Habe es wie unten versucht, aber funktioniert tatsächlich nicht:
Code:
<!DOCTYPE html>
<html>
<head>
<title>CSS Transparenz per JavaScript ändern • style.opacity</title>
<meta charset="UTF-8">
<script>
function changeOpacity(element, increment, interval){
var transp = parseFloat(element.style.opacity);
if (isNaN(transp)){
transp = 1;
}
transp += increment;
if (transp >= 0 && transp <= 1){
element.style.opacity = transp;
}
else {
window.clearInterval(call);
}
}
var call = window.setInterval(changeOpacity, interval);
</script>
</head>
<body>
<div id="box" style="background: #000000; color: #ff0000; padding:10px;" onclick="changeOpacity(this, -0.02, 100)">
FadeIn/Out
</div>
</body>
</html>
Liegt es vielleicht daran, dass die Funktion mehrfach aufgerufen wird? Beim Funktionsaufruf mit "onclick" werden ja die Parameter an die Funktion übergeben, und die bleiben doch bei den weiteren Aufrufen drin? Die weiteren Aufrufe geschehen ja nicht mehr mit "onclick", aber die übergebenen Parameterwerte werden doch nach dem ersten "Durchlauf" nicht geleert, oder? Kann mir auch sonst keinen Grund für diese "init"-Funktion denken - aber eben, ohne funktioniert's halt leider nicht …