css - 将 CSS 动画与页面的其余部分隔离开来

标签 css animation spinner

我很高兴有一个 CSS 加载动画。有点问题,想知道是否有人知道解决方案。

这是动画当前的工作方式:http://www.wilsonschlamme.com/animation.html

我想把整个内容都涂黑,当动画达到最大尺寸时,黑屏就会消失。所以在加载时整个页面将是黑色的,当然除了动画。一旦动画达到最大尺寸,所有内容都会出现。

对此有什么想法吗?真的很感激任何事情。玩得开心,只需要完善一些东西。谢谢。

html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<html lang="en">
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="animation.css">
<link rel="stylesheet" type="text/css"     
href="http://fonts.googleapis.com/css?family=Dorsa" <script     
type="text/javascript">
</script>
<script     
src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'>    
</script>
<meta http-equiv="refresh" content="270"/>
<!--time and date-->
<div id="timeandate">
<script>
function makeArray() {
 for (i = 0; i<makeArray.arguments.length; i++)
this[i + 1] = makeArray.arguments[i];
 }
 var months = new makeArray('January','February','March','April','May',
 'June','July','August','September','October','November','December');
 var date = new Date();
 var day = date.getDate();
 var month = date.getMonth() + 1;
 var yy = date.getYear();
 var year = (yy < 1000) ? yy + 1900 : yy;
 document.write(day + " " + months[month] + " " + year);
 window.onload = function () {
    DisplayCurrentTime();
  };
 function DisplayCurrentTime() {
    var date = new Date();
    var hours = date.getHours() > 12 ? date.getHours() - 12 :      
  date.getHours();
    var am_pm = date.getHours() >= 12 ? "PM" : "AM";
    hours = hours < 10 ? "0" + hours : hours;
    var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() :      
    date.getMinutes();
    var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() :     
  date.getSeconds();
    time = hours + ":" + minutes + ":" + seconds + " " + am_pm;
    var lblTime = document.getElementById("lblTime");
    lblTime.innerHTML = time;
  };
 <!--thisisanimation-->
  jQuery(document).ready(function($) {
  function timer() {
  setTimeout(endAnim, 1000);  
   }
  timer();
  function restartAnim() {
 $('.loader-icon').removeClass('shrinking-cog').addClass('spinning-cog');
 $('.loader-background').addClass('color-flip'); 
 timer();
 $('.switches').show();
  }
 function endAnim() {
 $('.loader-icon').removeClass('spinning-cog').addClass('shrinking-cog');
  $('.loader-background').removeClass('color-flip'); 
 $('.again').delay(100).fadeIn('slow');
 $('.switches').fadeOut('slow');
 }
 $('.again').on('click', function(e) {
 e.preventDefault();
 restartAnim();
  });
  $('.switch').on('click', function(e) {
 var trigger = $(this);
 if ( !trigger.hasClass('active') ) {
  $('#loader').find('.loader-icon').addClass('hidden').filter('[data-cog*="'     
 +  trigger.data('trigger') + '"]').removeClass('hidden');
  trigger.addClass('active').siblings('.active').removeClass('active');
 }
 e.preventDefault();
 });
 });
</script>
 <div id="loader" class="overlay-loader">
    <div class="loader-background color-flip">
    </div>
    <img class="loader-icon spinning-cog" 
 src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
 Spinners/cogs/cog01.svg" data-cog="cog01">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog02.svg" data-cog="cog02">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog03.svg" data-cog="cog03">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog04.svg" data-cog="cog04">
    <img class="loader-icon spinning-cog hidden" 
 src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog05.svg" data-cog="cog05">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog06.svg" data-cog="cog06">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog07.svg" data-cog="cog07">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog08.svg" data-cog="cog08">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog09.svg" data-cog="cog09">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog10.svg" data-cog="cog10">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog11.svg" data-cog="cog11">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog12.svg" data-cog="cog12">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog13.svg" data-cog="cog13">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog14.svg" data-cog="cog14">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog15.svg" data-cog="cog15">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog16.svg" data-cog="cog16">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog17.svg" data-cog="cog17">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog18.svg" data-cog="cog18">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog19.svg" data-cog="cog19">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog20.svg" data-cog="cog20">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog21.svg" data-cog="cog21">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog22.svg" data-cog="cog22">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog23.svg" data-cog="cog23">
    <img class="loader-icon spinning-cog hidden" 
src="http://pasqualevitiello.github.io/Tumblr-Style-Cog-
Spinners/cogs/cog24.svg" data-cog="cog24">
</div>
<div class="spacer1">
</div>
<div class="spacer1">
</div>
<p>
     hi I should vanish and come back after animation!!!!
</p>
</html>

CSS

*{
 margin:0;
 padding:0;

}

body{
  text-align:center; /*For IE6 Shenanigans*/
  font-size: 100%;
  font-family: "Courier New", Courier, monospace;
  font-weight: 900;
}

h1{
color: white;
overflow:hidden; /* older browsers */
}

.font1{
 font-family: 'Dorsa';
 letter-spacing: 1px;
top: 10px;
display:block;
position: absolute;
left: 5px;
width: 100%; /*makes the element 100%, to center it. */
}

img {
border-color: grey;
border-style: solid;
border-width: 1px;
}

#timeandate {
margin-top: 90px;
}

#timeandate2 {
position: relative;
margin-left: 5px;
}

#weather1 {
 position: absolute; /*makes it relative to the html element, (the first 
positioned element).*/
 width: 100%; /*makes the element 100%, to center it. */
top: 1700px;
right: -200px;
border-color: grey;
}

#weather2 {
 position: absolute; /*makes it relative to the html element, (the first 
positioned element).*/
 width: 100%; /*makes the element 100%, to center it. */
top: 1700px;
left: -150px;
border-color: grey;
border-weight: 2px;
}

#ShowText1{
position: relative;
overflow:hidden; /* older browsers */
 word-wrap: break-word;
padding-top: 100px;
max-width: 1000px;
font-size: 16px;
top: 250px;
line-height: 45px;
margin: 0 auto;
  font-family: "Courier New", Courier, monospace;
}


.spacer1 {
margin-top:20px;
}

.overlay-loader .loader-icon {
  position: absolute;
  top: 20%;
left: 43%;
z-index: 6;
  color: #42f498;
}

 .overlay-loader .loader-icon.spinning-cog {
 -webkit-animation: spinning-cog 1.3s infinite ease;
  -moz-animation: spinning-cog 1.3s infinite ease;
  -ms-animation: spinning-cog 1.3s infinite ease;
  -o-animation: spinning-cog 1.3s infinite ease;
  animation: spinning-cog 1.3s infinite ease;
background-color: #42f498;
}

@-webkit-keyframes spinning-cog {
  0% { -webkit-transform: rotate(0deg) scale(3)}
  20% { -webkit-transform: rotate(-45deg) scale(3)}
  100% { -webkit-transform: rotate(360deg) scale(3)}
}

@-moz-keyframes spinning-cog {
  0% { -moz-transform: rotate(0deg) scale(3)}
  20% { -moz-transform: rotate(-45deg) scale(3)}
  100% { -moz-transform: rotate(360deg) scale(3)}
}

@-o-keyframes spinning-cog {
  0% { -o-transform: rotate(0deg) scale(3)}
  20% { -o-transform: rotate(-45deg) scale(3)}
  100% { -o-transform: rotate(360deg) scale(3)}
}

@keyframes spinning-cog {
  0% { transform: rotate(0deg) scale(3)}
  20% { transform: rotate(-45deg) scale(3)}
  100% { transform: rotate(360deg) scale(3)}
}

@-webkit-keyframes shrinking-cog {
  0% { -webkit-transform: scale(12) }
  20% { -webkit-transform: scale(12.2) }
  100% { -webkit-transform: scale(1) }
}

@-moz-keyframes shrinking-cog {
  0% { -moz-transform: scale(12) }
  20% { -moz-transform: scale(12.2) }
  100% { -moz-transform: scale(1) }
}

@-o-keyframes shrinking-cog {
  0% { -o-transform: scale(12) }
  20% { -o-transform: scale(12.2) }
  100% { -o-transform: scale(1) }
}

@keyframes shrinking-cog {
  0% { transform: scale(12) }
  20% { transform: scale(12.2) }
  100% { transform: scale(0) }
}

.overlay-loader .loader-icon.shrinking-cog {
  -webkit-animation: shrinking-cog .3s 1 ease forwards;
  -moz-animation: shrinking-cog .3s 1 ease forwards;
  -ms-animation: shrinking-cog .3s 1 ease forwards;
  -o-animation: shrinking-cog .3s 1 ease forwards;
  animation: shrinking-cog .3s 1 ease forwards;
background-color: #42f498;
}

最佳答案

这是另一个更笼统的答案。

如果您想在动画结束前隐藏多个元素,然后显示它们,您可以执行以下操作:

  • 给每个元素一个特殊的类,比如 appear-later
  • 定义类 .appear-later { opacity: 0; }
  • 使用 jQuery,在计时器到期后,从拥有该类的元素中删除该类。
setTimeout(function () {
    $('.appear-later').removeClass('appear-later');
}, 2000);

此外,最好将 javascript 代码放在 html 标记之后。

Here's the pen

我使用 color: red 而不是 opacity: 0 以便更显眼。

此外,在 Codepen 中,您可以通过转到设置 - Javascript - 快速添加来加载 jQuery

关于css - 将 CSS 动画与页面的其余部分隔离开来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44613065/

相关文章:

ios - 如何在长时间按压后停止我的 UICollectionViewCell 摇晃?

animation - 如何使用 matplotlib 在单个图中绘制两个动画?

javascript - 如何让 div 在动画后跳回到原来的位置?

android - 如何将微调项与数据连接

html - float 的 div 与父级的高度不同

html - 垂直对齐和 float : left

javascript - 使 div 及其所有子项忽略父类样式

android - 适用于 Android 的双微调器

java - 如何检索微调器中所选项目的 int 值?

html - 使固定标题的宽度与容器 div 的大小相同