纯CSS滑动效果
原文地址:Pure CSS Slide Up and Slide Down
示例地址:Pure CSS Slide Demo
原文日期: 2013年08月26日
翻译日期: 2013年08月27日
如果能避免使用JavaScript就实现DOM元素动画效果,那我非常乐于不用JS去实现。
因为更高效,而且不需要JS框架来一步步处理,代码更美观优雅。
用纯CSS来实现很难确定的一个特效是 上下滑动——当向上滑的时候内容渐变隐藏,向下滑动内容渐变显示。
之所以难以实现的原因是你可能不能获得内容的高度。
在经历了多种多样的CSS属性之后,我发现了一种利用纯CSS来实现滑动特效的方法。
HTML部分
演示这个效果只需要一个元素,类似于下面这样的:
<div class="slider">需要滑动(显示隐藏)的内容,内容长度随意,class当然也可以自定义名字啦!</div>
CSS部分
在看到效果之前,让我们设置一些很简单的属性:overflow-y 以及 CSS animation 属性:
.slider {
overflow-y: hidden;
max-height: 500px; /* 预估的最大高度 */ transition-property: all;
transition-duration: .5s;
transition-timing-function: cubic-bezier(0, 1, 0.5, 1);
}
现在事情变得有趣了: 漂亮的效果是使用 max-height属性实现的。我们给元素设置一个合理的缺省值,然后创建另一个class把 max-height 设置为0,然后,元素就实现滑动效果了。
.slider.closed {
max-height: 0;
}
经过一些调试修正,我真的喜欢 cubic-bezier 这个时间轴过渡效果函数,当然也可能存在更好的动画方法。到这一步,我们还需要做的就是在合适的时候切换元素的closed CSS类。
不完美之处
那么问题来了,如果元素的高度是100px,或者10万px呢?这种情况下就很不协调,因为元素不是固定高度。
此时有两种可选思路:第一就是承认失败并使用CSS框架。第二条路是使用JavaScript检测DIV的高度,并注入"max-height"属性到stylesheet,则动画效果也会很完美。
最后请记住: 如果设置 max-height 为100%,将会很不可靠,虽然最大宽度可以这样设置,但高度不可以。
如果你找到更好的解决方案,请一定记得联系我!
纯CSS滑动效果的更多相关文章
- 纯CSS手风琴效果
CSS手风琴效果 主体代码如下: ...
- 纯css抖动效果
HTML: <button class="shake">按钮</button> CSS: .shake{ width: 120px; height: 33p ...
- 发光加载环动画-纯CSS动画效果-如何创建CSS3旋转预加载器(参照https://www.bilibili.com/video/BV1V4411C7z5?from=search&seid=9741275927942612817)
//css部分 body{ margin:; padding:; background: #262626; } .ring{ position: absolute; top:50%; left: 50 ...
- 纯CSS气泡效果
http://www.liaoxuefeng.com/article/0013738937970388b6b6e5e5e2f4e21b65b01807c84ddf6000
- 纯css提示效果 提示层
<!DOCTYPE HTML PUBLIC "-//W3C//DTD xHTML 1.0 Transitional//EN"><HTML> <HEAD ...
- 不可思议的纯 CSS 滚动进度条效果
结论先行,如何使用 CSS 实现下述滚动条效果? 就是顶部黄色的滚动进度条,随着页面的滚动进度而变化长短. 在继续阅读下文之前,你可以先缓一缓.尝试思考一下上面的效果或者动手尝试一下,不借助 JS , ...
- 1.纯 CSS 创作一个按钮文字滑动特效 + 弹幕(残缺)
原文地址:1# 视频演示如何用纯 CSS 创作一个按钮文字滑动特效 扩展后地址:https://scrimba.com/c/cJkzMfd HTML代码: <html> <head& ...
- 利用animation和text-shadow纯CSS实现loading点点点的效果
经常在网上看到loading状态时的点点点的动态效果,自己也用JS写了一个,思路是使用一个计数参数,然后在需要添加点的元素后面利用setInterval一个一个加点,当计数到3时,把点变为一个--写完 ...
- 纯CSS完成tab实现5种不同切换对应内容效果
很常用的一款特效纯CSS完成tab实现5种不同切换对应内容效果 实例预览 下载地址 实例代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...
随机推荐
- CSDN头版头条 《近匠》 Wijmo 5 CTO:从Web到移动,我的25年编程生涯
现年52岁的Bernardo Castilho先生是GrapeCity(中文名为葡萄城)ComponentOne公司的CTO,在与他的对话过程中.充满风趣严谨和厚重的历史感. 当作为年轻人的我们崇拜着 ...
- 进阶:案例六: Context Menu(静态 与 动态)
实现: 1.add: 2.delete 3.add2 实现步骤: 1.新建属性display_text 2.创建layout 3.代码部分: add事件: METHOD onactionadd . D ...
- 攻略三战的完美体验3Castle Fantisia阿兰·梅希亚战争艾伦西战记它包含重做版本(这是新的艾伦·梅希亚大战)
(城堡幻想曲3,纠正大家个错误哦,不是圣魔大战3,圣魔大战是城堡幻想曲2,圣魔大战不是个系列,艾伦西亚战记==艾伦希亚战记,一个游戏日文名:タイトル キャッスルファンタジア -エレンシア戦記-リニュー ...
- adb 之android的神器am
am命令,am全称activity manager,你能使用am去模拟各种系统的行为,例如去启动一个activity,强制停止进程,发送广播进程,修改设备屏幕属性等等 命令窗口通过adb shell ...
- Swift - 复杂数据类型说明(数组,字典,结构体,枚举)
1,数组 - Array 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 var types ...
- [Android阅读代码]圆形旋转菜单CircleMenu
项目名称:圆形旋转菜单CircleMenu 原版项目代码下载 感谢原作者开源
- Unix文本处理工具之awk
Unix命令行下输入的命令是文本,输出也都是文本.因此,掌握Unix文本处理工具是很重要的一种能力.awk是Unix常用的文本处理工具中的一种,它是以其发明者(Aho,Weinberger和Kerni ...
- 为了树莓派IIraspberrypi安装emacs+ecb+cedet+session+color-theme+cscope+linum
类似这篇文章写的不多,为了避免以后大家转来转去而忽略了写文章的时间,这些特别加上是2014年6月28日,省的对不上一些软件的版本号(下文中有些"最新"的说法就相应这个时间).假设转 ...
- 基于AdaBoost的人脸检测
原地址:http://blog.csdn.net/celerychen2009/article/details/8839097 人脸检测和人脸识别都是属于典型的机器学习的方法,但是他们使用的方法却相差 ...
- Spring MVC Hello World Example(转)
Spring 3 You may interest at this Spring 3 MVC hello world example. In Spring MVC web application, i ...