CSS3创建一个滑出滑入的动画

有时候我们需要在网站上的边栏上放一个客户帮助的表单,开始是放一个按钮在那里,点击之后滑出内容来,一般这种效果我们会用JS来控制。现在css3也可以做到了哦。

不知道什么意思吗?看看这个演示

这个是怎么做到的呢?那就要用到CSS3里面的:target这个标签了。

之前我也写过相类似用到:target的动画。比如:CSS3手风琴的两种制作方案    超酷的CSS3幻灯片效果

下面我们一起看看这个动画的实现思路。

1.固定这个盒子在某个位置。

2.把表单隐藏在里面,只露出一个点击按钮。

3.点击按钮时表单画出来,同时按钮文字改变

4.再次点击按钮,表单缩进去了。

思路出来了,我们可以看到,这里面需要两个步骤,一个出来,一个缩进,那我们要用:target的话,显然需要两个目标了。不然是无法完成两个动作的,当然你可以考虑用之前在手风琴案例里面提到:checked这个标签来制作。这里就不说了。

html代码

<div id="volet_clos">
<div id="volet">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima quisquam tempora quaerat dolores molestias reiciendis .</p>
<p>vero labore voluptates necessitatibus ut? Et</p>

<a href="#volet" aria-hidden="true">滑出</a>
<a href="#volet_clos" aria-hidden="true">滑入</a>
</div>
</div>

CSS代码

#volet {
width: 250px;
padding: 10px;
background: #6B9A49; color: #fff;
}

#volet a.ouvrir,
#volet a.fermer {
padding: 10px 25px;
background: #555;
color: #fff;
text-decoration: none;
}

#volet {
position: absolute;
left: -270px;  /* test fixed + scroll, on retire la position top */
-webkit-transition: all .5s ease-in;
-moz-transition: all .5s ease-in;
transition: all .5s ease-in;
}
#volet a.ouvrir,
#volet a.fermer {
position: absolute;
right: -88px;
top: 150px;
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-o-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-moz-radius: 0 0 8px 8px;
border-radius: 0 0 8px 8px;
}
#volet a.fermer {
display: none;
}
#volet:target {
left: 10px;
}

/* code pour la fermeture */

#volet:target a.fermer {
display: block;
}
#volet:target a.ouvrir {
display: none;
}
#volet_clos:target #volet {
left: -270px;
}

/* test fixed + scroll */
#volet_clos {
position: fixed;
top: 55px; left: 0;
}

演示

如果用:checked的话那就变得简单了。你会怎么做呢?

原文链接:CSS3创建一个滑出滑入的动画 版权所有,转载时请注明出处,违者必究。
注明出处格式:前端开发博客 (http://caibaojian.com/787.html)

发表评论

请登录后发表评论: