質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2873閲覧

Swiper.jsで、スライドを移動させずに要素を明るくしてスライドを切り替えたい

yu_6

総合スコア22

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/09/26 13:20

編集2020/09/27 05:19

やりたいこと

Swiper.jsを使い、<p>をスライダーにしています。(スライド切替方法のメイン: mousewheel)
デフォルト動作だと、スライドの切替に移動が発生してしまいます。(transform: translate3d())

私はこのように、スライド切替の際、要素の移動なしにハイライトでスライダーを実装したいです。
ハイライトで切替

試したこと

js

1on: { 2 slideChange: function () { 3 document.querySelector('my-swiper').style.transform = “translate3d(0,0,0); 4 }, 5}

→ エラー: Uncaught TypeError: Cannot read property 'style' of null

また、jQueryのCDNも読み込んであるのでDOMの取り方を
$('.my-swiper')に変えてもみたのですが、こちらはUncaught TypeError: Cannot set property 'transform' of undefinedとエラーが出てしまったり、onを外に出してみても同じ結果でした。


また、for文がいるのかなと思い、

js

1for (let i = 0; i < this.slides.length; i++) { 2 mySwiper.setTranslate(this.slides[i]); 3 mySwiper.updateActiveIndex(); 4 mySwiper.updateSlidesClasses(); 5}

ともやってみましたが、一度次のスライドに移動したきり、動かなくなりました。(translateがずっとslide[1]の位置を返している)

コード

JSFiddle

自分なりに、コードを読んだりたくさんの検索、試行錯誤をしてみたのですが解決できず、お手上げ状態です…。

もし「スライドを移動させずに切り替えるならこっちの方法のがいいよ」等ありましたら、是非そちらもご教授いただけますと幸いです。

何卒宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんばんは。

イベントを拾わずに、普通に

css

1.swiper-wrapper { 2 3 transform: translate3d(0,0,0) !important;

とするのはどうでしょうか。

https://jsfiddle.net/Lhankor_Mhy/nLzaye02/

コメントを受けて追記

transformを固定することによって、transitionが終了したと判別されないことが原因のようです。
Swiper のコードを読んでみましたが、speed が0に設定されているときは、即座にtransitionEndを呼ぶようでしたので、そのように設定を変更してみてはいかがでしょうか。

サンプル

js

1var mySwiper = new Swiper('.my-swiper', { 2 on: { 3 init: function() { 4 this.snapGrid = this.slidesGrid; 5 this.isEnd = false; // 追加 6 }, 7 8 9 }, 10 11 speed:0, // 追加

あと、これ、解決するの難しかったです。
おそらく、Swiperはこういう用途に向いていないんだと思います。
他の問題が起きてくる可能性もあるかと思いますので、別のプラグインを検討した方が早いかもしれません。

投稿2020/09/26 15:00

編集2020/09/28 03:04
Lhankor_Mhy

総合スコア36134

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_6

2020/09/26 16:39

回答ありがとうございます! それだと、ページネーションボタンをクリックなど、クリックでスライド切替した際は上手くいきますが、 mousewheelでスライド切替した場合は途中で止まったり、逆側のホイール回転に反応しなくなるなど、上手く動かなくなってしまいます…。(スライド切替はmousewheeelメインで考えています。言葉で言ってなくてすみません汗) 他に何かいい案ございましたら宜しくお願いいたしますm(_)m
Lhankor_Mhy

2020/09/27 00:58

わかりました。 ところで、その問題は、ご質問のイベントを拾う方法でも起きると思うのですが、どのように回避する予定だったのですか?
yu_6

2020/09/27 05:31 編集

この問題に関しても自分では原因がなにかを掴むことができず、回避策に困っている状態です…。 なぜこのような問題が起きるのか、知っておられますか?
yu_6

2020/09/28 06:52

わああ、なるほど…!自分では全く思いつかなかったです。 やっぱり難しかったですよね(^^;) お手数おかけしてすみません。 この実装に一ヶ月もかかっていたので感謝の気持ちでいっぱいです。流石です。本当にありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問