Tôi đang cố gắng tạo một thanh trượt/slideshow hình ảnh rất đơn giản mà không cần tự động phát. Tôi chỉ muốn chuyển đến hình ảnh tiếp theo hoặc trước khi nhấp chuột. Có một số vấn đề bạn có thể đọc bên dưới.Rất đơn giản hình ảnh trượt/Slideshow với nút trái và phải. Không tự động phát
Đây là jsFiddlehttp://jsfiddle.net/HsEne/12/ (tôi chỉ sử dụng màu nền thay vì hình ảnh trong fiddle cũng như chuyển img để divs nhưng đó là cùng một vấn đề chính xác tất nhiên)
HTML:
<div id="slider-wrapper">
<div id="slider">
<img class="sp" src="/img1.jpg">
<img class="sp" src="/img2.jpg">
<img class="sp" src="/img3.jpg">
<img class="sp" src="/img4.jpg">
<img class="sp" src="/img5.jpg">
<img class="sp" src="/img6.jpg">
</div>
<img id="button-previous" src="/button-arrow-left.jpg">
<img id="button-next" src="/button-arrow-right.jpg">
</div>
CSS:
#slider-wrapper {
display: block;
max-width: 790px;
margin: 5% auto;
max-height: 500px;
height: 100%; }
#slider {
display: block;
position: relative;
z-index: 99999;
max-width: 710px;
width: 100%;
margin: 0 auto; }
#button-previous {
position: relative;
left: 0;
margin-top: 40%;
width: 40px;
height: 60px; }
#button-next {
position: relative;
margin-top: 40%;
float: right; }
.sp {
position: absolute; }
#slider .sp {
max-width: 710px;
width: 100%;
max-height: 500px; }
jQuery cho nút tiếp theo:
jQuery("document").ready(function(){
jQuery("#slider > img:gt(0)").hide();
jQuery("#button-next").click(function() {
jQuery("#slider > img:first")
.fadeOut(1000)
.next()
.fadeIn(1000)
.appendTo("#slider");
});
});
Trên đây jQuery hoạt động tốt, ngoại trừ nó bỏ qua hình ảnh đầu tiên nếu người dùng nhấp vào nút bên cạnh trên slide cuối cùng. Nó chỉ hiển thị hình ảnh đầu tiên một lần, tất cả các hình ảnh khác sẽ tiếp tục trượt mỗi lần nhấp tiếp theo. Đối với một số lý do hiển thị: không ai được thêm vào hình ảnh đầu tiên nhưng tôi không biết mã đó đến từ đâu.
jQuery cho nút trước:
jQuery("document").ready(function(){
jQuery("#slider > img:gt(0)").hide();
jQuery("#button-previous").click(function() {
jQuery("#slider > img:last")
.fadeOut(1000)
.next()
.fadeIn(1000)
.appendTo("#slider");
});
});
mã jquery này trên sẽ trả lại hình ảnh chỉ xem trước như nó nên. Nhưng khi được nhấp một lần nữa nó không làm gì cả.
Tôi cũng đã thử .prev() thay thế .next(). Nó hoạt động tốt lần đầu tiên bạn bấm vào nút trước đó. Giả sử chúng ta đang xem Hình ảnh số 4. Khi tôi nhấp vào nút trước đó, nó sẽ chuyển đến Hình ảnh số 3, giống như nó. Nhưng khi nhấp vào nó một lần nữa nó không đi đến hình ảnh # 2, nó quay trở lại hình ảnh # 4, và sau đó # 3 và sau đó # 4, lặp lại chính nó.
Cảm ơn bạn đã trả lời chi tiết. Làm việc hoàn hảo và tôi đã thêm một số hiệu ứng động! – bob
tính năng này không hoạt động tốt. Một số hình ảnh không hiển thị. –