我試圖獲得帶有實際上一個/下一個幻燈片觸發的上一個/下一個動作的傳送帶。沒有按鈕的滑塊 - 上/下一個li觸發滑塊
我可以讓它工作,但我希望幻燈片可以隨動畫過渡。我所能想到的只有淡入/淡出效果,並不能完全消除它。
有沒有什麼建議你可以建議我順利地移動.prev/.next> .main後點擊.prev/.next?
HTML:
<div class="view">
<ul>
<li class="prev" data-id="1">first
</li><!--
--><li class="main" data-id="2">second
</li><!--
--><li class="next" data-id="3">third
</li><!--
--><li data-id="4">fourth
</li><!--
--><li data-id="5">fifth
</li>
</ul>
</div>
CSS:
.view {
width: 100%;
height: 100%;
margin: 0;
overflow: hidden;
}
.view ul {
list-style-type: none;
display: block;
height: 100%;
width: auto;
margin: 0;
padding: 0;
white-space: nowrap;
}
.view ul li {
display: inline-block;
width: 80%;
height: 80%;
margin: 5% 10%;
padding: 0;
background: white;
border: 2px solid #ccc;
}
.view ul li:hover {
border-color: #75B5FF;
}
.view ul li.main {
top: -5%;
}
.view ul li.prev {
height: 75%;
margin-right: -5%;
margin-left: -75%;
top: 5%;
}
.view ul li.next {
height: 75%;
margin-left: -5%;
}
的jQuery:
$('body').on('click', 'li.prev', function() {
$("body").find("li").eq(2).removeClass("next")
$(this).next().removeClass().addClass("next");
$(this).removeClass().addClass("main");
$(this).prev().removeClass().addClass("prev");
var $this = $(this),
callback = function() {
$this.siblings(':last()').insertBefore($this).addClass("prev");
};
$this.fadeIn(100, callback).fadeIn(100);
});
$('body').on('click', 'li.next', function() {
$("body").find("li").eq(1).removeClass("prev")
$(this).prev().removeClass().addClass("prev");
$(this).removeClass().addClass("main");
$(this).next().removeClass().addClass("next");
var $this = $(this),
callback = function() {
$this.siblings(':first()').insertAfter($this.siblings(':last()'));
};
$this.fadeOut(100, callback).fadeIn(100);
});
這是extenso:
https://jsfiddle.net/mptjsybq/
-
此外,有沒有辦法給更多的邊距到.prev /李。接下來的?我正在嘗試,但它必須是某種對齊方式,才能將所有的內容命令到最高的內容。我希望.main li的位置高於.prev/.next。
謝謝@Richtik,作品像一個魅力。但是,當我刪除faceIn和fadeOut效果時,它有點突破,但我對效果很好/不知道爲什麼它會中斷。 反正,謝謝! :) –