Ich möchte eine Diashow machen, die Bilder mit Überblendungen anzeigen und gleichzeitig Radioknöpfe darunter überprüfen und Diashow anhalten, wenn Maus auf Bild ist. Alles was ich getan habe, aber Hintergrund ist für kleine Zeit sichtbar, die ich nicht will und Größe des Bildes erhöht, während die Fadeout-Klasse angehängt ist.Wie überblendet man Bilder in einer Diashow?
HTML:
<div id="s2">
<img src="F:\destp\Matchball\slideshow-master\slideshow-master\img\forest.jpg" alt="slide" id="slide">
<div id="rbtns">
<input type="radio" name="im" id="b1" onclick=changeImage("F:\\destp\\Matchball\\slideshow-master\\slideshow-master\\img\\forest.jpg",this); />
<input type="radio" name="im" id="b2" onclick=changeImage("F:\\destp\\Matchball\\slideshow-master\\slideshow-master\\img\\desert.jpg",this); />
<input type="radio" name="im" id="b3" onclick=changeImage("F:\\destp\\Matchball\\slideshow-master\\slideshow-master\\img\\red-velvet-cup.jpg",this); />
<input type="radio" name="im" id="b4" onclick=changeImage("F:\\destp\\Matchball\\slideshow-master\\slideshow-master\\img\\sea.jpg",this); />
</div>
<div id="vwl">
<a href="#">
VIEW ALL ARTICLES >
</a>
</div>
</div>
CSS:
#slide{
height:100%;
width:auto;
padding-top: 1%;
margin-left: 21%;
opacity: 1;
transition: opacity 1s ease-in-out ;
}
#slide.fadeOut{
opacity:0;
}
JS:
$(document).ready(function(){
$("#slide").mouseenter(function(){
clearInterval(setI);
});
$("#slide").mouseleave(function(){
setI=setInterval(slideImage,3000);
});
});
images=["F:\\destp\\Matchball\\slideshow-master\\slideshow-
master\\img\\forest.jpg","F:\\destp\\Matchball\\slideshow-
master\\slideshow-master\\img\\desert.jpg",
"F:\\destp\\Matchball\\slideshow-master\\slideshow-master\\img\\red-
velvet-cup.jpg","F:\\destp\\Matchball\\slideshow-master\\slideshow-
master\\img\\sea.jpg"];
function changeImage(imgName,obj){
currentImage=document.getElementById("slide");
currentImage.className+="fadeOut";
setTimeout(function(){
currentImage.src=imgName;
currentImage.className="";
$(obj).prop("checked",true);
},1000);
}
i=0;
function slideImage(){
if(i>images.length-1){
i=0;
}
radioButtons=document.getElementsByName("im");
changeImage(images[i],radioButtons[i]);
i++;
}
setI=setInterval(slideImage,3000);
Um die 'onclick' Funktionen arbeiten, machen Sie ihnen die Semikolons in Anführungszeichen und lassen sich bringen sollte. Ich bevorzuge jedoch die Methode JQuery '$(). On()', weil ich oft Schwierigkeiten habe, 'onclick' zu arbeiten. –