在线演示

在线演示

大家在开发基于web的网站或者web应用中,常常在AJAX调用的过程中需要提示用户并且展示相关的“加载中”效果,类似的UI设计也非常多,比如,当点击一个按钮后,在它的旁边显示一个 “加载中” 文字,或者是添加一个“旋转GIF”动画效果图。

在今天这个教程中,我们将介绍来一个Ladda UI概念设计,帮助你设计不同的基于按钮的加载中效果,并且整合到Bootstrap3框架里,如下:

它可以方便的帮助你通过按钮来提示用户相关的“加载中”状态,并且支持不同的加载效果,配置也很简单,只需要在对应的按钮上添加data-style属性,如下:

  1. 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代码开发:

  1. var l =Ladda.create(this);
  2. l.start();

当AJAX请求完成后,可以调用如下停止:

  1. l.stop();

即完整了整个“加载中”的过程,其中包含了“disabled”当前的按钮的操作,非常方便,提高了开发的效率。

当然,如果你需要提示用户当前进度的话,它内置了一个进度条,你可以使用如下代码来设置当前进度:

  1. 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方法来处理事件,并且在处理过程中,使用进度条来指示当前的加载进度。

在附带的四个在线演示中,我们调用了不同的“加载中"特效,大家可以运行查看效果。

如果对于代码有任何问题,请在这里给我留言,我会给您解答,感谢阅读!

了解代码是如何一行一行编写出来的,请访问如下地址查看:

前端代码回放:http://www.gbtags.com/gb/rtreplayerpreview/9.htm

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

  1. RecyclerView的使用之多种Item加载布局

    精益求精,为了更加透彻熟练得掌握,本文再次给大家介石介绍下如何利用RecyclerView实现多Item布局的加载,多Item布局的加载的意思就是在开发过程中List的每一项可能根据需求的不同会加载不 ...

  2. Ladda – 把加载提示效果集成到按钮中,提升用户体验

    Ladda 是一组集成了加载提示的按钮,以弥合行动和反馈之间的时间间隔,提供更好的功能使用体验.主要用于在用户点击提交之后,向用户提供即时的反馈,让他们知道浏览器正在处用户提交的任务. 您可能感兴趣的 ...

  3. WPF 多线程 UI:设计一个异步加载 UI 的容器

    对于 WPF 程序,如果你有某一个 UI 控件非常复杂,很有可能会卡住主 UI,给用户软件很卡的感受.但如果此时能有一个加载动画,那么就不会感受到那么卡顿了.UI 的卡住不同于 IO 操作或者密集的 ...

  4. (转)[Unity3D]BuildPipeline.PushAssetDependencies 打包依赖包,优化UI Prefab的资源引用加载(坑爹之处)

    转自:http://blog.csdn.net/chiuan/article/details/39040421#reply 1:长话短说,UI Prefab中一般会交叉引用Atlas,那么打包时候我们 ...

  5. android仿今日头条App、多种漂亮加载效果、选择器汇总、记事本App、Kotlin开发等源码

    Android精选源码 android漂亮的加载效果 android各种 选择器 汇总源码 Android仿bilibili搜索框效果 Android记事本app.分类,涂鸦.添加图片或者其他附件 仿 ...

  6. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  7. iOS 开发UI篇 -- 懒加载学习

    1. 懒加载基本 懒加载--也称为延迟加载,即在需要的时候才加载( 效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实 ...

  8. fackbook的Fresco的多种图片加载方法以及解码过程

    上篇文章中我们提到了图片加载其实是用了三条线程,如果没看过的同学可以先了解下这里. fackbook的Fresco的Image Pipeline以及自身的缓存机制 那么今天我们就来探索一下如何在代码中 ...

  9. Android UI详解之Fragment加载

    使用Fragment的原因: 1. Activity间的切换不流畅 2. 模块化Activity,方便做局部动画(有时为了到达这一点要把多个布局放到一个activity里面,现在可以用多Fragmen ...

随机推荐

  1. java泛型理解。代码更明了。

    泛型数据java基础,但真正理解需要悉心品尝.毕竟在工作中用到的是在是太多了. 不要以为new ArrayList<>这就是泛型,这只能属于会使用. 在工作中,相对于现有的项目源码的数据库 ...

  2. asp.net core结合Gitlab-CI实现自动化部署

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.前言 在之前的文章中写过k8s+Jenkins+GitLab-自动化部署asp.net core项目 的topic,这次讲解一 ...

  3. http request GET 乱码分析

    提交一个GET请求 在浏览器地址栏或搜索框输入地址:http://www.baidu.com/content/衣服?keyword=衬衣 其中的中文会被浏览器进行编码,具体编码情况请参考阮大神:关于U ...

  4. poj2485(Kruskal)

    这道题显然是一道最小生成树的问题,参考算法导论中的Kruskal方法,先对路径长度进行排序,然后使用并查集(Disjoint Set Union)来判断节点是否连通,记录连接所有节点的最后一条路径的长 ...

  5. 获取token

    获取token 提示:openstack 这个是获取N版的方法 ,主要区别在于这个路径上(http://192.168.0.228:35357/v3/auth/tokens ),以前版本可能会是v2 ...

  6. 【UOJ 34】 #34. 多项式乘法 (FFT)

    [分析] 这个只是用来放模板..[其实我还没完全懂的.. 迭代 代替 递归: #include<cstdio> #include<cstdlib> #include<cs ...

  7. POJ3710 Christmas Game 博弈论 sg函数 树的删边游戏

    http://poj.org/problem?id=3710 叶子节点的 SG 值为0:中间节点的SG值为它的所有子节点的SG值加1后的异或和. 偶环可以视作一个点,奇环视为一条边(连了两个点). 这 ...

  8. 内功心法 -- java.util.LinkedList<E> (2)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  9. Mysql -- 设置中国时区时间

       Mysql -- 设置中国时区时间 查看mysql的时区设置 mysql> show variables like '%time_zone%'; 修改mysql的时区设置, 注:mysql ...

  10. Delphi XE 4,Rad Studio XE 4 官方下载,更新Update 1(附破解)

    http://blog.csdn.net/maxwoods/article/details/8842889 XE4 Update1 下载: http://altd.embarcadero.com/do ...