LoginSignup
1
0

More than 5 years have passed since last update.

jscolor Color Picker で色選択時にAndroid クロームでは画面がスクロールしてしまう問題に対処する

Last updated at Posted at 2018-04-11

カラーピッカーの一つに jscolor Color Picker というものがあります。
結構デザインが良くて使いたいと思うのですが、現行バージョン(2.0.4)だと、Android のChrome ブラウザでは色選択中に画面がスクロールしてしまう問題があります。

今回はそのバグを修正する方法です。

なお、説明は jscolor v2.0.4 のものです

jscolor.js の112行目から始まる以下の関数を修正します。

attachEvent : function (el, evnt, func) {
    if (el.addEventListener) {
        el.addEventListener(evnt, func, false );
    } else if (el.attachEvent) {
        el.attachEvent('on' + evnt, func);
    }
},

上記の関数を以下のように変更します

attachEvent : function (el, evnt, func) {
    if (el.addEventListener) {
        el.addEventListener(evnt, func, { passive: false } );
    } else if (el.attachEvent) {
        el.attachEvent('on' + evnt, func);
    }
},

addEventListener を呼び出すときにオプションとして { passive: false }を渡してあげることで、jscolor Color Picker で呼び出される preventdefault()関数が有効に働くようになります。

開発元にプルリクでも送ろうと思ったのですが、開発元のGithub リポジトリがどれなのか判別つかなかったので、とりあえずここに解決方法を記述しておきます

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0