单击“下一个”和“上一个”时,如何从导航菜单中添加和删除类
How do I add and remove classes from the navigation menu when clicking on next and previous?
我试图用Javascript实现一个旋转木马,但导航按钮有问题。当它们各自的图像显示时,我想将一个类添加到这些项目(.cab点导航项目)中。
当我点击导航菜单时,我想好了如何做到这一点,但我在Prev和Next按钮上遇到了问题。
你可以在jsfiddle 上看到完整的代码
这是javascript文件:
$(document).ready(function() {
var carouselItems = [
{ src: "http://placehold.it/600x300/cccccc/000000", title: "Sample 01" },
{ src: "http://placehold.it/600x300/f45a45/000000", title: "Sample 02" },
{ src: "http://placehold.it/600x300/b78d65/000000", title: "Sample 03" },
{ src: "http://placehold.it/600x300/666aa0/000000", title: "Sample 04" },
{ src: "http://placehold.it/600x300/cccddd/000000", title: "Sample 05" }
];
Carousel = function() {
// keep track of the current position
var position = 0;
// build carousel based on items in the carouselItems array
$(carouselItems).each(function(index, value){
var li = $('<li/>');
li.addClass('carousel-item');
li.css('width', 100 / carouselItems.length + '%');
li.appendTo($('#carousel'));
var img = $('<img/>');
img.attr('src', value.src);
img.attr('title', value.title);
img.appendTo(li);
var liDot = $('<li/>');
liDot.data('position', index); // Store the position of the respectives images & dots
liDot.data('title',value.title); //Store the image titles on each dot instance
liDot.addClass('carousel-dots-nav-item').html('o');
liDot.appendTo($('#carousel-dots-nav'));
});
//increase width of the carousel
$('#carousel').css('width', carouselItems.length * 100 + '%');
//add events to dots
for (i = 0; i < $('.carousel-dots-nav-item').length; i++) {
var dot = $('.carousel-dots-nav-item')[i];
// show the title of the image when hovering the associated dot
$(dot).hover(function(e){
//$('#title').text(carouselItems[i].title);
$('#title').text($(this).data('title'));
}, function(e){
$('#title').text('');
});
// move to the appropriate slide when a dot is clicked
$(dot).click(function(e){
//position = i; //i -> $('.carousel-dots-nav-item').length
var position= $(this).data('position'); //Position based on the index
$('.active').removeClass('active'); //Reset classes .active from all dots
$(this).addClass('active'); //Add class .active to clicked dot
$('#carousel').animate({
left: -position * 100 + '%'
}, 500);
});
}
// add click event to next button
$("#next").click(function(e){
e.preventDefault();
if (position == carouselItems.length - 1) return;
$('.active').removeClass('active');
position++;
//$('.carousel-dots-nav-item').data('position');
$('#carousel').animate({
left: -position * 100 + '%'
}, 500);
});
// add click event to previous button
$("#previous").click(function(e){
e.preventDefault();
if (position == 0) return;
$('.active').removeClass('active');
position--;
$('#carousel').animate({
left: -position * 100 + '%'
}, 500);
});
};
var carousel = new Carousel();
});
嗨,请检查jsfiddle 上的更新代码
$('#carousel-dots-nav li').eq(position).addClass('active');
相关文章:
- 如何在猫头鹰旋转木马中滑动所有可见项目,而不是使用上一个/下一个按钮
- JQuery,引导导航 - 如何添加上一个/下一个按钮
- 如何在cycle2.js中悬停img时同时显示上一个/下一个按钮
- 如何移动到数组的上一个/下一个索引键
- iOS中的上一个/下一个按钮对于通过JavaScript隐藏/显示的输入被禁用
- 如何使用上一个/下一个功能循环数组中的图像
- jQuery 循环 如果只有一张幻灯片,则隐藏上一个/下一个导航
- 单击上一个/下一个按钮时,我想突出显示下一个或上一个图像
- 带有上一个/下一个的jquery自动滑块
- HTML5视频上一个 - 下一个和自动播放
- 如何在同一页面上使用下一个和上一个按钮更改内容
- 如何使用上一个/下一个按钮循环浏览图像
- 如何获取上一个/下一个非禁用选项的索引(相对于所选选项)
- JQuery:日期选择器:只有最后一个字段具有上一个/下一个按钮
- jQuery - 在滑块中显示/隐藏上一个/下一个按钮
- 具有上一个/下一个按钮的固定宽度和高度的文本容器
- 如何使用vanilla Javascript识别无序和/或嵌套列表序列中的上一个/下一个链接
- 如何使用angularjs或javascript添加上一个/下一个选项
- 数组中的上一个/下一个项目
- Javascript-幻灯片上的下一个/上一个按钮-新孩子需要帮助