纯css动画 —— 展开、收起

简介: 纯css动画 —— 展开、收起

在web端,“展开收起”效果一般用jQuery的slideUp()/slideDown()实现

但在移动端,因为CSS3动画支持良好,所以移动端的JavaScript框架都没有动画模块。此时,使用CSS实现动画就成了最佳的技术选型。

最终效果

完整范例代码

<template>
    <div class="box">
        <input id="check" type="checkbox">
        <p>个人觉得,display:table-cell最强的应用是可以任意个数列表的等宽效果。</p>
        <div class="element">
            <p>display:table-cell其他一些应用,例如,两栏自适应布局,垂直居中效果等等都是可以通过其他技术手段模拟出来的,但是,根据列表个数自动等宽的效果,其他CSS是很难模拟的,尤其当需要兼容IE8浏览器的时候。</p>
        </div>
        <label for="check" class="check-in">更多↓</label>
        <label for="check" class="check-out">收起↑</label>
    </div>
</template>
<style scoped>
    /*文本分散对齐*/
    p {
        text-align: justify;
    }
 
    /*限定文本的最大宽度*/
    .box {
        max-width: 300px;
        padding: 10px;
    }
 
    /*隐藏多选框*/
    input[type="checkbox"] {
        display: none;
    }
 
    /*更多和收起按钮的样式*/
    .check-in, .check-out {
        color: #34538b;
        cursor: pointer;
    }
 
    /*默认隐藏收起按钮*/
    .check-out {
        display: none;
    }
    /*选中状态时,显示收起按钮*/
    :checked ~ .check-out {
        display: inline-block;
    }
    /*选中状态时,隐藏更多按钮*/
    :checked ~ .check-in {
        display: none;
    }
 
    /*更多文本的最大高度为0,即不显示*/
    .element {
        max-height: 0;
        overflow: hidden;
        transition: max-height .25s;
    }
 
    /*选中状态时,更多文本的最大高度为666,触发transition过渡动画向下展开显示*/
    :checked ~ .element {
        max-height: 666px;
    }
</style>

核心实现原理

  1. 通过type为checkbox的input多选框的选中状态切换,来改变更多文本的显示和隐藏
  2. 使用css的伪类选择器:checked来获取多选框的选中状态
  3. 通过设定足够大的max-height,可以支持动态的更多文本,但不能太大,否则收起动画会有延迟(远大于真实高度的动画部分,用户感觉不到)

更多细节,详见代码中css部分的注释

目录
相关文章
|
2月前
|
机器学习/深度学习 前端开发 JavaScript
|
1月前
纯css3实现的百分比渐变进度条加载动画源码
纯css3实现的百分比渐变进度条加载动画特效源码
58 31
|
2月前
|
前端开发 搜索推荐 UED
实现 CSS 动画效果的兼容性
【10月更文挑战第16天】实现 CSS 动画效果的兼容性需要对不同浏览器的特性有深入的了解,并采取适当的策略和方法。通过不断的实践和优化,你可以在各种浏览器上创造出流畅、美观且兼容的动画效果,为用户带来更好的体验。在实际开发中,要密切关注浏览器的发展动态,及时掌握最新的兼容性技巧和解决方案,以确保你的动画设计能够在广泛的用户群体中得到良好的呈现。
116 58
|
19天前
|
Web App开发 移动开发 JavaScript
纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码
这是一款基于纯CSS3+SVG实现的节日庆祝五彩纸屑动画效果源码。画面中左下角是一个圆锥形礼炮卡通效果,呈现出节日庆祝时礼花爆破、五彩纸屑纷飞的动画特效。整体动画效果采用纯css3+svg实现,没有引入任何外部图形或js脚本元素。建议使用支持HTML5与css3效果较好的火狐(Firefox)或谷歌(Chrome)等浏览器预览本源码。
38 6
|
29天前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
59 7
|
1月前
CSS3制作的聚光灯下倒影文字选装动画特效源码
CSS3聚光灯下倒影文字特效是一段基于CSS3实现的聚光灯下带倒影的文字旋转动画效果代码,具有真实的视觉感,同时文字还会在旋转过程中显示出灯光的反射效果,很有意思,欢迎对此段代码感兴趣的朋友前来下载使用。
32 6
|
1月前
|
移动开发 前端开发 JavaScript
除了 CSS3,还有哪些技术可以实现动画效果?
除了 CSS3,还有哪些技术可以实现动画效果?
59 5
|
1月前
纯css3加载loading发光变色动画代码
纯css3加载loading发光变色动画特效代码是一款基于css3 keyframes属性实现的发光变色圆点串联旋转loading加载动画
25 2
|
1月前
|
Web App开发 前端开发 iOS开发
CSS加载动画大全 126种
CSS加载动画大全是一个css Loaders加载动画特效汇总,一共包含126种加载动画效果,不同样式不同图案,简单实用,一览包含所有,会让你在等待的过程中,体验视觉盛宴,给用户不一般的加载体验,欢迎下载试试!代码适用浏览器:搜狗、360、FireFox(建议)、Chrome、Safari、Opera、傲游、世界之窗,是一款不错的的特效插件,希望大家喜欢!
28 2
|
1月前
|
JavaScript 前端开发
CSS3 动画和 JavaScript 动画的性能比较
具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。

热门文章

最新文章