首页 > 其他分享 >vue3中监听滚动条事件

vue3中监听滚动条事件

时间:2023-10-17 18:33:09浏览次数:31  
标签:log 滚动条 header vue3 scrollTop document 监听 scrollHeight

import { onMounted, onUnmounted, reactive } from 'vue'
const data=reactive({
    oldScrollTop:0,
});
const scrolling=()=>{
    // 滚动条距文档顶部的距离
    let scrollTop =window.pageYOffset ||document.documentElement.scrollTop ||document.body.scrollTop;
    // 滚动条滚动的距离
    let scrollStep = scrollTop - data.oldScrollTop;
    console.log("header 滚动距离 ", scrollTop);
    // 更新——滚动前,滚动条距文档顶部的距离
    data.oldScrollTop = scrollTop;
 
    //变量windowHeight是可视区的高度
    let windowHeight =
    document.documentElement.clientHeight || document.body.clientHeight;
    //变量scrollHeight是滚动条的总高度
    let scrollHeight =
    document.documentElement.scrollHeight || document.body.scrollHeight;
 
    //滚动条到底部的条件
    if (scrollTop + windowHeight == scrollHeight) {
    //你想做的事情
        console.log("header  你已经到底部了");
    }
    if (scrollStep < 0) {
        console.log("header 滚动条向上滚动了!");
    } else {
        console.log("header  滚动条向下滚动了!");
    }
    // 判断是否到了最顶部
    if (scrollTop <= 0) {
        console.log("header 到了最顶部")
    }; 
};
 
onMounted(()=>{
    window.addEventListener("scroll", scrolling);
})
onUnmounted(()=>{
    window.removeEventListener("scroll", scrolling);
})

 

标签:log,滚动条,header,vue3,scrollTop,document,监听,scrollHeight
From: https://www.cnblogs.com/Jx0605/p/17770391.html

相关文章

  • antd for vue3 table 使用rowClassName设置样式固定列不生效
    依赖库版本:Vue3+antdforvuev3.X样式问题:固定列背景色不生效,鼠标移入对应行背景色变为初始的白色columns:[{title:'装置',width:100,dataIndex:'areaName',fixed:'left'},...{title:'装置',w......
  • Vue3.2中setup语法糖的使用教程分享
    这篇文章主要为大家详细介绍了Vue3.2中setup语法糖的具体使用方法,文中的示例代码讲解详细,对我们深入了解Vue有一定的帮助,需要的可以参考一下目录2、data数据的使用3、method方法的使用4、watchEffect的使用5、watch的使用6、computed计算属性的使用7、props父子传值的使用8、emit......
  • Spring Boot中的过滤器、拦截器、监听器技巧汇总:让你快速成为大神
    ......
  • vue3中引入elementplus以及图标(vue3+vuecli)
    开发背景nodev18.17.0(node-v)npmv8.4.1(npm-v)@vue/cli5.0.8(vue-V)0.用命令行安装elementPlusnpminstallelement-plus--save1.elementplus按需手动导入ElementPlus组件很多,如果导入组件太多,为了更好的管理ElementPlus组件,可将组件作为独立的文件,将不同功能逻辑......
  • 开源项目 | 一款基于NodeJs+Vue3的强大的在线设计图片工具
     一、项目概述一款漂亮且功能强大的在线海报图片设计器,仿稿定设计。适用于海报图片生成、电商分享图、文章长图、视频/公众号封面等多种场景。二、技术特性丝滑的操作体验,丰富的交互细节,基础功能完善采用服务端生成图片,确保多端出图统一性,支持各种CSS特性简易AI......
  • vue3中setup
    和vue2不同的是vue3中的script中带有setup标签里面的setup相当于vue2中的data和methds空间可以放置函数,也可以执行函数在写时需要有return返回值<scriptsetup></script>setup执行发生在页面之前所以不能使用this函数,一般通过ref绑定组件上的值进行修改 使用函数例子......
  • 手撕Vue-监听数据变化
    经过上一篇的介绍,已经实现了将模板编译成具体数据,接下来要介绍的是如何监听数据的变化,本章主要完成这个需求即可。在我们文章的开始,我写了一个Vue双向数据绑定原理的文章当中封装了一个Observer类,这个类的作用就是监听数据的变化,当数据发生变化的时候,会通知订阅者,订阅者会去......
  • 2023.10.14 js事件监听
    //方式一<inputtype="button"onlick="on()"value="按钮1"><script>functionon(){alert("我被点击了~");}</script>//方式二<inputtype="button"id="btn"value="按钮......
  • Vue3 + Quasar系列-代码配置以及报错汇总记录(不断更新中)
    1.Vue3+Quasar系列-代码配置打包去掉hash后缀去掉hashhttps://quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa2.Vue3+Quasar改变主题背景quasar的样式和其他的框架修改不太一样,需要我们使用动态的方式来进行变更,一般来说有两种方案进行主题修改方案一:......
  • Vue3| Pinia 持久化插件
    对vuex或Pinia里面的内容做本地持久化1.安装插件:npmipinia-plugin-persistedstate2.将插件添加到pinia实例上①main.js里导入持久化插件:importpiniaPluginPersistedstatefrom'pinia-plugin-persistedstate'② app.use(pinia.use(piniaPluginPersistedstate))......