Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery水平滑块循环到第一项_Jquery_Html_Css_Slider_Reverse - Fatal编程技术网

jQuery水平滑块循环到第一项

jQuery水平滑块循环到第一项,jquery,html,css,slider,reverse,Jquery,Html,Css,Slider,Reverse,我正在开发一个jQuery水平滑块,我想知道当我在最后一个项目时,它是否可能,而不是在第一个项目上循环,产生相反的效果? 您知道我应该在jQuery脚本中修改什么吗 看看你可以用你的li物品做同样的事情。嗨,宝兰,我看了这个链接,谢谢。问题是,当它们是最后一项时,也会产生相反的效果。当我在最后一个项目中时,我不希望出现这种相反的效果,我引用的问题就是这样做的。它们在每次单击时修改DOM,而不仅仅是移动可见窗口。如果不修改DOM,您将无法创建“循环”,因为您必须始终向左滚动才能到达第一项。你唯一能

我正在开发一个jQuery水平滑块,我想知道当我在最后一个项目时,它是否可能,而不是在第一个项目上循环,产生相反的效果? 您知道我应该在jQuery脚本中修改什么吗


看看你可以用你的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();
    } );

} );