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源码分析-03构造jQuery对象-源码结构和核心函数
Nov 14 Javascript
JS上传前预览图片实例
Mar 25 Javascript
javascript实现九宫格相加数值相等
May 28 Javascript
详解jQuery中的deferred对象的使用(一)
May 27 Javascript
深入理解jquery中的each用法
Dec 14 Javascript
Angular2 Service实现简单音乐播放器服务
Feb 24 Javascript
利用Node.js对文件进行重命名
Mar 12 Javascript
微信小程序实现保存图片到相册功能
Nov 30 Javascript
vue实现菜单切换功能
May 08 Javascript
JS计算斐波拉切代码实例
Sep 12 Javascript
json解析大全 双引号、键值对不在一起的情况
Dec 06 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
Aug 10 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实现文件上传二法
2006/10/09 PHP
一个php作的文本留言本的例子(四)
2006/10/09 PHP
PHP实现用户认证及管理完全源码
2007/03/11 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHP回调函数简单用法示例
2019/05/08 PHP
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
2016/06/24 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
认识jQuery的Promise的具体使用方法
2017/10/10 jQuery
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
node.js遍历目录的方法示例
2018/08/01 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
Python中endswith()函数的基本使用
2015/04/07 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
python中文分词库jieba使用方法详解
2020/02/11 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
Python类及获取对象属性方法解析
2020/06/15 Python
协程Python 中实现多任务耗资源最小的方式
2020/10/19 Python
python绘制雷达图实例讲解
2021/01/03 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
仓库理货员岗位职责
2013/12/18 职场文书
施工安全标语
2014/06/07 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
离婚协议书范本
2015/01/26 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
律师函格式范本
2015/05/27 职场文书