ボタンをクリックしたら要素を追加する様なJavaScriptを書いています。Mac版のChrome以外はボタンクリックきっかけで要素を追加した際、ブラウザのスクロール位置は変わらず要素が下に追加されるのですが、Mac版Chromeだけボタン位置にまで自動スクロールしてしまい、要素が上に追加された様な印象になります。
Mac版Chromeのバージョンは「85.0.4183.102」です。
[サンプルコード]
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>TEST</title> </head> <body> <div id="app" style="padding-bottom:80px"> <div id="list"> <ul> <li v-for="data in tests" style="width:200px;height:400px;background-color:#eee;margin-bottom:20px;">{{data}}</li> </ul> </div> <button v-on:click="addData">ボタン</button> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> var app = new Vue({ el: '#app', data: { tests : ['a','b','c','d','e','f','g','h','i'] }, methods:{ addData : function (){ flg=true; y = window.pageYOffset ; this.tests.push(...['a','b','c','d','e','f','g','h','Z']); } } }) </script> </body> </html>
Vue.jsでサンプルコードを書いていますが、jQueryで試してみてもネイティブのappendChildで試しても結果は同じでした。なお、サンプルコードは単に要素を追加しているだけですが本来はAjax通信してデータを取得してから要素を追加します。
この事象の良い解決策はありますでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。