Jquery Anything Slider导航栏回调
Jquery Anything Slider Nav Bar Callback
我为Anything Slider创建了一个自定义导航栏函数,该函数将根据单击的"按钮"切换幻灯片。我还需要写一些东西,当按下其中一个滑块箭头时,切换"当前"类,但我找不到要查找的事件名称或插入回调函数的位置。
如有任何帮助,我们将不胜感激。如果有帮助的话,我已经包含了导航栏功能。
$('nav ul li').click(function(){
$('nav ul li').removeClass('current'); // reset current menu button
var slideName = $(this).attr('class'); // get class name
$(this).toggleClass('current'); // make button current
$('section.about_us').fadeOut('slow');
$('#about_us_container').fadeOut('slow', function(){ // hide about us page
switch (slideName){ //change slide
case 'navItem1':
$('#slider').anythingSlider(1);
break;
case 'navItem2':
$('#slider').anythingSlider(2);
break;
case 'navItem3':
$('#slider').anythingSlider(3);
break;
case 'navItem4':
$('#slider').anythingSlider(4);
break;
case 'navItem5':
$('#slider').anythingSlider(5);
default:
//do nothing
}
});
});
您可以使用appendControlsTo
选项,让插件完成所有工作(演示)。
在AnythingSlider的最新版本(1.7+版)中,您可以将箭头(单独)、控制面板(导航+播放按钮)、导航或仅播放按钮附加到页面上的任何元素。
或者,如果你需要保持菜单完整,可以试试这个(演示):
$('#slider').anythingSlider({
// If true, builds a list of anchor links to link to each panel
buildNavigation: false,
onSlideComplete: function(slider){
$('nav ul li').eq(slider.currentPage-1).trigger('click');
}
});
$('nav ul li').click(function() {
// prevent infinite loop
if ($(this).is('.current')) { return; }
$('nav ul li').removeClass('current'); // reset current menu button
var slideName = $(this).attr('class'); // get class name
$(this).toggleClass('current'); // make button current
$('#slider').anythingSlider(slideName.slice(-1));
});
查看了插件源代码后,我认为它不会在单击箭头时广播事件。这将非常容易添加,但如果你不想修改插件,在插件代码运行后,你可以将自己的点击处理程序绑定到箭头,然后在这些处理程序中,通过AnythingSlider的外部API获取当前页面和页数:
var current = $('#slider').data('AnythingSlider').currentPage
var pages = $('#slider').data('AnythingSlider').pages
请注意,var current
将在点击之前提供页码,因此您需要加一或减一,并确保正确处理范围的末尾。然后,在确定了实际的当前页面后,您应该能够将current
类应用于所需的LI
。
顺便说一句:由于您将向这些LI添加一个当前类,我认为当$(this).attr('class')
返回'navItem2 current'
而不仅仅是'navItem2'
时,您的switch
语句会出现问题。对其进行一些重构可能会在以后为您省去痛苦。
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- 如何使用jqueryAJAX从页面中回调多个变量
- jquery Onclick函数带有导致双击的回调排序函数
- Javascript点击事件回调不起作用
- 一旦加载并渲染了角度引导typeahead,就使用回调
- 成功回调永远不会被JSONP请求调用
- js:如何导航到新的url并在加载页面时获得回调
- Jquery Anything Slider导航栏回调