jQuery マーキーを探していましたが、単純に思えますが、ニーズに合った動作するコードが見つかりませんでした。
私の要件は次のとおりです。
- 方向 (特に右から左) をサポートする必要があります。
- 単一の文字列ではなく、順序付けられていないリストをソースとして使用することをサポートする必要があります。
- クラシックなマーキーのように見えるはずです。
検索した結果、探しているものにある程度一致するものはいくつか見つかりましたが、すべて重大な欠陥があります.
最初のものはliScrollで、かなり良いように見えますが、方向サポートが欠けています。デフォルトでは単純に左から右であり、それを変更するオプションはありません。そして、コードを右から左への変換をサポートするように変更しようとしましたが、残念なことに失敗しました。
私もGiva Labs Marquee Pluginを試しましたが、私が知る限り方向性もサポートしていません。
最後の [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;
しかし、これらの値を変更すると、最終的には害が生じます。私は正しい場所で働いていますか?または、問題は完全に別の場所にある可能性がありますか?