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 相关文章推荐
javascript 禁止复制网页
Jun 11 Javascript
图片延迟加载的实现代码(模仿懒惰)
Mar 29 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
Aug 23 Javascript
js实现编辑div节点名称的方法
Dec 17 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
Jun 25 Javascript
window.onload绑定多个事件的两种解决方案
May 15 Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
Feb 27 Javascript
深入浅析angular和vue还有jquery的区别
Aug 13 jQuery
JavaScript设计模式之装饰者模式实例详解
Jan 17 Javascript
详解vue中的父子传值双向绑定及数据更新问题
Jun 13 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
Oct 27 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
自动跳转中英文页面
2006/10/09 PHP
用 PHP5 轻松解析 XML
2006/12/04 PHP
php $_SERVER当前完整url的写法
2009/11/12 PHP
PHP字符串处理的10个简单方法
2010/06/30 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
零基础php编程好学吗
2019/10/11 PHP
JS面向对象编程之对象使用分析
2010/08/19 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
javascript实现动态侧边栏代码
2014/02/19 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
2016/08/16 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
新手快速上手webpack4打包工具的使用详解
2019/01/28 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
2020/10/27 Javascript
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Django原生sql也能使用Paginator分页的示例代码
2017/11/15 Python
python文件及目录操作代码汇总
2020/07/08 Python
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
触摸春天教学反思
2014/02/03 职场文书
自我推荐信范文
2014/05/09 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
学校花圃的标语
2014/06/18 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
财务部岗位职责
2015/02/03 职场文书