tôi cũng đã phát hiện ra rằng jCarousel trả .first không sử dụng được,. các thuộc tính last, .prevFirst và .prevLast tại thời điểm bạn cần chúng.
Do đó, tôi phải thực hiện theo cách bẩn và quyết định viết một hàm trả về ID của bất kỳ thẻ li nào hiện là người đầu tiên trong vùng chứa, bằng cách đọc có hay không. Nếu vậy, và đó là cái đầu tiên có vị trí bên trái trên không, đó là trang trình bày hiện tại của tôi.
Đoạn mã sau giả định rằng bạn đã đặt id = "listitem-N" trong thẻ danh sách trong vòng lặp foreach() của bạn, trong đó N là lần lặp hiện tại.
var currSlide = 0;
function getCurrentCarouselItem(){
$("ul#use-cases li.use-case").each(function(){
var leftPos = $(this).offset().left;
if(leftPos >= 0){
var id = $(this).attr('id').split("-");
currSlide = id[1];
return false;
}
});
return currSlide;
}
Lý do tôi không trả lại id trong mỗi() là vì mỗi() là hàm và trả về sẽ chỉ trả về hàm đó, chứ không phải getCurrentCarouselItem().
Tôi nghĩ rằng lúc đầu, nhưng trước tiên và cuối cùng không hoạt động khi có nhiều hình ảnh hiển thị dưới dạng hình ảnh hiển thị đầu tiên và hình ảnh hiển thị cuối cùng không phải lúc nào cũng là hình ảnh hiện tại ... – Steerpike
Xin lỗi, tôi không hoàn toàn hiểu những gì bạn đang nói? Sử dụng ví dụ đơn giản của jcarousel, sử dụng ba hình ảnh và cuộn theo chiều ngang, carousel.first sẽ trả về phần tử ngoài cùng bên trái và carousel.last sẽ trả về phần tử ngoài cùng bên phải. Trên mỗi lần nhấn mũi tên trái và phải để thực hiện các thao tác tiếp theo và trước đó, sự kiện itemLoadCallback được kích hoạt truyền dữ liệu băng chuyền cho phép bạn kiểm tra các phần tử đầu tiên và cuối cùng. Và bất cứ cái gì bạn cho là hiện tại bạn có thể hiển thị, nếu bạn xem xét giữa là hiện tại thì hãy sử dụng chúng để xác định chỉ số trung bình. – HenryRat
Cảm ơn bạn ... điều này đã giúp ích rất nhiều. –