Vue の水平スクロール
P粉755863750
P粉755863750 2024-03-25 21:06:27
0
2
480

マウス を使用して水平スクロールします アイコン。 JavascriptのscrollLeftで試してみましたが、スクロールしても値は変わりません。スクロールすると、deltaY 値のみが 100 と -100 の間で変化します。

問題がどこにあるのか知っている人はいますか?

スクロールしてスクロールバーをマウスオーバーすると機能しますが、div コンテナ全体で機能したいと考えています。また、可能であれば依存関係/npm-librariesなしでこれを実行したいと考えています。

###テンプレート### リーリー

JavaScript

リーリー

ササ

リーリー

下にスクロールしたときのコンソール出力

リーリー

これは次のようになります

P粉755863750
P粉755863750

全員に返信(2)
P粉422227023

あなたの例の問題は、event.target がスクロールバー要素ではなくアイコンであることです。

ref を使用して、正しい要素をターゲットにしていることを確認します。 1


別のオプションは、要素の scrollLeft HTML 属性にバインドし、Vue に DOM 更新を処理させることです。コントローラーの値を変更するだけです。

.camel 修飾子を使用して、(プロパティにバインドするために使用する) HTML 属性が大文字と小文字を区別しないという事実を回避します :scroll-left.camel # # #######23############ リーリー リーリー リーリー コメント:

1


-

scrollLeft プロパティにバインドしているため、ref# は必要ありません。 ## もう 。コントローラーの scrollLeft 値を有効な値に制限したかったのと、最大値を計算するために ref が必要だったので、このままにしました。 2 - HTML プロパティなので、技術的には :scroll-left.camel.prop
である必要がありますが、これも機能します.prop修飾子なし 3 - .scroll-left.camel
も適用されます (:scroll-left.camel.prop## の省略形) #)。

いいねを押す +0
P粉434996845

私はあなたと同様のことを試しましたが、 event.target.scrollLeft =event.deltaY target の代わりに currentTarget を使用するまでは機能しませんでした。 ScrollIcons メソッド内。こうすることで、カーソルがアイコン上にあるときにマウス ホイールを使用すると、アイコンではなく、含まれている div またはラベルがターゲットになります。つまり、カーソルが含まれている div とマウス ホイール内にある限り、div とマウス カーソルの間にある他の要素に関係なく、div は応答するはずです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート