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 相关文章推荐
建立良好体验度的Web注册系统ajax
Jul 09 Javascript
JObj预览一个JS的框架
Mar 13 Javascript
Js callBack 返回前一页的js方法
Nov 30 Javascript
利用JS判断用户是否上网(连接网络)
Dec 23 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
动态加载js、css的实例代码
May 26 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
Jun 08 Javascript
vuejs响应用户事件(如点击事件)
Mar 14 Javascript
vue和webpack打包项目相对路径修改的方法
Jun 15 Javascript
微信小程序提交form操作示例
Dec 30 Javascript
layui插件表单验证提交触发提交的例子
Sep 09 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
Apr 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
php实现12306余票查询、价格查询示例
2014/04/17 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
基于Jquery的温度计动画效果
2010/06/18 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
nodejs中实现sleep功能实例
2015/03/24 NodeJs
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
js array数组对象操作方法汇总
2019/03/18 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
小程序实现录音功能
2020/09/22 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
Python制作简单的网页爬虫
2015/11/22 Python
Python脚本实现虾米网签到功能
2016/04/12 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
军训鉴定表自我鉴定
2014/02/13 职场文书
研修第一天随笔感言
2014/02/15 职场文书
升学宴主持词
2014/04/02 职场文书
职务说明书范文
2014/05/07 职场文书
初一年级组工作总结
2015/08/12 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
总结Python使用过程中的bug
2021/06/18 Python
springboot读取nacos配置文件
2022/05/20 Java/Android
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers