スクロールしても、背景画像は追従しないアレです。
しかし、IEだとスクロールした時に背景画像がガタつく、という問題がありまして・・(割と有名らしいです)。
その解決方法についてご案内します。
参考にしたところだと
http://designpeke.jugem.jp/?eid=108
http://cloud-collector.link/2016/05/08/ie-fixed-scroll-bug/
など。
ブラウザーのスムーススクロール機能に頼るのではなく、マウスホイール時に、ホイール量に応じスクロールさせるやり方ですね。
上下矢印キーに対応していないので対応させる
これはこれでOKなのですが、問題はマウスホイール以外でスクロールさせたとき。
スクロールバー操作ではガタつくことは無かったのですが(Windows8.1+IE11 , Windows10+IE11)、矢印キーによる上下スクロールでは相変わらずガタつくようになってました。
ということで、矢印キーに対しても同様の対処を行うようにしたのが以下のコード。
$(function(){ ua = window.navigator.userAgent.toLowerCase(); if(ua.indexOf('msie') >= 0 || ua.indexOf('trident') >= 0) { $('body').on("mousewheel", function () { event.preventDefault(); var wd = event.wheelDelta; var csp = window.pageYOffset; window.scrollTo(0, csp - wd); }); $('body').on("keydown", function (e) { var keycode = e.keyCode; if ( keycode == 38 ) { // ↑ event.preventDefault(); var wd = 30; var csp = window.pageYOffset; window.scrollTo(0, csp - wd); } if ( keycode == 40 ) { // ↓ event.preventDefault(); var wd = -30; var csp = window.pageYOffset; window.scrollTo(0, csp - wd); } }); } });
かなり強引です。。
特に移動量が30ピクセル固定というのが恥ずかしすぎなのですが。。
ブラウザーから移動量を持ってこれればよいのですが、取り方が分からない・・。
誰か分かる人がいたら教えて下さい。。
ただ、まあそれなりに使える様にはなったかな、と思います。
早くIE絶滅しろ!と思いました。。