2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

bxsliderでリンクが効かなくなった時の対処法

Posted at

jQueryプラグイン「bxslider」でリンクが効かなくなるという現象に遭遇したので対処法を探してみました。
すでにいくつか対応されている記事を拝見しましたが、スマートフォンとタブレットではスワイプ機能は使えるように調整をしてみました。

原因

Chromeの仕様変更により、スライダーのスワイプやドラッグ操作でスライドを切り替える機能が原因のようです。
(確認の際は運よくリンク先に遷移したので最初は気付きませんでした...)

すぐできる対処法

bxsliderのオプションの中にある

bxsliderオプション
touchEnabled: false

を追記すると解消できました。
この「touchEnabled」オプションは、スワイプ(フリック)時にスライドを移動させるためのオプションです。

スマホとタブレットで見る時はtouchEnabledをtrueにする

先のtouchEnabledオプションをfalseのままだとスマホ・タブレットで見た時スワイプができなくなります。
スマートフォン・タブレットでスワイプできないと、ページャーやナビゲーションボタンをタップすることになります。
そうなると特にスマートフォンで見る時に、おそらく小さいボタンをタップすることになりますし、ユーザーにとってストレスになる可能性があります。
タッチデバイスではスワイプでスライドを移動できるように、@mitsuhiro_Kさんの対処法を元に少し変えて対処しました。
bxSliderがクリック出来なくなった時の応急処置


$(function(){
  let bxSliderConfig = {
    //使用しているサイトにあったオプション,
    touchEnabled: false
  };

  let ua = navigator.userAgent;
  let sp = ua.indexOf('iPhone') > -1 || (ua.indexOf('Android') > -1 && ua.indexOf('Mobile') > -1); // スマートフォン
  let tab = ua.indexOf('iPad') > -1 ||(ua.indexOf('Macintosh') > -1 && 'ontouchend' in document) || ua.indexOf('Android') > -1; // タブレット

  // スマートフォンまたはタブレットの場合にtouchEnabledをtrueにする
  if (sp || tab) {
    bxSliderConfig.touchEnabled = true;
  }

  let slide = $('#slider ul').bxSlider(bxSliderConfig);
});

他参考サイト

bxSlider をつかったスライダーのリンクが機能しないときの対処方法
bxSliderのスライド内のリンクが効かなくなった際の対処方

bxsliderオプション参考サイト

オプションで自分好みにカスタマイズ!bxsliderの使い方

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?