jQuery从左到右动画定位问题

发布于 2024-10-17 22:42:45 字数 1034 浏览 4 评论 0原文

我试图将 div 从屏幕的一端滑动到另一端,但我试图使其循环,这样一旦它到达右侧,它将再次从左侧开始,依此类推。 ..

我现在遇到的问题是,一旦元素到达右侧,它就会循环,但该元素只是在左上角弹出,因为我希望它从浏览器窗口的外部移入,以给出它的无缝效果,这是我的代码,

Javascript/jQuery:

$(document).ready(function(){
    var body_width;
    var timer;

    jQuery(function($) {
            timer = setTimeout(Cloud, 0);
    });

    function Cloud() {
        //get the width of the body
        body_width = $("body").width();

        $("#move_me").css({margin:0}).
                animate({marginLeft: body_width}, body_width*5, "linear", function() {
                        timer = setTimeout(Cloud, 0);
                });
    }
});

HTML:

<div id="header">
    <div id="move_me"></div>
</div>

CSS:

   #header {
        width: 100%;
        height: 250px;
        background: #000;
        overflow: hidden;
   }

    #move_me {
        height: 250px;
        width: 250px;
        background: #F00;
    }

提前谢谢!

I am trying to slide a div from one end of the screen to the next, but I am trying to make it loop, so that once it has reached the right side, it will start again from the left and so on and so forth...

The problem I have now is that once the element reaches the right side, it loops, but the element just pops up in the left hand corner, where as I would like it to move in from outside of the browser window, to give it that seamless effect, here is my code,

Javascript/jQuery:

$(document).ready(function(){
    var body_width;
    var timer;

    jQuery(function($) {
            timer = setTimeout(Cloud, 0);
    });

    function Cloud() {
        //get the width of the body
        body_width = $("body").width();

        $("#move_me").css({margin:0}).
                animate({marginLeft: body_width}, body_width*5, "linear", function() {
                        timer = setTimeout(Cloud, 0);
                });
    }
});

HTML:

<div id="header">
    <div id="move_me"></div>
</div>

CSS:

   #header {
        width: 100%;
        height: 250px;
        background: #000;
        overflow: hidden;
   }

    #move_me {
        height: 250px;
        width: 250px;
        background: #F00;
    }

Thanx in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

献世佛 2024-10-24 22:42:45

只需在元素离开屏幕的情况下启动动画即可。

因此,您需要将其左边距设置为等于元素的负宽度。

    var cloud_width = -$('#move_me').width();
    $("#move_me").css({marginLeft:cloud_width}).
                 .animate(...);

演示http://jsfiddle.net/gaby/XKVtC/

Just start the animation with the element out of the screen.

So you need to set its left margin equal to the negative width of the element..

    var cloud_width = -$('#move_me').width();
    $("#move_me").css({marginLeft:cloud_width}).
                 .animate(...);

demo: http://jsfiddle.net/gaby/XKVtC/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文