vue实现ajax滚动下拉加载,同时具有loading效果(推荐)


Posted in Javascript onJanuary 11, 2017

代码如下所示:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>vue测试ajax的使用</title>
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
*{ padding:0; margin:0}
.list ul li{padding:10px 5px 10px 10px;overflow:hidden;zoom:1;position:relative;border-bottom:1px solid #e8e8e8;}
.list ul li .img{margin-right:10px;display:block;width:60px;float:left;}
.list ul li img{width:60px;height:60px;border-radius:8px;}
.list ul li p{-webkit-box-flex:1;color:#777;overflow:hidden;padding-right:70px;}.list ul li p em{margin:7px 0;}
.list ul li p a{display:block;height:16px;line-height:16px;overflow:hidden;font-size:15px;}
.list ul li p span{display:block;line-height:16px;height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:12px "\5FAE\8F6F\96C5\9ED1";}
.list ul li p u{margin:0 6px;padding:0 6px;border-left:1px solid #d9d9d9;border-right:1px solid #d9d9d9;}
.list ul li .btn {width: 40px;height: 25px;padding-top: 35px;color: #65bb0a;line-height:25px;text-align:center;background: none;position:absolute;right:5px; top:12px}
.list ul li .btn .bg {position: absolute;left: 0;top: 0;display: inline-block;width: 100%;height: 30px;repeat;background-size: 26px auto;}
.get-more,.loading{display:block;padding:15px 0; line-height:16px;text-align:center;font-size:14px;}
.loading{width:75px; margin:0 auto; background:url(imgs/loading.gif) 0 center no-repeat; padding-left:15px; background-size:13px auto}
</style>
</head>
<body>
<div class="list" id="app" v-scroll="getMore">
 <ul>
 <li v-for="item in games">
  <a v-bind:href="item.url" class="img"><img v-bind:src="item.img"></a>
  <p>
  <a v-bind:href="item.url">{{item.title}}</a>
  <em class="lstar4"></em>
  <span>{{item.server}}<u>39.9M</u>v2.1.3</span>
  </p>
  <a v-bind:href="item.url" class="btn"><em class="bg"></em>下载</a>
 </li>
 </ul>
 <div>
 <p class="get-more" v-on:click="getMore()" v-show="switchShow">点击加载更多</p>
 <p class="loading" v-show="!switchShow">加载中...</p>
 </div>
</div>
<script src="js/vue.js"></script>
<script src="http://cdn.bootcss.com/vue-resource/1.0.3/vue-resource.min.js"></script>
<!--<script src="http://211.149.193.19:8090/vue-tutorials/04.OAuth/jquery-zepto/js/zepto.js"></script>-->
<script>
var vm = new Vue({
 el:'#app',
 data: {
 url: 'http://*******.com/dynamic.php?s=/Afs/ajaxHisTestServerData/cate_id/4/sta/',
 nowPage: 0,
 switchShow:false,
 games: []
 },
 methods: {
 moreFn: function (itemIndex) {
  // console.log(this.nowPage)
  this.$http.jsonp(this.url + itemIndex*10).then(function (response) {
  this.games=this.games.concat(response.body);
  this.switchShow=!this.switchShow;
  }, function (response) {
   console.log(response)
  });
 },
 getMore: function () {
  this.switchShow=!this.switchShow;
  this.nowPage++;
  this.moreFn(this.nowPage);
 },
 init: function () {
  this.moreFn(this.nowPage);
 }
 },
 directives: {// 自定义指令
 scroll: {
 bind: function (el, binding){
  window.addEventListener('scroll', function () {
  if(document.body.scrollTop + window.innerHeight >= el.clientHeight) {
  var fnc = binding.value; 
  fnc(); 
  }
  })
 }
 }
 }
})
vm.init();
</script>
</body>
</html>

功能介绍:

1.vue进行ajax请求加载;

2.实现滚动,点击加载数据;

3.通过自定义实现loading 效果;

难点:

1.需要官方的vue-resource组件,进行ajax请求,所以需要了解该API;

2.loading,通过v-show进行判断显示不同的loading 效果;

3.自定义指令,也是最难点,所以需要了解基本的自定义指令API;

vue实现ajax滚动下拉加载,同时具有loading效果(推荐)

以上所述是小编给大家介绍的vue实现ajax滚动下拉加载,同时具有loading效果(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
翻译整理的jQuery使用查询手册
Mar 07 Javascript
js加解密 脚本解密
Feb 22 Javascript
Dom 是什么的详细说明
Oct 25 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
Jan 12 Javascript
Angular.js跨controller实现参数传递的两种方法
Feb 20 Javascript
Vue如何实现组件的源码解析
Jun 08 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
利用Javascript实现一套自定义事件机制
Dec 14 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
Feb 21 Javascript
vue+echarts实现多条折线图
Mar 21 Vue.js
前端框架ECharts dataset对数据可视化的高级管理
Dec 24 Javascript
浅谈JavaScript中promise的使用
Jan 11 #Javascript
JS多文件上传的实例代码
Jan 11 #Javascript
微信小程序开发(一) 微信登录流程详解
Jan 11 #Javascript
Javascript中return的使用与闭包详解
Jan 11 #Javascript
jQuery对table表格进行增删改查
Dec 22 #Javascript
javascript基础知识讲解
Jan 11 #Javascript
bootstrap侧边栏圆点导航
Jan 11 #Javascript
You might like
php常用图片处理类
2016/03/16 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
python中类的一些方法分析
2014/09/25 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Django Admin实现三级联动的示例代码(省市区)
2018/06/22 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
2019/01/24 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
详解Django-restframework 之频率源码分析
2019/02/27 Python
Python函数和模块的使用总结
2019/05/20 Python
python多维数组分位数的求取方式
2020/03/03 Python
Python通过format函数格式化显示值
2020/10/17 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
高职教师岗位职责
2013/12/24 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
公司成立感言
2014/01/11 职场文书
元旦促销方案
2014/03/15 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
python基础之函数的定义和调用
2021/10/24 Python
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle