繁体   English   中英

使用 JQuery/CSS 在页面上滑动 Div

[英]Slide Div Across Page using JQuery/CSS

我使用了以下代码,每次单击 div 时,它都会设置动画并在页面上移动,从而在它之后移动下一个。

http://jsfiddle.net/jtbowden/ykbgT/2/

但是,我正在尝试使其每 3 秒自动滚动一次而无需单击。 我已经尝试使用计时器对 javascript 进行以下调整,但它似乎只是突然出现并且无法正确滚动:

<script>

    $('.box').click(function () {

        $(this).animate({
            left: '-50%'
        }, 500, function () {
            $(this).css('left', '150%');
            $(this).appendTo('#container');
        });

        $(this).next().animate({
            left: '50%'
        }, 500);
    });

    $(document).ready(function ()
    {

        setInterval(function ()
        {

            $('.box').click();
            console.log("BOX CLICKED.");

        }, 3000);

    });


</script>

有没有人有任何想法?

谢谢

类似于 Zack 的回答(但更简单,恕我直言),我发现以下内容适合您

id = 1

setInterval(function(){
    $('#box' + id).animate({
        left: '-50%'
    }, 500, function() {
        $(this).css('left', '150%');
        $(this).appendTo('#container');
    });

    $('#box' + id).next().animate({
        left: '50%'
    }, 500);

    id = id <= 5 ? id + 1 : 1;
},4000)

通过使用以下调整对其进行排序:

<script>

    ActiveDashboards = {};
    ActiveDashboards["Projects"] = true;
    ActiveDashboards["SHEQs"] = false;
    ActiveDashboards["HR"] = false;

    function ShowNextDashboard()
    {

        if (ActiveDashboards["Projects"] == true)
        {
            //Hide this one.
            $('#box1').animate({
                left: '-50%'
            }, 500, function () {
                $('#box1').css('left', '150%');
                $('#box1').appendTo('#container');
            });


            //Show SHEQs one.
            $('#box2').animate({
                left: '50%'
            }, 500);

            ActiveDashboards["Projects"] = false;
            ActiveDashboards["SHEQs"] = true;

        }
        else if (ActiveDashboards["SHEQs"] == true)
        {

            //Hide this one.
            $('#box2').animate({
                left: '-50%'
            }, 500, function () {
                $('#box2').css('left', '150%');
                $('#box2').appendTo('#container');
            });


            //Show HR one.
            $('#box3').animate({
                left: '50%'
            }, 500);

            ActiveDashboards["SHEQs"] = false;
            ActiveDashboards["HR"] = true;

        }
        else if (ActiveDashboards["HR"] == true)
        {

            //Hide this one.
            $('#box3').animate({
                left: '-50%'
            }, 500, function () {
                $('#box3').css('left', '150%');
                $('#box3').appendTo('#container');
            });


            //Show Projects one.
            $('#box1').animate({
                left: '50%'
            }, 500);

            ActiveDashboards["HR"] = false;
            ActiveDashboards["Projects"] = true;
        }  

    }


    $(document).ready(function ()
    {

        setInterval(function ()
        {

            ShowNextDashboard();

        }, 4000);

    });


</script>

可能是一种更好的方法,但它工作正常并且滚动浏览每一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM