jQuery水平滑块循环到第一项
我正在开发一个jQuery水平滑块,我想知道当我在最后一个项目时,它是否可能,而不是在第一个项目上循环,产生相反的效果? 您知道我应该在jQuery脚本中修改什么吗jQuery水平滑块循环到第一项,jquery,html,css,slider,reverse,Jquery,Html,Css,Slider,Reverse,我正在开发一个jQuery水平滑块,我想知道当我在最后一个项目时,它是否可能,而不是在第一个项目上循环,产生相反的效果? 您知道我应该在jQuery脚本中修改什么吗 看看你可以用你的li物品做同样的事情。嗨,宝兰,我看了这个链接,谢谢。问题是,当它们是最后一项时,也会产生相反的效果。当我在最后一个项目中时,我不希望出现这种相反的效果,我引用的问题就是这样做的。它们在每次单击时修改DOM,而不仅仅是移动可见窗口。如果不修改DOM,您将无法创建“循环”,因为您必须始终向左滚动才能到达第一项。你唯一能
看看你可以用你的li物品做同样的事情。嗨,宝兰,我看了这个链接,谢谢。问题是,当它们是最后一项时,也会产生相反的效果。当我在最后一个项目中时,我不希望出现这种相反的效果,我引用的问题就是这样做的。它们在每次单击时修改DOM,而不仅仅是移动可见窗口。如果不修改DOM,您将无法创建“循环”,因为您必须始终向左滚动才能到达第一项。你唯一能做到这一点的方法是在每次点击时移动项目,这样你就不用滚动窗口,而是在DOM本身中将东西带入或移出视图。可能是我自己表达得不好,我想你有,以下是我的理解:现在当你点击链接时,它会向左或向右移动到下一个项目。如果您在末尾,您不希望它一直滚动到第一项,而是希望它能够“环绕”到第一项。正当
$(function () {
var
animation = function ( href ) {
var
name = "active",
element = $( "a[href='" + href + "']" );
$( "html, body" ).stop().animate( {
scrollLeft: $( href ).offset().left
}, 1200 );
element.closest( "ul" ).find( "li" ).removeClass( name );
element.parent().addClass( name );
},
menu = $( "#list" );
animation( menu.find( "li" ).eq( 0 ).find( "> a" ).attr( "href" ) );
$( "#cssmenu a" ).bind( "click", function( event ) {
var target = $( this ).attr("href");
animation( target );
event.preventDefault();
} );
$( "#next, #prev" ).click( function ( event ) {
var
positionActiveClass = menu.find( "> li.active" ).index(),
menuLength = menu.find( "> li" ).length - 1,
buttonId = $( this ).attr( "id" );
if ( buttonId === "next" ) {
if ( positionActiveClass === ( menuLength ) ) {
newElementActiveClass = menu.find( "li" ).eq( 0 );
newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );
animation( newPositionActiveClass );
} else {
newElementActiveClass = menu.find( "li" ).eq( positionActiveClass + 1 );
newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );
animation( newPositionActiveClass );
}
} else {
if ( positionActiveClass === 0 ) {
newElementActiveClass = menu.find( "li" ).eq( menuLength );
newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );
animation( newPositionActiveClass );
} else {
newElementActiveClass = menu.find( "li" ).eq( positionActiveClass - 1 );
newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );
animation( newPositionActiveClass );
}
}
event.preventDefault();
} );
} );