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 相关文章推荐
js的闭包的一个示例说明
Nov 18 Javascript
document.createElement()用法及注意事项(ff下不兼容)
Mar 13 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
javascript多物体运动实现方法分析
Jan 08 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
Mar 06 Javascript
javascript学习之json入门
Dec 22 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
Mar 15 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
Sep 30 Javascript
Angular 实现输入框中显示文章标签的实例代码
Nov 07 Javascript
Vue中全局变量的定义和使用
Jun 05 Javascript
5分钟快速看懂ES6中的反射与代理
Dec 19 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 Vue.js
浅谈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文件操作实现代码分享
2011/09/01 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
JavaScript 参考教程
2006/12/29 Javascript
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
js控制输入框获得和失去焦点时状态显示的方法
2015/01/30 Javascript
一分钟理解js闭包
2016/05/04 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
javascript使用btoa和atob来进行Base64转码和解码
2017/03/20 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
JavaScript canvas动画实现时钟效果
2020/02/10 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
Python高级property属性用法实例分析
2019/11/19 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
Aquatalia官网:意大利著名鞋履品牌
2019/09/26 全球购物
俄罗斯首家面向中国消费者的一站式购物网站:Wruru
2020/05/08 全球购物
SQL Server笔试题
2012/01/10 面试题
委托培训协议书
2014/11/17 职场文书
项目建议书
2015/02/04 职场文书
党员带头倡议书
2015/04/29 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
分析ZooKeeper分布式锁的实现
2021/06/30 Java/Android
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android