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 相关文章推荐
当某个文本框成为焦点时即清除文本框内容
Apr 28 Javascript
js中日期的加减法
May 06 Javascript
ECMAScript中函数function类型
Jun 03 Javascript
javascript对象的创建和访问
Mar 08 Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 Javascript
jQuery Ajax全解析
Feb 13 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
vue计算属性computed的使用方法示例
Mar 13 Javascript
layui富文本编辑器前端无法取值的解决方法
Sep 18 Javascript
基于JavaScript实现轮播图效果
Jan 02 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
40个迹象表明你还是PHP菜鸟
2008/09/29 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
jquery ajaxSubmit 异步提交的简单实现
2014/02/28 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
推荐11个实用Python库
2015/01/23 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python中模块string.py详解
2017/03/12 Python
Python实现的概率分布运算操作示例
2017/08/14 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
幼儿园大班教学反思
2014/02/10 职场文书
体育教学随笔感言
2014/02/24 职场文书
揭牌仪式主持词
2014/03/19 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
说明书格式及范文
2014/05/07 职场文书
环境整治工作方案
2014/05/18 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书