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 学习第六课 实现一个Ajax的TreeView
May 17 Javascript
jquery如何把参数列严格转换成数组实现思路
Apr 01 Javascript
JS判定是否原生方法
Jul 22 Javascript
js无刷新操作table的行和列
Mar 27 Javascript
JS实现很酷的EMAIL地址添加功能实例
Feb 28 Javascript
JavaScript中的acos()方法使用详解
Jun 14 Javascript
javascript实现3D变换的立体圆圈实例
Aug 06 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
vue移动端下拉刷新和上拉加载的实现代码
Sep 08 Javascript
vue中各种通信传值方式总结
Feb 14 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
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
php创建sprite
2014/02/11 PHP
php中函数前加&amp;符号的作用分解
2014/07/08 PHP
4种PHP异步执行的常用方式
2015/12/24 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
鼠标经过tr时,改变tr当前背景颜色
2014/01/13 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
Bootstrap3 模态框使用实例
2017/02/22 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
微信小程序轮播图swiper代码详解
2020/12/01 Javascript
Python修改Excel数据的实例代码
2013/11/01 Python
详细介绍Python函数中的默认参数
2015/03/30 Python
Django实现学员管理系统
2019/02/26 Python
Python3实现的简单三级菜单功能示例
2019/03/12 Python
wxPython实现画图板
2020/08/27 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
初三学生评语大全
2014/04/24 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python