由于我的网页加载速度确实慢的可以,所以就生出了在加载时添加个加载动画,终于可以了
适合懂一点前端的人看,代码需要改,或者直接从博主这里学,查看源代码
1.第一种
这是博客园主题扒下来的
div#loading, a[name=top] {
background-color: #f0f0f0;
z-index: 1099;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh
}
https://github.com/BNDong/Cnblogs-Theme-SimpleMemory/blob/master/src/script/loading.js
如何使用呢?
if (initCheck()) {
var sidebarHtml =
'<div id="loading"></div>' +
'<div id="bottomProgressBar"></div>' +
'<div id="rightMenu"></div>';
loading: {
rebound: {
tension: 16,
friction: 5
},
window.cnblogsConfigDefault.hook = {
// loading 开始前
beforeLoading: function (loading) {
// console.log('beforeLoading');
},
// loading 结束后
afterLoading: function (e, loading) {
// console.log('afterLoading');
},
// 页面标签变化
pageLabelChanges: function (e, text) {
// console.log('pageLabelChanges');
},
// 渲染代码开始前
beforeCodeHighlighting: function (e) {
// console.log('beforeCodeHighlighting');
},
// 渲染代码结束后
afterCodeHighlighting: function (e) {
// console.log('afterCodeHighlighting');
},
// 日夜间模式设置
dayNightControl: function (e, type) {
// console.log('dayNightControl');
},
// 页面初始化结束
pageInitEnd: function (e) {
// console.log('pageInitEnd');
},
};
// load loadingJs
$.getScript(getJsDelivrUrl('loading.js'), function () {
// Loading start
window.cnblogsConfig.hook.beforeLoading(pageLoading);
pageLoading.initRebound();
pageLoading.initSpinner();
pageLoading.spinner.init(pageLoading.spring, true);
$.getScript(getJsDelivrUrl('lib/jquery.mCustomScrollbar.min.js'), function () {
$.getScript(getJsDelivrUrl('lib/require.min.js'), function () {
$.getScript(getJsDelivrUrl('config.js'), function () {
var staticResource = [
// 'optiscroll', 'ToProgress', 'rotate',
'optiscroll_ToProgress_rotate',
'snapSvg', 'classie', 'main4', 'tools'];
require(staticResource, function() {
require(['base'], function() {
(new Base).init();
});
});
});
});
});
});
}
第二种
默认情况下如果网站请求速度慢,所以会有一段时间的空白页面等等,用户体验效果不好,见到很多的页面都有预加载的效果,加载之前先加载一个动画,后台进程继续加载页面内容,当页面内容加载完之后再退出动画显示内容,这样的用户体验更好。
例如此链接:http://crusader12.com/C12HoverAlls/
这篇文章是从上面链接的内容上拔下来的,操作流程很简单,只有两部如下
首先定义一个loader.css文件,如下内容
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index:999999;}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
/* COLOR 1 */
border-top-color: #FFF;
-webkit-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-ms-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-moz-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-o-animation: spin 2s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
animation: spin 2s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */
z-index:1001;}
#loader:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
/* COLOR 2 */
border-top-color: #FFF;
-webkit-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-moz-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-o-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-ms-animation: spin 3s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
animation: spin 3s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */}
#loader:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
/* COLOR 3 */
-moz-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-o-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-ms-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
-webkit-animation: spin 1.5s linear infinite; /* Chrome, Opera 15+, Safari 5+ */
animation: spin 1.5s linear infinite; /* Chrome, Firefox 16+, IE 10+, Opera */}
@-webkit-keyframes spin {
0%{
-webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(0deg); /* IE 9 */
transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
}100%{
-webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(360deg); /* IE 9 */
transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */}
}
@keyframes spin {
0%{
-webkit-transform: rotate(0deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(0deg); /* IE 9 */
transform: rotate(0deg); /* Firefox 16+, IE 10+, Opera */
}100%{
-webkit-transform: rotate(360deg); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: rotate(360deg); /* IE 9 */
transform: rotate(360deg); /* Firefox 16+, IE 10+, Opera */}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #1abc9c; /* Old browsers */
z-index: 1000;
-webkit-transform: translateX(0); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: translateX(0); /* IE 9 */
transform: translateX(0); /* Firefox 16+, IE 10+, Opera */}
#loader-wrapper .loader-section.section-left {left: 0;}
#loader-wrapper .loader-section.section-right {right: 0;}
/* Loaded */
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: translateX(-100%); /* IE 9 */
transform: translateX(-100%); /* Firefox 16+, IE 10+, Opera */
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: translateX(100%); /* IE 9 */
transform: translateX(100%); /* Firefox 16+, IE 10+, Opera */
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform: translateY(-100%); /* IE 9 */
transform: translateY(-100%); /* Firefox 16+, IE 10+, Opera */
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;}
/* JavaScript Turned Off */
.no-js #loader-wrapper {display: none;}
.no-js h1 {color: #222222;}
#loader-wrapper .load_title {
font-family:'Open Sans';
color:#FFF; font-size:19px; width:100%; text-align:center; z-index:9999999999999; position:absolute; top:60%; opacity:1; line-height:30px; }
#loader-wrapper .load_title span { font-weight:normal; font-style:italic; font-size:13px; color:#FFF; opacity:0.5;}
第二步:在网站页面header标签和body标签加入以下代码
// 引入jquery
<!--页面加载start-->
<link rel="stylesheet" type="text/css" href="css/loader.min.css">
<script type="text/javascript">
// 等待所有加载
$(window).load(function(){
$('body').addClass('loaded');
$('#loader-wrapper .load_title').remove();
});
</script>
<div id="loader-wrapper">
<div id="loader"></div>
<div class="loader-section section-left"></div>
<div class="loader-section section-right"></div>
<div class="load_title">正在加载LoveFeel站点<br><span>V1.0</span></div>
</div>
<!--页面加载end-->
第三种
spinner-box风格样式
引入css文件
COPY<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/zyoushuo/Blog@latest/hexo/css/loading_style_1.css" >
将下方代码添加到页面中的<body>
下方
查看代码
将js代码添加到页面中的</body>
上方
查看代码
gear风格样式
引入css文件
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/zyoushuo/Blog@latest/hexo/css/loading_style_2.css" >