Wie implementiert man das Scrollen zu einer Variablen eines bestimmten Elements in Vue 3?
<p>Ich habe die folgende Funktion in reinem JavaScript, um zu einem Element zu scrollen, und ich möchte diesen Code in Vue 3 konvertieren. </p>
<pre class="brush:php;toolbar:false;">var source = ''
Funktion showScrollInto(currentLocation, toLocation) {
source = currentLocation // Der Speicherort, der nach dem Ausblenden des Abschnitts zurückgegeben werden soll
document.getElementById(toLocation).style.display = 'block'
document.getElementById(toLocation).scrollIntoView()
}</pre>
<p>und zum ursprünglichen Speicherort zurückkehren: </p>
<pre class="brush:php;toolbar:false;">document.getElementById(source).scrollIntoView()</pre>
<p>showScrollInto aufrufen, wenn auf die Schaltfläche geklickt wird: </p>
<pre class="brush:php;toolbar:false;"><button onClick="showScrollInto('top', 'interesse')">TITLE</button></pre>
<p>Jetzt wandle ich die Funktion in eine Methode um und versuche: </p>
<pre class="brush:php;toolbar:false;">import { ref } from "vue"
var source = ""
const toLocation = ref('Vue.js')
Standard exportieren {
Name: "App",
Daten() {
zurückkehren {
hideAlleClubs: wahr,
hideIkWilKennismaken: stimmt,
hideAlleLocaties: wahr,
hideMeerOverKegelen: wahr,
hideInteresse: wahr
}
},
Methoden: {
showScrollInto(event, currentLocation, toLocation) {
source = currentLocation // Der Speicherort, der nach dem Ausblenden des Abschnitts zurückgegeben werden soll
this.hideInteresse = false
this.$refs.toLocation.scrollIntoView({ behavior: 'smooth'})
// document.getElementById(toLocation).style.display = 'block'
// document.getElementById(toLocation).scrollIntoView()
}
}
}</pre>
<p>showScrollInto beim Klicken auf die Schaltfläche aufrufen: </p>
<pre class="brush:php;toolbar:false;"><button @click="showScrollInto($event, 'kosten', 'interesse')">TITLE</button></ vor>
<p>Die Elemente, zu denen Sie scrollen können, sind wie folgt: </p>
<pre class="brush:php;toolbar:false;"><section class = "top-level-section"!hideInteresse" vor>
<p>Die Übergabe einer Variablen an die Methode funktioniert einwandfrei, aber ich kann nicht herausfinden, wie ich zu einer Position scrollen kann, an der die Position eine Variable ist. </p>
<p>this.$refs.interesse.scrollIntoView({ behavior: 'smooth'}) kann verwendet werden, um zum Element mit der ID 'interesse' zu scrollen, aber ich weiß nicht, wie ich diesen Elementnamen in eine Variable umwandeln soll .
Außerdem verstehe ich, dass this.$refs keine Vue-3-Notation ist und in etwas wie ref('value') konvertiert werden sollte, aber ich weiß nicht, wie das geht.</p>