Vue3中点击按钮滚动页面到低端

案例

<div ref="logContainer></div>
const logContainer = ref(null);
const onStepChange = () =>{
logContainer.value.scrollIntoView({
behavior: "smooth", // 定义过渡动画 instant立刻跳过去 smooth平滑过渡过去
block: "start", // 定义垂直滚动方向的对齐 start顶部(尽可能) center中间(尽可能) end(底部)
inline: "center", // 定义水平滚动方向的对齐
});
};

核心代码

<template>
<div ref="editflagNode"></div>
<div v-if="route.query.flag === '1' || route.query.flag === '3'">
<Title v-if="btnFlag || taskDetail.taskConclusion !== null">{{
route.query.flag === "3" ? "研判结论" : "添加研判结论"
}}</Title>
<div style="margin: 10px">
<div style="margin: 10px">{{ taskDetail.taskConclusion }}</div>
<div style="width: 100%; display: flex">
<div
class="onupload"
v-for="val in taskDetail.conclusionAttachment"
:key="val.id"
>
<div>{{ val.name }}</div>
<div>
<a :href="val.address" :download="val.name">下载</a>
<!-- 输入框 -->
</div>
</div>
<Textareas @datalist="datalist" empty="1" v-if="btnFlag"
>提交
</Textareas
>
</div>
</div>
</div>
</div>
</template>
const editflagNode = ref(null);
const containerNode = ref(null);
// 模拟滚动
const scrollToEditflag = (domNode, height) => {
for (let i = 0; i < height + 1000; i++) {
setTimeout(() => {
domNode.value.scrollTo(0, i);
}, 100);
}
};
onMounted(async () => {
console.log("123", 123);
mitt.on("triggerScrollToEditflag", (flag) => {
scrollToEditflag(containerNode, editflagNode.value.offsetTop);
btnFlag.value = flag;
});
getResearchTaskDetail();
});
posted @   Felix_Openmind  阅读(537)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示