2017-10-08 8 views
0

ChromeでJSFiddle exampleをご覧ください。JQuery SlideUpはChromeでページ全体をスクロールさせます

スクロールせずにそのままコードを実行すると、緑色の列の項目が3秒ごとに循環していることがわかります。一番上のアイテムは上にスライドして消え、他のアイテムはすべて上に移動します。アイテムはリストの一番下に表示されますので、十分に長く待っていれば、それは元に戻ります。

これまでのところ、とても良いです。

しかし、「ページ」を下にスクロールして黄色の列の項目を表示したり、赤い列のテキストを読み取ったりすると、緑の列の項目がスライドするたびに、ページもまたスクロールしてゆっくりと元の位置に戻ります。

Firefoxで同じフィーリングを試してみると、ページが少なくともスクロールせずに緑色の列が正しく表示されることがわかります。

エッジでは、すべて正常に動作します。

Chromeでその奇妙な動作を防ぐにはどうすればよいですか?

ありがとうございます!それは私が(!奇妙な)いくつかのコードを含める必要がありそうですので

、ここでの主なサイクリングコードです:jQueryので人々に

this.$cyclingItem = this.$container.find('div.item').first();  
this.$cyclingItem.slideUp(slideDelay, function() { 
    this.$cyclingItem.hide(); 
    this.$container.append(this.$cyclingItem); 
    this.$cyclingItem.fadeIn(function() { 
    this.$cyclingItem = null; 
    }.bind(this)); 
}.bind(this)); 
+0

私が提供したコードを見た人は誰ですか? SlideUp()を適用する要素だけでなく、クロールでページ全体がスクロールし始める理由についての手掛かりはありますか? –

答えて

0

おかげで、私は正しい方向に指摘されました。この問題は、Chromsのスクロールアンカー機能によって引き起こされます。これは、私の場合、メインの内容である中央のものではなく、私の例の最初の列を誤って固定してしまいます。

私は、CSSスタイルoverflow-anchor:noneを追加することでそれがわかりました。最初の列に問題が解決されます。

関連する問題