如何附加
  • 标记到
      的末尾在屏幕外(溢出)空间?
  • 发布于 2024-11-14 19:27:08 字数 786 浏览 3 评论 0原文

    我有一个脚本可以将无序列表的图像转换为水平滚动轮播,但它的行为不正常!这里...

    setInterval(function(){
        $('#scroller ul li:first').animate({
            marginLeft : '-165px'
        }, 2000, 'linear', function() {
            // OnComplete
            $(this).css('margin-left', '0').appendTo('#scroller ul');
        });
    }, 2000);
    

    基本上它将第一个

  • 滑向左侧,然后将其移动到
      的末尾。
  • 问题是它没有正确重置边距,因此它最终覆盖了之前的最后一个列表元素。在下一轮动画中,它会跳到右侧,但当然会立即与下一个动画 + 移动的

  • 重叠。
    • 的宽度设置为“屏幕外”一张图像留出空间,但附加似乎错过了这个空间,只是将其放在可见渲染空间的末尾!

    请问有什么建议吗?


    (受到 Snook.ca 的 最简单的 jQuery 幻灯片 的启发)

    I have a script that turns an unordered list of images into a horizontal scrolling carousel, but it's misbehaving! Here...

    setInterval(function(){
        $('#scroller ul li:first').animate({
            marginLeft : '-165px'
        }, 2000, 'linear', function() {
            // OnComplete
            $(this).css('margin-left', '0').appendTo('#scroller ul');
        });
    }, 2000);
    

    Basically it slides the first <li> off to the left, then moves it to the end of the <ul>.

    The problem is that it doesn't reset the margin properly so it ends up overlaying the previously last list element. On the next round of the animation it jumps to the right but is of course immediately overlayed with the next animated + moved <li>.

    The <ul> has it's width set to allow space for one image 'off-screen' but the append seems to miss this space and just puts it at the end of the visibly rendered space!

    Any suggestions please?

    ( Inspired by Snook.ca's Simplest jQuery Slideshow )

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

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

    发布评论

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

    评论(1

    虫児飞 2024-11-21 19:27:08

    如果您在设置 css 值之前添加 .stop() ,它将起作用:

    $(this).stop().css('margin-left', '0').appendTo('#scroller ul');
    

    我做了一个 jsFiddle

    It will work if you add a .stop() before setting the css value:

    $(this).stop().css('margin-left', '0').appendTo('#scroller ul');
    

    I've made a jsFiddle.

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