CSS3 transition实现手风琴效果

最近在项目中遇到了一个需求,需要完成一个手风琴效果的展示,最后通过CSS3 transition实现了这个效果,下面就分享下实现方法。

效果

首先看下效果:

可以看到,当我们点击toggle按钮的时候会实现一个带有动画的过渡效果。

transition属性

实现动画效果这要用到了transition的四个属性,分别是:transition-propertytransition-durationtransition-timing-functiontransition-delay,下面简单介绍下四个属性。

transition-property:指定需要过渡的CSS属性。并不是所有属性都能过渡的,只有能数字量化的CSS属性才能过渡,常见的有width,height,right,left,bottom,top,opacity,color等,或者可以直接设为all,表示所有属性都会获得过度效果。
transition-duration:指定过渡所需要的时间。
transition-delay:延迟开始过渡的时间,默认值是0,表示不延迟,立即开始过渡动作。
transition-timing-function:过渡函数,规定了过渡效果的速度曲线(贝塞尔曲线),取值如下:

描述
linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。
ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。
ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。
cubic-bezier(n,n,n,n) cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。。

可以看到,除了指定的属性之外,还可以通过cubic-bezier(n,n,n,n)自定义平滑曲线,贝塞尔曲线的生成比较复杂,我们可以借助于缓动函数速查表或者cubic-bezier等在线工具查看动画效果。

代码实现

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>CSS3 transition实现手风琴特效</title></head><body><div class="slider" id="slider"><button class="toggle-btn" onclick="document.getElementById('slider').classList.toggle('toggle');">toggle</button></div><style>.slider {max-width: 400px;background: #2a85a0;height: 400px;width: 400px;position: relative;/*  Webkit内核浏览器:Safari and Chrome*/-webkit-transition-property: all;-webkit-transition-duration: .5s;-webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);/*  Mozilla内核浏览器:firefox3.5+*/-moz-transition-property: all;-moz-transition-duration: .5s;-moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);/*  Opera*/-o-transition-property: all;-o-transition-duration: .5s;-o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);/*  IE9*/-ms-transition-property: all;-ms-transition-duration: .5s;-ms-transition-timing-function: cubic-bezier(0, 1, 0.5, 1);}.slider.toggle {max-width: 10px;}.toggle-btn {position: absolute;top: 0;color: #ffffff;right: -50px;width: 50px;height: 20px;background: #5a7ef1;}</style></body>
</html>

下面的是我的公众号二维码图片,欢迎关注。

CSS3 transition实现手风琴效果相关推荐

  1. css3 transition uncover (揭开效果)

    一.构建页面 页面构建思路和前一篇差不多.请移步<css3 transition effect(Flip翻转效果)> 由于flip存在翻转时候的效果,需要设置背面情况下不显示的CSS,但是 ...

  2. 悬停渐变特效html,CSS3 transition属性实现hover渐变动画效果

    CSS3 transition属性实现hover渐变动画效果 我们知道许多网页动态特效都是由FLASH或JQUERY之类的JS特效库实现的实际上现在CSS3也能实现很多类似效果了,只是在各种浏览器中兼 ...

  3. 解决css内容高度不固定,transition手风琴效果失效的情况(展开收起)

    最近写了一个筛选功能,要使用手风琴效果展开内容,但是高度不固定,故此添加的动画效果失效,对此有两种解决方案 动画失效的原理是: 如果当前设置动画的元素他的父元素高度为auto的时候,且当前元素未设置p ...

  4. CSS3 transition实现超酷图片墙动画效果

    一.前面的感慨 以前也陆陆续续试过CSS3的一些特性,文字投影,多边框等.但都是试试而已,知道有这么回事.今天,见到了一个新玩意,transition,认认真真的试了一下,经过,我懵了,我呆了,我傻了 ...

  5. 纯css3实现美化复选框和手风琴效果(详细)

    关键技术点和原理: 原理就是把 checkbox或 radio 给隐藏掉   ,然后给选框 绑定一个label标签. 然后用label标签作为容器,在里面放一个:before或一个after 用bef ...

  6. 纵向手风琴html,CSS3制作垂直手风琴

    说起手风琴的制作,大家肯定首选就是使用jQuery来制作,我在<如何使用jQuery制作手风琴效果>也简单的介绍了使用jQuery制作手风琴效果.但今天我在Saud Khan的<Cr ...

  7. JavaScript 练手小案例:超级简单又炫酷的图片手风琴效果

    手风琴效果很流行,可以任意展开收缩内容,甚是好看. 特效要求 鼠标移动到图片上,当前图片放大,其他图片收缩. HTML <div class="pics"><ul ...

  8. CSS3中的动画效果记录

    今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform ...

  9. html标题前圆圈样式,漂亮的css3圆形鼠标悬停效果实例

    本文将给大家介绍一个漂亮的css3圆形鼠标悬停效果,这个效果在产品展示或列表图片中都可以应用,可以说是应用范围挺广泛的.关于鼠标悬停效果,你还可以看看另一篇文章<使用css转换和3d旋转的圆形鼠 ...

最新文章

  1. 【Qt】Qt发布可执行程序(打包依赖库)
  2. 全球及中国台式破壁机行业销售模式及市场需求份额调研报告2021-2027年
  3. Elasticsearch Grok Pattern内置表达式大全
  4. 对pthread_cond_wait()函数的理解
  5. mft按钮设计_哈汽机组660MW超临界空冷机组ETS设计及逻辑说明
  6. Spring解析 XML 的原理,你搞定了么?
  7. android apk 防止反编译技术加壳技术(转)
  8. 洛谷——P1851 好朋友
  9. 工具的使用——vs2013(三)
  10. poj3984(经典dfs)
  11. 数据库:码 属性 候选码 主码的关系
  12. 咸鱼Maya笔记—初识Maya 2019
  13. wps表格 做折线图
  14. IBM李永辉:从人工智能到大数据的终点
  15. java nio oio_Java NIO框架Netty教程(十四)-Netty中OIO模型(对比NIO)
  16. Ubuntu下输入金钱符号时只能输入“₵“无法输入“$“
  17. webpack4 学习时打包图片时遇到的问题
  18. jtag、在线仿真器
  19. linemod算法小结
  20. AI-Info-Micron-Insight:案例分析:美光使用数据和人工智能来发现、倾听和感觉

热门文章

  1. Java三元表达式拆包
  2. 机器人布里茨说什么_lol机器说的话
  3. Apollo搭建与实战(分布式部署)
  4. 4种解决线程安全问题的方式
  5. QUTOJ 1363 麻烦的小卓 思维
  6. 轻松利用Python爬虫爬取你想要的数据
  7. 非常棒的几款chrome插件
  8. Unity使用Mesh Simplify 减面(网格简化)
  9. password authentication failed for user
  10. [hiveSQL面试题2]