Vue 3中如何實現滾動到指定元素的變數?
<p>我在純JavaScript中有以下函數可以捲動到一個元素,我想將這段程式碼轉換為Vue 3。 </p>
<pre class="brush:php;toolbar:false;">var source = ''
function showScrollInto(currentLocation, toLocation) {
source = currentLocation // 在隱藏部分後傳回的位置
document.getElementById(toLocation).style.display = 'block'
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 } 從 "vue"
var source = ""
const toLocation = ref('Vue.js')
export default {
name: "App",
data() {
return {
hideAlleClubs: true,
hideIkWilKennismaken: true,
hideAlleLocaties: true,
hideMeerOverKegelen: true,
hideInteresse: true
}
},
methods: {
showScrollInto(event, currentLocation, toLocation) {
source = currentLocation // 在隱藏部分後傳回的位置
this.hideInteresse = false
this.$refs.toLocation.scrollIntoView({ behavior: 'smooth'})
// document.getElementById(toLocation).style.display = 'block'
// document.getElementById(toLocation).scrollIntoView()
}
}
}</pre>
<p>透過點擊按鈕呼叫showScrollInto:</p>
<pre class="brush:php;toolbar:false;"><button @click="showScrollInto($event, 'kosten', 'interesse')">TITLE</button></ pre>
<p>要捲動到的元素如下:</p>
<pre class="brush:php;toolbar:false;"><section class = "top-level-section" v-show="!hideInteresse" ref="interesse"><>< pre>
<p>傳遞變數到方法中是可以的,但我無法弄清楚如何滾動到一個位置,其中位置是一個變數。 </p>
<p>this.$refs.interesse.scrollIntoView({ behavior: 'smooth'}) 可以用來捲動到id為'interesse'的元素,但我不知道如何將該元素名稱轉換為變數。
此外,我了解到this.$refs不是Vue 3的表示法,應該轉換為類似ref('value')的形式,但我不知道如何做到這一點。</p>