CSS3 transition实现手风琴效果「建议收藏」

CSS3 transition实现手风琴效果「建议收藏」CSS3transition实现手风琴效果最近在项目中遇到了一个需求,需要完成一个手风琴效果的展示,最后通过CSS3transition实现了这个效果,下面就分享下实现方法。效果首先看下效果:可以看到,当我们点击toggle按钮的时候会实现一个带有动画的过渡效果。transition属性实现动画效果这要用到了transition的四个属性,分别是:transition-prope…

大家好,又见面了,我是你们的朋友全栈君。

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>

下面的是我的公众号二维码图片,欢迎关注。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158391.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java字符串分割方法.split()的详细用法「建议收藏」

    java字符串分割方法.split()的详细用法「建议收藏」先看看它在java包中的JavaAPI是:java.lang.String方法总结 (1)按指定普通字符分割: java代码如下: Stringstring=”123@456@789″; Stringarray[]=string.split(“@”);//以@分割 for(Strings:array) System.out.println(s); 运行结果: 123 456 789 (2).

    2022年6月22日
    33
  • 各主流浏览器内核介绍[通俗易懂]

    各主流浏览器内核介绍[通俗易懂]所谓的“浏览器内核”无非指的是一个浏览器最核心的部分——“RenderingEngine”,直译这个词汇叫做“渲染引擎”,不过我们也常称其为“排版引擎”、“解释引擎”。这个引擎的作用是帮助浏览器来渲

    2022年8月1日
    5
  • Depix初体验

    Depix初体验前情提要这几天有一个同学给我发了一张马赛克图,问我能不能还原?图片如上。我一看,这被马成什么鬼样子了,谁能还原得了?不过我忽然想到,我在公众号上看到一个名字叫做”Depix”的Github项目。然而近期在Github上,又出现了一款号称能抹去马赛克让原图重现的神器,引发海内外热议。这款工具名为Depix,上线没几天就在GitHub上标星已超过一万多,截止目前累计分支也超过了1.3k个。让它火出圈子的,就是下面这张效果图:如图所示,第一行是打了一层巨厚马赛克完全像素化后的文本内容,看不出

    2022年6月30日
    116
  • matlab中axis的使用

    matlab中axis的使用%提示disp('该功能练习axis功能');%初始化快捷式数组x=-2*pi:pi/20:2*pi;y=sin(x);plot(x,y);title('sin(x)图形

    2022年7月3日
    22
  • DHCP协议详解

    DHCP协议详解文章目录什么是DHCPDHCP协议DHCP报文种类DHCP报文格式DHCP工作流程IP地址分配方式租约表工作流程服务器处理流程什么是DHCPDHCP(DynamicHostConfigurationProtocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局…

    2022年5月10日
    58
  • Linux查看开放端口_linux查看对外端口

    Linux查看开放端口_linux查看对外端口linux查看并对外开放端口(防火墙拦截处理) 查看端口是否可访问:telnetip端口号(如本机的35465:telnetlocalhost35465)开放的端口位于/etc/sysconfig/iptables中查看时通过more/etc/sysconfig/iptables命令查看如果想开放端口(如:8889)(1)通过v…

    2022年9月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号