मैंने एक सरणी के साथ चित्र दिखाने की कोशिश की ताकि मैं इसे प्रति विलंब बदल सकूं, एक स्लाइड शो की तरह। समस्या यह है कि केवल पहली तस्वीर ही लोड होगी। जब सरणी का काउंटर बदलता है, तो चित्र लोड नहीं होगा।
छवियों के पथ सभी सही हैं
<!DOCTYPE html>`enter code here`
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test2</title>
<script>
var bilder = [];
var zeit = 3000;
var p = 0;
bilder[0] = "../Bilder/Bild1.jpg";
bilder[1] = "../Bilder/Bild2.jpg";
bilder[2] = "../Bilder/Bild3.jpg";
bilder[3] = "../Bilder/Bild4.jpg";
function BildAutoWeiter()
{
document.bild.src = bilder[p];
for( var i=0; i<= bilder.length; i++)
{
if(i <= bilder.length)
{
p++;
}
else
{
i = 0;
}
}
setTimeout("BildAutoWeiter()", zeit);
}
</script>
</head>
<body onload="BildAutoWeiter()">
<div>
<img name ="bild" width="100%" height="50%">
</div>
</body>
</html>
1
CoreIce
27 अक्टूबर 2019, 16:37
1 उत्तर
सबसे बढ़िया उत्तर
तत्वों को उनके name=''
द्वारा चुनने के लिए आपको getElementsByName()
का उपयोग करना होगा। यह उन तत्वों की एक सरणी देता है जो उस name
का उपयोग करते हैं, इसलिए किसी विशिष्ट को चुनने के लिए, 0 से शुरू होने वाले सूचकांक [index]
का उपयोग करें। इसके बजाय ऐसा करें:
document.getElementsByName('bild')[0].src = bilder[p];
वह पहले तत्व का चयन करता है जो name='bild'
का उपयोग करता है
साथ ही, for
कथन थोड़ा बेकार है। आप इसके बजाय कर सकते हैं:
function BildAutoWeiter()
{
document.bild.src = bilder[p];
p++;
setTimeout(BildAutoWeiter, zeit);
}
आपको फ़ंक्शन नाम को उद्धरणों में रखने की आवश्यकता नहीं है और setTimeout
में फ़ंक्शन को कॉल करते समय आपके पास कोष्ठक नहीं हो सकते हैं।
-1
Rojo
27 अक्टूबर 2019, 13:57