loading态-javascript--Mr.Ember
前言
动态加载数据时会出现页面空白,对于我们这种颜控肯定是不能接受的。所以本文用纯CSS方式封装了一个loading插件。
1. html代码
<div class="loading"> <div class="loading-box"> <span class="line1"></span> <span class="line2"></span> <span class="line3"></span> <span class="line4"></span> <span class="line5"></span> <span class="line6"></span> <span class="line7"></span> <span class="line8"></span> <p>数据加载中...</p> </div> </div>
2. css实现
.loading { width: 900px; height: 500px; margin: 0 auto; padding: 200px; } .loading-box { width: 180px; height: 60px; margin: 0 auto; position: relative; } .loading span { width: 4px; height: 20px; background-color: #ccc; position: absolute; left: 38px; -webkit-animation: loading 1s infinite; } .loading .line1 { background-color: #8C93A0; -webkit-transform: rotate(0deg); transform: rotate(0deg); -webkit-animation-delay: .3s; } .loading .line2 { top: 5px; left: 52px; -webkit-transform: rotate(45deg); transform: rotate(45deg); -webkit-animation-delay: .4s; } .loading .line3 { top: 18px; left: 57px; -webkit-transform: rotate(90deg); transform: rotate(90deg); -webkit-animation-delay: .5s; } .loading .line4 { top: 31px; left: 52px; -webkit-transform: rotate(135deg); transform: rotate(135deg); -webkit-animation-delay: .6s; } .loading .line5 { top: 37px; -webkit-animation-delay: .7s; } .loading .line6 { top: 32px; left: 24px; -webkit-transform: rotate(-135deg); transform: rotate(-135deg); -webkit-animation-delay: .8s; } .loading .line7 { top: 18px; left: 19px; -webkit-transform: rotate(-90deg); transform: rotate(-90deg); -webkit-animation-delay: .9s; } .loading .line8 { top: 5px; left: 24px; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-animation-delay: 1s; } .loading p { padding-top: 70px; color: #8C93A0; } @-webkit-keyframes loading { 0% { background-color: #ccc; } 50% { background-color: #000; } 100% { background-color: #ccc; } }
3. js代码
define(function(require, exports) { var tmpStr = '<div class="loading-box">' + '<span class="line1"></span>' + '<span class="line2"></span>' + '<span class="line3"></span>' + '<span class="line4"></span>' + '<span class="line5"></span>' + '<span class="line6"></span>' + '<span class="line7"></span>' + '<span class="line8"></span>' + '<p>数据加载中...</p>' + '</div>'; // 渲染页面 $(".loading").append(tmpStr); // 改变状态显示loading var start = function(targetClassName) { $(".loading").show(); $("" + targetClassName).hide(); } //显示要渲染的目标数据 var end = function(targetClassName) { $(".loading").hide(); $("" + targetClassName).show(); } exports.start = start; exports.end = end; });
上面使用了默认模板,在页面中不用把所有的HTML都写入了。只需在HTML中写如下代码即可:
<!-- 加载中 load--> <div class="loading"></div>
最终效果如下:


浙公网安备 33010602011771号