使用Bootstrap3和Ladda UI实现的多种按钮“加载中”效果体验

大家在开发基于web的网站或者web应用中,常常在AJAX调用的过程中需要提示用户并且展示相关的“加载中”效果,类似的UI设计也非常多,比如,当点击一个按钮后,在它的旁边显示一个 “加载中” 文字,或者是添加一个“旋转GIF”动画效果图。
在今天这个教程中,我们将介绍来一个Ladda UI概念设计,帮助你设计不同的基于按钮的加载中效果,并且整合到Bootstrap3框架里,如下:
![]()
它可以方便的帮助你通过按钮来提示用户相关的“加载中”状态,并且支持不同的加载效果,配置也很简单,只需要在对应的按钮上添加data-style属性,如下:
- data-style="slide-down"
在接下来的教程中,我们将介绍如何将Ladda UI设计和Bootstrap3整合起来,提供一个完整的“加载中”效果体验。
相关类库
首先导入相关Bootstrap和Ladda类库:
<scripttype="text/javascript"src="js/jquery-1.7.1.min.js"></script>
<scripttype="text/javascript"src="js/jquery.jribbble.min.js"></script>
<scriptsrc="js/bootstrap.min.js"></script>
<scriptsrc="js/spin.js"></script>
<scriptsrc="js/ladda.js"></script>
这里我们同时导入了Jdribbble插件来实现AJAX相关的效果(当然,作为数据提供,你可以使用任何其它服务,或者自己的AJAX),获取来自dribbble.com的最佳设计图片。
如果你不需要展示进度效果的话,基本上只需要在AJAX相关请求中添加如下代码即可完成javascript代码开发:
- var l =Ladda.create(this);
- l.start();
当AJAX请求完成后,可以调用如下停止:
- l.stop();
即完整了整个“加载中”的过程,其中包含了“disabled”当前的按钮的操作,非常方便,提高了开发的效率。
当然,如果你需要提示用户当前进度的话,它内置了一个进度条,你可以使用如下代码来设置当前进度:
- l.setProgress(0.1);
Javacript书写完毕了,你需要在HTML中定义使用的加载中效果,如下:
<buttontype="button"class="btn btn-info btn-lg ladda-button center-block"id="showmore"title="显示更多前端代码回放"data-style="slide-down">
<spanclass="ladda-label">
更多设计
</span>
</button>
这里我们定义使用
data-style="slide-down"
来设置需要的加载中效果,这个效果是设置一个向下幻灯的切换效果,更多的效果,请访问:http://lab.hakim.se/ladda/
相关的CSS
<linkrel="stylesheet"type="text/css"href="css/bootstrap.min.css"/>
<linkrel="stylesheet"type="text/css"href="css/ladda-themeless.css"/>
<linkrel="stylesheet"type="text/css"href="css/gbtags.css"/>
这里我们引用了相关的CSS,以保证Ladda可以正常的和Bootstrap3一起正常工作。
完整代码
如果你曾阅读过相关教程:Bootstrap3和jQuery实现响应式iOS/Android风格滚动到页顶(底)弹跳效果 ,那么以下代码应该非常容易理解:
$(document).ready(function(){
//定义相关变量
var $wallcontent = $('#wallcontent'), pagenum=1, $showmore = $('#showmore');
function loadshots(){
var l =Ladda.create(this);
l.start();
l.setProgress(0.1);
$showmore.find('.ladda-label').text('loading...');
//调用jdribbble相关API获取远程数据内容
$.jribbble.getShotsByList('popular',function(data){
var items =[];
$.each(data.shots,function(i, shot){
items.push('<article class="col-md-2 col-sm-3 col-xs-4">');
items.push('<a href="'+ shot.url +'" target="_blank" class="linkc">');
items.push('<img class="img-responsive" src="'+ shot.image_teaser_url +'" alt="'+ shot.title +'">');
items.push('</a>');
items.push('</article>');
l.setProgress(0.1+0.02*i);
});
var newEls = items.join(''), tmpcontent = $(newEls);
l.setProgress(0.9);
//以上代码生成了需要显示的dirbbble设计内容,下面代码中我们将这些内容添加到HTML容器中
$wallcontent.append(tmpcontent);
$showmore.find('.ladda-label').text('更多设计');
l.setProgress(1);
l.stop();
},{page:pagenum, per_page:24});
pagenum++;
}
//绑定方法到加载更多按钮
$showmore.bind('click', loadshots);
$showmore.trigger('click');
});
以上代码,主要通过点击“更多设计”来获取最受欢迎的dribbble设计作品,这里我们通过绑定click方法来处理事件,并且在处理过程中,使用进度条来指示当前的加载进度。
![]()
在附带的四个在线演示中,我们调用了不同的“加载中"特效,大家可以运行查看效果。
如果对于代码有任何问题,请在这里给我留言,我会给您解答,感谢阅读!
了解代码是如何一行一行编写出来的,请访问如下地址查看:
使用Bootstrap3和Ladda UI实现的多种按钮“加载中”效果体验的更多相关文章
- RecyclerView的使用之多种Item加载布局
精益求精,为了更加透彻熟练得掌握,本文再次给大家介石介绍下如何利用RecyclerView实现多Item布局的加载,多Item布局的加载的意思就是在开发过程中List的每一项可能根据需求的不同会加载不 ...
- Ladda – 把加载提示效果集成到按钮中,提升用户体验
Ladda 是一组集成了加载提示的按钮,以弥合行动和反馈之间的时间间隔,提供更好的功能使用体验.主要用于在用户点击提交之后,向用户提供即时的反馈,让他们知道浏览器正在处用户提交的任务. 您可能感兴趣的 ...
- WPF 多线程 UI:设计一个异步加载 UI 的容器
对于 WPF 程序,如果你有某一个 UI 控件非常复杂,很有可能会卡住主 UI,给用户软件很卡的感受.但如果此时能有一个加载动画,那么就不会感受到那么卡顿了.UI 的卡住不同于 IO 操作或者密集的 ...
- (转)[Unity3D]BuildPipeline.PushAssetDependencies 打包依赖包,优化UI Prefab的资源引用加载(坑爹之处)
转自:http://blog.csdn.net/chiuan/article/details/39040421#reply 1:长话短说,UI Prefab中一般会交叉引用Atlas,那么打包时候我们 ...
- android仿今日头条App、多种漂亮加载效果、选择器汇总、记事本App、Kotlin开发等源码
Android精选源码 android漂亮的加载效果 android各种 选择器 汇总源码 Android仿bilibili搜索框效果 Android记事本app.分类,涂鸦.添加图片或者其他附件 仿 ...
- ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询
ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...
- iOS 开发UI篇 -- 懒加载学习
1. 懒加载基本 懒加载--也称为延迟加载,即在需要的时候才加载( 效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实 ...
- fackbook的Fresco的多种图片加载方法以及解码过程
上篇文章中我们提到了图片加载其实是用了三条线程,如果没看过的同学可以先了解下这里. fackbook的Fresco的Image Pipeline以及自身的缓存机制 那么今天我们就来探索一下如何在代码中 ...
- Android UI详解之Fragment加载
使用Fragment的原因: 1. Activity间的切换不流畅 2. 模块化Activity,方便做局部动画(有时为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragmen ...
随机推荐
- 【交叉染色法判断二分图】Claw Decomposition UVA - 11396
题目链接:https://cn.vjudge.net/contest/209473#problem/C 先谈一下二分图相关: 一个图是二分图的充分必要条件: 该图对应无向图的所有回路必定是偶环(构成该 ...
- 关于maven工程的几个BUG
换了个新的环境,重新导入的maven工程出现了2个BUG: 1.Could not calculate build plan: Plugin org.apache.maven.plugins:mave ...
- React Native 系列(五)
前言 本系列是基于React Native版本号0.44.3写的.任何一款 App 都有界面之间数据传递的这个步骤的,那么在RN中,组件间是怎么传值的呢?这篇文章将介绍到顺传.逆传已经通过通知传值. ...
- 矩阵&行列式
# 代数 排列 对换,对于一个排列操作,对于一个偶排列一次对换之后变为奇排列 反之变为偶排列 行列式 N阶行列式室友N^2个数aij(i,j = 1,2,3,...n) 行列式的数=\(\sum_ { ...
- Educational Codeforces Round 11 D. Number of Parallelograms 暴力
D. Number of Parallelograms 题目连接: http://www.codeforces.com/contest/660/problem/D Description You ar ...
- IDA64 Fatal error before kernel init
http://www.tuicool.com/articles/7FZVZna 第一次看到这个错误还以为是修改文件导致的,但是觉得又不大像,因为在Win7底下是完全正常的.搜索了一下才发现是由于插件导 ...
- ida sdk add_struc_member array
tid_t tid = get_struc_id ( "foo_type" ) ; struc_t * sptr = get_struc ( tid ); if ( sptr == ...
- Struts2中表单与Action传递数据三种方式
1. Action中的属性与表单中的属性一致就可以 JSP中的表单 <form action="login.action" method="post&q ...
- POJ 1293 - Duty Free Shop 01背包记录所选物品
裸的01背包.dp[x]只要是bool型记录当前空间是否可用.. 而为了找到用了哪些物品..dp[x]设置为int型..进行记录.. Program: #include<iostream> ...
- SharePoint_Config_Log file size
Been doing a routine check of my servers, and noticed that our SharePoint server was lacking some fr ...