[英]Vanilla Javascript Slider Issue
我正在嘗試創建簡單的普通Javascript滑塊,但遇到了一些問題,希望有人可以幫助我。
html代碼:
<div class="box" id="boxid">
<div class="inside_box" id="inside_box_id">
<ul class="main_ul" id="main_ul_id">
<li class="one" id="oneid"><a href = "#"></a></li>
<li class="one" id="twoid"><a href = "#"></a></li>
<li class="one" id="threeid"><a href = "#"></a></li>
<li class="one" id="fourid"><a href = "#"></a></li>
<li class="one" id="fiveid"><a href = "#"></a></li>
</ul>
</div> <!-- end of inside_box -->
</div><!-- end of box -->
<button id="previd" class="btn">Prev</button>
<button id="nextid" class="btn">Next</button>
CSS代碼:
body {
background:grey;
font-family: sans-serif;
}
.box {
width:800px;
height:300px;
border:1px solid black;
margin: 0 auto;
}
.inside_box {
width:800px;
height:300px;
padding:0px;
margin:0px;
overflow: hidden;
}
.main_ul {
width:4000px;
padding:0px;
margin:0px;
}
.main_ul li {
list-style: none;
float:left;
}
.one {
width:800px;
height:300px;
}
#oneid {background:blue;}
#twoid {background:orange;}
#threeid {background:brown;}
#fourid {background:green;}
#fiveid {background:purple;}
.btn {
padding:10px;
width:100px;
margin-left:50%;
cursor: pointer;
margin-top:10px;
}
JS代碼
var prevBtn = document.getElementById("previd");
var nextBtn = document.getElementById("nextid");
nextBtn.addEventListener("click", function(){
var slideLeft = document.getElementById("main_ul_id");
slideLeft.style.marginLeft = "-800px";
}, false);
目前,當我單擊“下一步”按鈕時,它將帶我到第二張幻燈片,但是當我再次單擊它時,它什么也沒做。 每次單擊時如何將其單擊以向左空白800px方向移動?
謝謝。
您需要獲取當前值並-800px
減去-800px
。
第一次單擊“下一步”按鈕時,它將把margin-left
設置為-800px
然后您會看到結果。 但對於下一次按下,它將再次將margin-left
設置為-800px
。
如下所示:
nextBtn.addEventListener("click", function() {
var slideLeft = document.getElementById("main_ul_id");
var style = slideLeft.style;
var totalImages = 5;
var margin = 800;
style.marginLeft = (parseInt(style.marginLeft || "0") - margin)%(totalImages*margin) + "px";
}, false);
用(totalImages*margin)
取余數將在最后一張幻燈片上擊中下一張后帶來第一張幻燈片。 不是最佳邏輯,而只是給您一個想法。
這是工作中的JSFiddle: https ://jsfiddle.net/dsa3du93/7/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.