css3气泡 css3重要帧动漫建立的动态性通告气泡

2021-01-20 11:53 jianzhan

近期在1个Web新项目上工作中时,顾客迫不得已强调以某种方法动态性通告泡沫。基础上,每次的通告值的转变,必须的视觉效果实际效果,以得到客户的留意力。因此我做了,应用CSS3重要帧动漫。编码整体较为简易,欢迎任何方式的转载,但尽量表明出处

线上演试点一下下面的两个按钮 通告气泡会随时转变

的HTML

在这个事例中,大家将应用导航栏常见的标识构造

拷贝编码
编码以下:

<ul class="menu">
<li><a href="">主页</a></li>
<li><a href="">有关大家</a></li>
<li>
<a href="">
全新动态性
<span class="bubble">9</span>
</a>
</li>
<li><a href="">本人管理中心</a></li>
</ul>

关键是上面的<span class="bubble">,这是将动漫的通告气泡

The CSS

 .animating 类 意味着了1个CSS3的动漫,大家应用贝塞尔曲线图.来建立的,假如你是第1个触碰贝塞尔曲线图,能够开启学习培训1下

拷贝编码
编码以下:

.animating{
animation: animate 1s cubic-bezier(0,1,1,0);
}
@keyframes animate{
from {
transform: scale(1);
}
to {
transform: scale(1.7);
}
}

所有的 css编码

拷贝编码
编码以下:

.animating{
-webkit-animation: animate 1s cubic-bezier(0,1,1,0);
-moz-animation: animate 1s cubic-bezier(0,1,1,0);
-ms-animation: animate 1s cubic-bezier(0,1,1,0);
-o-animation: animate 1s cubic-bezier(0,1,1,0);
animation: animate 1s cubic-bezier(0,1,1,0);
}
@-webkit-keyframes animate{
from {
-webkit-transform: scale(1);
}
to {
-webkit-transform: scale(1.7);
}
}

@-moz-keyframes animate{
from {
-moz-transform: scale(1);
}
to {
-moz-transform: scale(1.7);
}
}
@-ms-keyframes animate{
from {
-ms-transform: scale(1);
}
to {
-ms-transform: scale(1.7);
}
}
@-o-keyframes animate{
from {
-o-transform: scale(1);
}
to {
-o-transform: scale(1.7);
}
}
@keyframes animate{
from {
transform: scale(1);
}
to {
transform: scale(1.7);
}
}
/* ------------------------------------------- */
body{
text-align: center;
}
.menu{
margin: 50px auto 20px;
width: 800px;
padding: 0;
list-style: none;
}
.menu {
border: 1px solid #111;
background-color: #222;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
-moz-box-shadow: 0 1px 1px #777, 0 1px 0 #666 inset;
-webkit-box-shadow: 0 1px 1px #777, 0 1px 0 #666 inset;
box-shadow: 0 1px 1px #777, 0 1px 0 #666 inset;
}
.menu:before,
.menu:after {
content: "";
display: table;
}
.menu:after {
clear: both;
}
.menu {
zoom:1;
}
.menu li {
float: left;
position: relative;
border-right: 1px solid #222;
-moz-box-shadow: 1px 0 0 #444;
-webkit-box-shadow: 1px 0 0 #444;
box-shadow: 1px 0 0 #444;
}
.menu a {
float: left;
padding: 12px 30px;
color: #bbb;
text-transform: uppercase;
font: bold 12px Arial, Helvetica;
text-decoration: none;
}
.menu a:hover {
color: #fafafa;
}
.menu li:first-child a
{
-moz-border-radius: 5px 0 0 5px;
-webkit-border-radius: 5px 0 0 5px;
border-radius: 5px 0 0 5px;
}
.menu .bubble
{
background: #e02424;
position: absolute;
right: 5px;
top: ⑸px;
padding: 2px 6px;
color: #fff;
font: bold .9em Tahoma, Arial, Helvetica;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}
/* Demo page only */
#about{
color: #999;
text-align: center;
font: 0.9em Arial, Helvetica;
margin: 50px 0;
}
#about a{
color: #777;
}
 

The jQuery

它并不是那末非常容易,由于你将会会觉得每次再次起动的动漫正值的转变,幸亏,在这个事例中,我挑选的方式包含应用JavaScript的setTimeout()的方式。因此,每次通告值转变,.第2次刚开始的情况下animating类被删掉

拷贝编码
编码以下:

var counterValue = parseInt($('.bubble').html()); // 获得当今转变的值
function removeAnimation(){
setTimeout(function() {
$('.bubble').removeClass('animating')
}, 1000);
}
$('#decrease').on('click',function(){
counterValue--; // 递增
$('.bubble').html(counterValue).addClass('animating'); // 动态性转变的动漫
removeAnimation(); // 删掉css类的动漫
})
$('#increase').on('click',function(){
counterValue++; // 下降
$('.bubble').html(counterValue).addClass('animating'); // 动态性转变的动漫
removeAnimation(); // 删掉css类动漫