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的话那就变得简单了。你会怎么做呢?


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流