jQuery marquee(来自无序列表),支持从右到左

时间:2013-03-04 15:12:03

标签: jquery marquee

我一直在寻找一个jQuery选框,虽然听起来很简单但我找不到符合我需要的工作代码。

我的要求是:

  1. 必须支持方向(特别是从右到左)。
  2. 它必须支持使用无序列表作为源而不是单个字符串。
  3. 它应该看起来像经典的选框。
  4. <击> 在搜索之后,我发现了一些有点适合我正在寻找的东西,但都有严重的缺陷。

    第一个是liScroll,虽然看起来很不错但缺乏方向支持。默认情况下它只是从左到右,没有选择来改变它。虽然我试图改变代码以支持从右到左,唉,我失败了。

    我也尝试了 Giva Labs Marquee插件,但据我所知,它也不支持方向。

    最后一个是[jQuery WebTicker] [2],虽然乍一看似乎很完美,但结果却有一个奇怪的错误/行为。当每个项目都很短时它工作正常,但在我的情况下,每个项目本身都是一个非常长的字符串,在这种情况下它表现不正常。当每个项目结束时,不是在其尾部平滑地显示下一个项目,而是显示大量空白空间,并且项目感觉它们跳跃而不是滚动/滑动。

    我意识到很多人一般都不喜欢马戏团,但我向你保证,我不会选择这样做。所以忍受我。

    提前致谢。

    修改 我设法得到simpleScroll(感谢 Ceryl Wiltink )大部分工作,但我遇到了一个小问题。我使用“方向:向后”这意味着文本从左向右滚动但问题是文本开始从最右边而不是最左边滚动导致第一个项目在列表不可见。

    我看了JS,我猜这个问题就在于这个部分(else块)[原始JS中的第143到162行]

    if (this.isAuto && this.o.autoMode=='loop') {
    
                this.$list.css(this.dimension,this.posMax+(this.itemMax*addItems) +'px');
    
                this.posMax += (this.clipMax - this.o.speed);
    
                if (this.isForwards) {
                    this.$items.slice(0,addItems).clone(true).appendTo(this.$list);
                    this.resetPosition = 0;
    
                } else {
                    this.$items.slice(-addItems).clone(true).prependTo(this.$list);
                    this.resetPosition = this.$items.length * this.itemMax;
                    //due to inconsistent RTL implementation force back to LTR then fake
                    if (this.isRTL) {
                        this.$clip[0].dir = 'ltr';
                        //based on feedback seems a good idea to force float right
                        this.$items.css('float','right');
                    }
                }
    

    但无论我试图修改它的任何值,都会进一步搞砸它,我假设这是关键部分

      

    this.resetPosition = this。$ items.length * this.itemMax;

    但是对这些价值观的任何修改最终都会带来更多弊大于利。我甚至在正确的地方工作吗?或问题可能完全在其他地方?

1 个答案:

答案 0 :(得分:4)

我过去成功使用过simplescroll。

http://logicbox.net/jquery/simplyscroll/

不确定它是否在一段时间内发生了很大的变化,但是它支持UL / LI的指导和工作

您可以在http://www.cesar.nl/上看到一个示例(图片顶部的产品代码)