I want to type in the input, and if the value of input matches “1” it will scroll to .here
, but it isn’t working,
I tried creating a button and adding a handle-click function. It worked.
Please help me.
<template>
<button @click="scrollToView">Click to Here</button>
<input type="text" v-model="searchAddress" />
<span v-if="matchAddress">OK</span>
<span class="here" ref="el">Here</span>
</template>
<script setup>
import { ref, computed, watch, nextTick } from "vue";
const searchAddress = ref(null);
const el = ref(null);
const matchAddress = computed(() => {
return searchAddress.value == 1;
});
function scrollToView() {
el.value.scrollIntoView({ behavior: "smooth", block: "center" });
el.value.focus({ preventScroll: true });
}
watch(matchAddress, async (val) => {
console.log(val);
if (val) {
await nextTick();
scrollToView();
}
});
</script>