ホームページ  >  に質問  >  本文

Vue 3 で指定された要素の変数へのスクロールを実装するにはどうすればよいですか?

<p>純粋な JavaScript には要素までスクロールする次の関数があり、このコードを Vue 3 に変換したいと考えています。 </p> <pre class="brush:php;toolbar:false;">var source = '' 関数 showScrollInto(currentLocation, toLocation) { source = currentLocation // セクションを非表示にした後に返される場所 document.getElementById(toLocation).style.display = 'ブロック' document.getElementById(toLocation).scrollIntoView() }</pre> <p>そして元の場所に戻ります: </p> <pre class="brush:php;toolbar:false;">document.getElementById(source).scrollIntoView()</pre> <p>ボタンがクリックされたときに showScrollInto を呼び出します: </p> <pre class="brush:php;toolbar:false;"><button onClick="showScrollInto('top', 'interesse')">TITLE</button></pre> <p>次に、関数をメソッドに変換して試してみます。 </p> <pre class="brush:php;toolbar:false;">import { ref } from "vue" var ソース = "" const toLocation = ref('Vue.js') デフォルトのエクスポート { 名前: 「アプリ」、 データ() { 戻る { HideAlleClubs: true、 HideIkWilKennismaken: true、 HideAlleLocatures: true、 HideMeerOverKegelen: true、 HideInteresse: true } }、 メソッド: { showScrollInto(event, currentLocation, toLocation) { source = currentLocation // セクションを非表示にした後に返される場所 this.hideInteresse = false this.$refs.toLocation.scrollIntoView({ 動作: 'smooth'}) // document.getElementById(toLocation).style.display = 'ブロック' // document.getElementById(toLocation).scrollIntoView() } } }</pre> <p>ボタンをクリックして showScrollInto を呼び出します: </p> <pre class="brush:php;toolbar:false;"><button @click="showScrollInto($event, 'kosten', 'interesse')">TITLE</button></前> <p>スクロールする要素は次のとおりです: </p> <pre class="brush:php;toolbar:false;"><section class = "top-level-section" v-show="!hideInteresse" ref="interesse"></前> <p>変数をメソッドに渡すことは正常に機能しますが、位置が変数である位置までスクロールする方法がわかりません。 </p> <p>this.$refs.interesse.scrollIntoView({ Behavior: 'smooth'}) を使用すると、ID が 'interesse' の要素にスクロールできますが、その要素名を変数に変換する方法がわかりません。 さらに、this.$refs は Vue 3 の表記法ではないため、ref('value') のようなものに変換する必要があることは理解していますが、その方法がわかりません。</p>
P粉060528326P粉060528326388日前529

全員に返信(1)返信します

  • P粉282627613

    P粉2826276132023-08-29 11:43:49

    まず、テンプレート参照についての Vue の ドキュメント を読んでください。ページの左上隅にトグル ボタンがあり、オプション API と複合 API 構文を切り替えることができます。

    変数参照の使用は、使用している Vue のバージョンや構文によって異なります。

    リーリー

    Vue 2 / オプション API

    変数は要素の参照と一致する文字列である必要があります

    リーリー

    Vue 3 / 組み合わせ API

    変数には値 ref() を割り当てる必要があります (インポートが必要です)。 定数の名前 は要素の参照名と一致する必要があります

    リーリー

    オプション API と合成 API を混合しないでください。そのため、使用する構文は 1 つだけです。

    どちらの場合も、同じ ref 名を持つ複数の要素を持つことができます。その時点で、Vue は同じ名前を持つすべての ref を含む配列を作成するため、特定の要素にアクセスするにはインデックスも使用する必要があります。

    次に、いくつかの簡略化した例を示します。これらが残りの問題を解決し、必要に応じて修正できることを願っています。

    オプション API コードサンドボックスの例

    結合された API コードサンドボックスの例

    返事
    0
  • キャンセル返事