为 jQuery 轮播(分页)检测活动 <li>
detect active <li> for jQuery carousel (pagination)
我对 jQuery 轮播脚本的更改/尝试可以在下面找到;然而,令我沮丧的是,活动的 class 没有正确附加,而是总是将第一个 <li>
显示为活动的。我还希望能够 'click' 每个 <li>
代表分页,以便它可以转到该幻灯片。这是一个非常小的 3 图像轮播。请大家来个大饱眼福jFiddle.如果有什么好的建议,请提出来。
jQuery(document).ready(function(){
/**
* Check if first li element is hidden
* then show
*/
if( jQuery('.carouselNav li:first-child').is(':hidden') ) {
// Toggle visibility
jQuery('.carouselNav li:first-child').toggle();
jQuery('.carouselPagination li:first-child').addClass('active');
}
// Interval time
var carouselInterval = 5000;
// Slider
function carouselSlide(){
// Check if last element was reached
if( jQuery('.carouselNav li:visible').next().length == 0 ) {
// Hide last li element
jQuery('.carouselNav li:last-child').slideUp('fast');
// Show the first one
jQuery('.carouselNav li:first-child').slideDown('fast');
jQuery('.carouselPagination li:last-child').removeClass('active');
jQuery('.carouselPagination li:first-child').addClass('active');
} else {
// Rotate elements
jQuery('.carouselNav li:visible').slideUp('fast').next('li:hidden').slideDown('fast');
jQuery('.carouselPagination active').removeClass('active').next('li').addClass('active');
}
}
// Set Interval
var carouselScroll = setInterval(carouselSlide,carouselInterval);
// Pause on hover
jQuery('.carousel').hover(function() {
clearInterval(carouselScroll);
}, function() {
carouselScroll = setInterval(carouselSlide,carouselInterval);
carouselSlide();
});
});
您的代码中的一些小修复:
首先,您要查找 "active" class 的列表项,因此请确保第一个列表项具有 "active" class.
<li class="active">
其次,"jQuery('.carouselPagination active')" 在按 class 名称激活到 select 之前缺少点。
jQuery('.carouselPagination li.active').removeClass('active').next('li').addClass('active');
这是具有修复和点击功能的代码。代码很乱,但它应该能让你知道如何开始。 https://jsfiddle.net/x89wxoqu/
我对 jQuery 轮播脚本的更改/尝试可以在下面找到;然而,令我沮丧的是,活动的 class 没有正确附加,而是总是将第一个 <li>
显示为活动的。我还希望能够 'click' 每个 <li>
代表分页,以便它可以转到该幻灯片。这是一个非常小的 3 图像轮播。请大家来个大饱眼福jFiddle.如果有什么好的建议,请提出来。
jQuery(document).ready(function(){
/**
* Check if first li element is hidden
* then show
*/
if( jQuery('.carouselNav li:first-child').is(':hidden') ) {
// Toggle visibility
jQuery('.carouselNav li:first-child').toggle();
jQuery('.carouselPagination li:first-child').addClass('active');
}
// Interval time
var carouselInterval = 5000;
// Slider
function carouselSlide(){
// Check if last element was reached
if( jQuery('.carouselNav li:visible').next().length == 0 ) {
// Hide last li element
jQuery('.carouselNav li:last-child').slideUp('fast');
// Show the first one
jQuery('.carouselNav li:first-child').slideDown('fast');
jQuery('.carouselPagination li:last-child').removeClass('active');
jQuery('.carouselPagination li:first-child').addClass('active');
} else {
// Rotate elements
jQuery('.carouselNav li:visible').slideUp('fast').next('li:hidden').slideDown('fast');
jQuery('.carouselPagination active').removeClass('active').next('li').addClass('active');
}
}
// Set Interval
var carouselScroll = setInterval(carouselSlide,carouselInterval);
// Pause on hover
jQuery('.carousel').hover(function() {
clearInterval(carouselScroll);
}, function() {
carouselScroll = setInterval(carouselSlide,carouselInterval);
carouselSlide();
});
});
您的代码中的一些小修复:
首先,您要查找 "active" class 的列表项,因此请确保第一个列表项具有 "active" class.
<li class="active">
其次,"jQuery('.carouselPagination active')" 在按 class 名称激活到 select 之前缺少点。
jQuery('.carouselPagination li.active').removeClass('active').next('li').addClass('active');
这是具有修复和点击功能的代码。代码很乱,但它应该能让你知道如何开始。 https://jsfiddle.net/x89wxoqu/