嗨朋友我正在尝试制作将由jquery触发的CSS3动画。即,当用户提交某个表单时,我需要在一段时间内显示动画(css3)并将其重定向到下一页。
CSS3动画:
.circle {
background-color: rgba(0,0,0,0);
border: 5px solid rgba(0,183,229,0.9);
opacity: .9;
border-right: 5px solid rgba(0,0,0,0);
border-left: 5px solid rgba(0,0,0,0);
border-radius: 50px;
box-shadow: 0 0 35px #2187e7;
width: 50px;
height: 50px;
margin: 0 auto;
-moz-animation: spinPulse 1s infinite ease-in-out;
-webkit-animation: spinPulse 1s infinite linear;
}
.circle1 {
background-color: rgba(0,0,0,0);
border: 5px solid rgba(0,183,229,0.9);
opacity: .9;
border-left: 5px solid rgba(0,0,0,0);
border-right: 5px solid rgba(0,0,0,0);
border-radius: 50px;
box-shadow: 0 0 15px #2187e7;
width: 30px;
height: 30px;
margin: 0 auto;
position: relative;
top: -50px;
-moz-animation: spinoffPulse 1s infinite linear;
-webkit-animation: spinoffPulse 1s infinite linear;
}
@-moz-keyframes spinPulse {
0% {
-moz-transform: rotate(160deg);
opacity: 0;
box-shadow: 0 0 1px #2187e7;
}
50% {
-moz-transform: rotate(145deg);
opacity: 1;
}
100% {
-moz-transform: rotate(-320deg);
opacity: 0;
};
}
@-moz-keyframes spinoffPulse {
0% {
-moz-transform: rotate(0deg);
}
100% {
-moz-transform: rotate(360deg);
};
}
@-webkit-keyframes spinPulse {
0% {
-webkit-transform: rotate(160deg);
opacity: 0;
box-shadow: 0 0 1px #2187e7;
}
50% {
-webkit-transform: rotate(145deg);
opacity: 1;
}
100% {
-webkit-transform: rotate(-320deg);
opacity: 0;
};
}
@-webkit-keyframes spinoffPulse {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
};
}
这是html
<div class="circle"></div>
<div class="circle1"></div>
<button class="next" name="submit" id = "submit"></button>
现在,当我用户点击时,我需要在一小部分时间内显示此效果(有些像警报框我的意思是这个动画播放时用户不能在页面的其余部分做任何事情)
答案 0 :(得分:3)
通常,您可以通过使用元素覆盖页面来使页面无法访问 - &#34; overlay&#34;。
HTML:
<div class="loadingOverlay">
<div class="circle"></div> <!-- it makes sense to put these inside -->
<div class="circle1"></div>
</div>
CSS:
.loadingOverlay {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
要在用户点击提交按钮时激活它,只需将其设为“隐藏”即可。默认情况下。当用户点击该按钮时,使其显示为“#34;”。以它最基本的形式:
$('#submit').on('click', function () {
$loadingOverlay.css('display', 'block');
});
以及额外需要的 CSS :
.loadingOverlay {
/* ... */
display: none;
}
在我下面提供的示例中,您无法看到动画。下一页,空白,只是加载太快。但是你将在&#34;真实&#34;上看到它网站情况。
以下是实例:http://jsfiddle.net/9H7wf/2/
修改强>
Max Boll建议使用&#34;加载效果&#34;发生在&#34;新&#34;页。这说得通。但是当一个新的页面被提取时,&#34; old&#34;一个仍然可见,直到几个关键&#34; http&#34;事情发生。见http://www.stevesouders.com/blog/2012/12/03/the-perception-of-speed/
所以,将它放在&#34; old&#34;页。
答案 1 :(得分:0)
我建议您使用jQuery。
默认情况下,您可以将动画显示为叠加层(如JOPLOmacedo所说)。
然后将以下内容添加到您的javascript:
$(document).ready(function() {
$('.loadingOverlay').fadeOut();
});
只要网站需要加载(您实际想要通过加载动画显示),这将显示加载叠加层。加载页面后,这个javascript就会淡出。
我的解决方案基于JOPLOmacedo的回答。
修改强> 我刚看到你的新评论。要在按钮单击时显示它,您可以这样做:
$(document).ready(function() {
$('.button').click(function() {
$('.loadingOverlay').fadeIn();
});
});
在点击事件功能的内部,你可以开始一个间隔,在X秒后再次淡出它。
答案 2 :(得分:0)
嗨朋友我找到了一个解决方案Thanx @JOPLOmacedo来帮助我解决这个问题
$function(){
$('#submit').click(function(){
$('.loadingOverlay').css('display', 'block');
function complete() {
$('.loadingOverlay').css('display', 'none');
}
$('.circle').hide().fadeIn(1000,complete);
$('.cirlce1').hide().fadeIn(1000,complete);
});
}