Vue组件实现触底判断


Posted in Javascript onJune 26, 2019

本文实例为大家分享了Vue组件实现触底判断的具体代码,供大家参考,具体内容如下

非常简陋的代码,以后有空回来完善

子组件代码:

<template>
 <div class="scroll"></div>
</template>
 
<script>
 export default {
 name:'Scroll',
 methods:{
 scrollEvent(){
 if (document.documentElement.scrollTop
      + document.documentElement.clientHeight 
     >= document.body.scrollHeight) {
  this.onBottom();
 }
 }
 },
 props:{
 onBottom:Function
 },
 mounted(){
 window.addEventListener('scroll', this.scrollEvent,false);
 },
 destroyed () {
   window.removeEventListener('scroll', this.scrollEvent,false);
  }
 }
</script>

document.documentElement.scrollTop + document.documentElement.clientHeight >= document.body.scrollHeightb表示已经到页面底部了,那么就触发函数onBottom,函数onBottom是父组件传递过来的用于回调的函数 

父组件代码:

把子组件scroll放在父组件的底部(切记,不然函数不起作用),用作触底判断。

<template>
 <div class="wrap">
 <scroll :onBottom = "onBottom"></scroll>
 </div>
</template>
 
<script>
 import Scroll from '@/components/scroll'
 export default {
 name: 'roll',
 components:{
 Scroll,
 },
 methods:{
 onBottom(){
  console.log('bottom')
 }
 }
 }
</script>
<style type="text/css" lang="stylus" scoped>
 .wrap{
 height: 1000px;
 background: grey;
 width: 100%;
 }
</style>

父子传值也可以传递data里面的函数。这里我的回调函数里面进行的操作是到底部后console出bottom

效果:

可以看到触发频次比较高,其实子组件里面应该加一个函数节流函数,限制触发频率。

Vue组件实现触底判断

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript定义类的几种方式总结
Jan 06 Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
Dec 03 Javascript
详解Bootstrap插件
Apr 25 Javascript
JavaScript对象创建模式实例汇总
Oct 03 Javascript
js验证手机号、密码、短信验证码代码工具类
Jun 24 Javascript
学习使用Bootstrap栅格系统
May 11 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
Mar 28 Javascript
vue 微信授权登录解决方案
Apr 10 Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 Javascript
JS原型与继承操作示例
May 09 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
Jul 24 Javascript
vue-week-picker实现支持按周切换的日历
Jun 26 #Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 #Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 #Javascript
ES6 Symbol数据类型的应用实例分析
Jun 26 #Javascript
亲自动手实现vue日历控件
Jun 26 #Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 #Javascript
ES6 Generator函数的应用实例分析
Jun 26 #Javascript
You might like
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
PHP插入排序实现代码
2013/04/04 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
2015/02/28 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
bootstrap select插件封装成Vue2.0组件
2017/04/17 Javascript
手把手教你把nodejs部署到linux上跑出hello world
2017/06/19 NodeJs
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python的迭代器与生成器实例详解
2014/07/16 Python
零基础写python爬虫之urllib2使用指南
2014/11/05 Python
Python中格式化format()方法详解
2017/04/01 Python
python 动态加载的实现方法
2017/12/22 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
python做接口测试的必要性
2019/11/20 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
StubHub巴西:购买和出售您的门票
2016/07/22 全球购物
药学专业毕业生求职信
2013/10/20 职场文书
《春到梅花山》教学反思
2014/04/16 职场文书
机械机修工岗位职责
2014/08/03 职场文书
六年级小学生评语
2014/12/26 职场文书
实习单位推荐信
2015/03/27 职场文书