vue实现滚动底部加载下一页指令的示例代码

 更新时间:2023年10月09日 15:20:27   作者:旧城梦空  
vue中监控滚动事件可以直接在mounted中绑定滚动事件,然后在销毁前解绑滚动事件,本文通过实例代码介绍vue实现滚动底部加载下一页指令的过程,感兴趣的朋友跟随小编一起看看吧

vue中监控滚动事件可以直接在mounted中绑定滚动事件,然后在销毁前解绑滚动事件,例如:

<script>
export default {
	mounted() {
		//我这里的事例监听的是window的滚动事件
		window.addEventListener('scroll', this.showbtn)
	},
	destroyed() {
    window.removeEventListener('scroll', this.showbtn)
  },
	methods:{
		showbtn() {
		//滚动事件的代码
		}
	}
}
</script>

但是如果在项目中用的比较多的话,每个页面都这样写就有点不合适了。那这个时候可以把滚动事件自定义成指令

Vue.directive('scroll',{
  bind(el,binding) {
    let p = 0
    let t = 0
    let down = true
    let timer = null
    el.handler = () => {
      p =  window.pageYOffset ||
        document.documentElement.scrollTop ||
        document.body.scrollTop
        if (t < p) {
          down = true
        } else {
          down = false
        }
        t = p
        let sign = 10
        let scrollHeight=document.documentElement.scrollHeight//滚动条的高度
        let clientHeight=document.documentElement.clientHeight//浏览器的可视高度
        const scrollDistance = scrollHeight -p -clientHeight
        if (scrollDistance < sign && down) {
          if (timer) clearTimeout(timer)
          timer = setTimeout(() => {
            binding.value()
          }, 300)
        }
    }
    setTimeout(() => {
      window.addEventListener('scroll',el.handler)
    },1000)
  },
  //只有绑定不解绑的话,会出现在页面加载的时候调用之前请求过的接口的情况,所以加上解绑比较好
  unbind(el) {
    window.removeEventListener('scroll',el.handler)
  }
})

到此这篇关于vue实现滚动底部加载下一页指令的文章就介绍到这了,更多相关vue滚动底部加载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vscode关闭Eslint语法检查的多种方式(保证有效)

    Vscode关闭Eslint语法检查的多种方式(保证有效)

    eslint是一个JavaScript的校验插件,通常用来校验语法或代码的书写风格,下面这篇文章主要给大家介绍了关于Vscode关闭Eslint语法检查的多种方式,文章通过图文介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 深入理解vue中slot与slot-scope的具体使用

    深入理解vue中slot与slot-scope的具体使用

    这篇文章主要介绍了深入理解vue中slot与slot-scope的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 关于el-select组件设置默认值的实现方式

    关于el-select组件设置默认值的实现方式

    这篇文章主要介绍了关于el-select组件设置默认值的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue:el-input输入时限制输入的类型操作

    vue:el-input输入时限制输入的类型操作

    这篇文章主要介绍了vue:el-input输入时限制输入的类型操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue+Vant实现下拉加载功能

    Vue+Vant实现下拉加载功能

    为了像微信一样方便地加载更多历史消息,这篇文章将为大家介绍我们如何使用vant组件来实现下拉加载功能,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-06-06
  • element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选功能

    element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选功能

    这篇文章主要介绍了element-ui tree 异步树实现勾选自动展开、指定展开、指定勾选,项目中用到了vue的element-ui框架,用到了el-tree组件,由于数据量很大,使用了数据懒加载模式,即异步树,需要的朋友可以参考下
    2022-08-08
  • vue3中实现文本显示省略号和tooltips提示框的方式详解

    vue3中实现文本显示省略号和tooltips提示框的方式详解

    在 B 端业务中,我们经常会遇到文本内容超出容器区域需显示省略号的需求,当鼠标移入文本时,会出现 Tooltip 显示完整内容,最近,我也遇到了这样的场景,接下来给大家介绍vue3中实现文本显示省略号和tooltips提示框的方式,需要的朋友可以参考下
    2024-04-04
  • Vue中axios的封装(报错、鉴权、跳转、拦截、提示)

    Vue中axios的封装(报错、鉴权、跳转、拦截、提示)

    这篇文章主要介绍了Vue中axios的封装(报错、鉴权、跳转、拦截、提示),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • vue2中使用sass并配置全局的sass样式变量的方法

    vue2中使用sass并配置全局的sass样式变量的方法

    这篇文章主要介绍了vue2中使用sass并配置全局的sass样式变量的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • vscode 开发Vue项目的方法步骤

    vscode 开发Vue项目的方法步骤

    这篇文章主要介绍了vscode 开发Vue项目的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论