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 风格的HTML文本转义
Jul 01 Javascript
js Array操作的最简短最容易理解方法
Dec 09 Javascript
JS延迟加载加快页面打开速度示例代码
Dec 30 Javascript
jquery实现图片随机排列的方法
May 04 Javascript
js如何实现淡入淡出效果
Nov 18 Javascript
Angular工具方法学习
Dec 26 Javascript
canvas实现绘制吃豆鱼效果
Jan 12 Javascript
jQuery插件版本冲突的处理方法分析
Jan 16 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
Jun 13 Javascript
一文让你彻底搞清楚javascript中的require、import与export
Sep 24 Javascript
vue-cli webpack2项目打包优化分享
Feb 07 Javascript
ES6中异步对象Promise用法详解
Jul 31 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
js精度溢出解决方案
2012/12/02 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
2020/02/27 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
matplotlib savefig 保存图片大小的实例
2018/05/24 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
Python Merge函数原理及用法解析
2020/09/16 Python
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
HTML5标签使用方法详解
2015/11/27 HTML / CSS
优秀士兵个人事迹材料
2014/01/19 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
运动会开幕式主持词
2014/03/28 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
python用tkinter开发的扫雷游戏
2021/06/01 Python
Java常用函数式接口总结
2021/06/29 Java/Android
Python实现打乒乓小游戏
2021/09/25 Python
Pygame Draw绘图函数的具体使用
2021/11/17 Python
JavaScript实现两个数组的交集
2022/03/25 Javascript
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技