当前位置: 首页 > news >正文

点击按钮滚动到底功能vue的v-on:scroll运用

使用vue自带的监听滚动功能v-on:scroll,滚动条变化时,会调用方法 checkScrollStatus,如果滚动条在容器底部时,则隐藏按钮,否则显示按钮,点击按钮能一键滚动到底部。

<div class="chat-area" ref="chatAreaRef" v-on:scroll="checkScrollStatus">...具体渲染的内容
</div><-- 按钮 -->
<div @click="scrollBottom" class="scroll-btn" v-show="showScrollBtn"><i class="iconfont icon-a-zhedieiconbeifen5" />
</div>// 样式 这里因为内容区域是对话框,所以反转了dom.chat-area {height: 0;flex: 1;overflow-y: auto;display: flex;flex-direction: column-reverse;}

 这里因为内容区域是对话框,所以反转了dom,所以下面的方法里的container.scrollTop在滚动到底的时候是0,正常的dom不是0

      const chatAreaRef = ref(null)// 检查滚动状态并更新按钮显示checkScrollStatus() {// 确保DOM已加载if (!chatAreaRef.value) return;const container = chatAreaRef.value;const scrollPosition = container.scrollTop;// console.log('元素内部滚动距离:', scrollPosition);// 内容高度 > 容器高度(存在滚动条)const hasScrollbar = container.scrollHeight > container.clientHeight;// 1. 内容高度 > 容器高度(存在滚动条)if (hasScrollbar) {// 底部对应 scrollPosition = 0 → 隐藏按钮// 非底部对应 scrollPosition ≠ 0 → 显示按钮if (scrollPosition !== 0) {state.showScrollBtn = true} else {state.showScrollBtn = false}} else {state.showScrollBtn = false}// console.log(state.showScrollBtn, '--showScrollBtn--')},// 滚动到底部scrollBottom() {if (!chatAreaRef.value) return;const container = chatAreaRef.value;chatAreaRef.value.scrollTo({top: 0,behavior: 'smooth'});// 滚动后更新按钮状态nextTick(() => {methods.checkScrollStatus();})},

http://www.lryc.cn/news/598086.html

相关文章:

  • 大模型微调学习笔记(基于讯飞星辰MaaS速学版)
  • Hive常用函数
  • CSDN技术专栏开篇:高效开发环境搭建指南
  • 重构数据库未来:金仓数据库,抢占 AI 原生时代先机
  • 基础NLP | 01 机器学习 深度学习基础介绍
  • uni-appDay02
  • uniapp中flex布局gap属性兼容处理
  • LockPatternUtils中比较重要的方法
  • day46.通道注意力
  • 【SpringAI实战】FunctionCalling实现企业级自定义智能客服
  • Quarkus利用 MicroProfile 实现微服务特性
  • 基于深度学习的图像分类:使用EfficientNet实现高效分类
  • 期货交易系统:市场生态中的功能映射与价值逻辑
  • uni-app小程序云效持续集成
  • Etcd原理基础学习
  • Java 垃圾回收器之CMS GC问题分析与解决
  • 二分查找----5.寻找旋转排序数组中的最小值
  • fabric搭建基础的测试网络
  • ARM 学习笔记(四)
  • 若依框架在 IDEA 中运行的前置软件环境配置指南
  • AI开放课堂:钉钉MCP开发实战
  • 4种灵活的方法从POCO手机中删除联系人
  • 移动管家手机控车便捷性如何
  • 数据库集群环境漏洞修复
  • uniapp写app做测试手机通知栏展示内容
  • AI结对编程:分布式团队的集体记忆外脑
  • TechGPT3部署
  • 初识opencv03——图像预处理2
  • 中国西北典型绿洲区土壤水分特征(2018-2019年)
  • 前端面试专栏-前沿技术:30.跨端开发技术(React Native、Flutter)