0
私は、W3Schoolsのチュートリアルに従って、簡単なJavaScriptスライドショーを作成しようとしています。スライドクラスにアニメーションを追加するにはどうすればいいですか?アイデアは次の/前のボタンを押して、2つのスライドのクロスフェード、または最良の場合のシナリオはそれに応じて左右に移動します。このJavaScriptスライドショーにトランジション/アニメーションを追加しますか?
var slideIndex = 1;
showDivs(slideIndex);
function plusDivs(n) {
showDivs(slideIndex += n);
}
function showDivs(n) {
var i;
var x = document.getElementsByClassName("slide");
if (n > x.length) {
slideIndex = 1
}
if (n < 1) {
slideIndex = x.length
};
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
x[slideIndex - 1].style.display = "block";
}
#sl1 {
background-color: #F00;
}
#sl2 {
background-color: #0F0;
}
.slide {
width: 600px;
height: 200px;
}
#next{
background-color: #000;
color: #FFF;
width: 65px;
height: 20px;
position: absolute;
top: 50%;
right: 0;
}
#prev {
background-color: #000;
color: #FFF;
width: 75px;
height: 20px;
position: absolute;
top: 50%;
left: 0;
}
<div id="prev" onclick="plusDivs(-1);fade();">Previous</div>
<div id="next" onclick="plusDivs(+1)">Next</div>
<div class="slide" id="sl1"></div>
<div class="slide" id="sl2"></div>
'display' CSSプロパティは、その上にトランジションを持っ属性ではありません..あなたは隠すために別の方法を見つける必要がある/新示しアイテム。 @Temaniの答えは、 'opacity'を使ってうまく動作します。また、' transform:translateX(X) 'でスライドを動かすこともできます – Arthur