css transition 实现滑入滑出
transition是css最简单的动画。 通常当一个div属性变化时,我们会立即看的变化,从旧样式到新样式是一瞬间的,嗖嗖嗖!!!
但是,如果我希望是慢慢的从一种状态,转变成另外一种状态,怎么办? transition可以做到。
第一问:哪些属性值变化会触发这个transition呢?
一般常见的有:width, height, opacity, color, z-index, visibility等等很多,这里是所有的:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties
第二问:transition的具体用法?
transition是这四个的简写:
{
transition-property // 触发transition的属性值,默认all
transition-duration // transition执行时间
transition-timing-function // 时间变化函数
transition-delay // 执行transition之前的时间
}
其中第三个transition-timing-function比较复杂,提供了几个默认的:
- linear,匀速变化。
- ease,逐渐变慢,默认值就是这个。
- ease-in,加速变化。
- ease-out,减速变化。
- ease-in-out,先加速再减速。
- cubic-bezier,自定义变化函数。
使用transition简写示例:
{
transition: margin-right 2s;
transition: margin-right 2s .5s;
transition: margin-right 2s ease-in-out;
transition: margin-right 2s ease-in-out .5s;
transition: margin-right 2s, color 1s;
transition: all 1s ease-out;
transition: background 0.5s ease-in 1s,color 0.3s ease-out 1s;
}
使用技巧,实现滑入滑出
实现一个元素出现或者消失,有几种方案:display:none 和opacity:0
使用display的话,不会触发transition,只能实现“快入快出”
而opacity和visibility可以触发transition。
到这里大眼一看似乎是可以通过opacity和visibility配合transition实现。具体如何实现呢?
- 首先这个要滑入滑出的div,刚开始并不在页面上。因此需要初始化:
div{
-webkit-transition: 0.6s;
-moz-transition: 0.6s;
-ms-transition: 0.6s;
-o-transition: 0.6s;
transition: 0.6s;
visibility:;
opacity:;
width: 0; // 由于是滑入,因此需要这个div的宽度从0慢慢变大,变到300px,效果就是从侧边滑进来了。
}
- 当需要这个div滑入的时候,需要使用js动态给这个div添加一个class:"active"
.active {
opacity:;
visibility:;
width: 300px;
}
一定要记住,是width等这些属性变化时,才会触发,因此需要设置一个初始的状态,再设置一个最终的状态,我在这里是通过js动态添加class实现设置最终状态的。你也可以给hover设置不同状态。
我的完整css代码:
.detail_wrap{ // 这是初始状态
transition: width 0.4s ease-out, opacity 0.2s ease-in, visibility 0.2s ease-in;
width:;
height: '80%';
visibility:;
opacity:;
}
.active { // 这是滑入状态
opacity:;
visibility:;
width: 300px;
}
啊,或许你会问,这不是滑入吗?怎么没有滑出呢?
当当当当~ 奥妙在与我使用了一个flag来动态判断要不要加上active 这个class。这样的话,active 添加或者消失,都可以触发这个transition的。
参考文章:http://litianyi.cc/technology/2014/08/27/css-transition/ ease-in 和ease-out 了解更多请移步 https://css-tricks.com/ease-out-in-ease-in-out/
css transition 实现滑入滑出的更多相关文章
- 【jquery隐藏、显示事件and提示callback】【淡入淡出fadeToggle】【滑入滑出slideToggle】【动画animate】【停止动画stop】
1.jquery隐藏and显示事件 $("p").hide(); //隐藏事件$("p").hide(1000); //1秒内缓慢隐藏$(" ...
- 在 jQuery 中使用滑入滑出动画效果,实现二级下拉导航菜单的显示与隐藏效果
查看本章节 查看作业目录 需求说明: 在 jQuery 中使用滑入滑出动画效果,实现二级下拉导航菜单的显示与隐藏效果 用户将光标移动到"最新动态页"或"帮助查询" ...
- 伴随ListView、RecyclerView、ScrollView滚动滑入滑出小图标--第三方开源--FloatingActionButton
FloatingActionButton在github上的项目主页是:https://github.com/makovkastar/FloatingActionButton 它的依赖包NineOldA ...
- WPF技术触屏上的应用系列(五): 图片列表异步加载、手指进行缩小、放大、拖动 、惯性滑入滑出等效果
原文:WPF技术触屏上的应用系列(五): 图片列表异步加载.手指进行缩小.放大.拖动 .惯性滑入滑出等效果 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统, ...
- jQuary总结7:动画操作,显示与隐藏 淡入淡出, 滑入滑出
1 jquery提供了三组基本动画,这些动画都是标准的.有规律的效果,jquery还提供了自定义动画的功能. 2 显示与隐藏: show([speed],[easing],[callback]) 显示 ...
- JQuery动画之滑入滑出动画
1. 滑入动画(类似于商店的卷帘门) $(selector).slideDown(speed, 回调函数); 解释: 此语句实现的功能为, 在XX时间内, 下拉动画, 显现元素. 当 slideDow ...
- div层的滑入滑出实例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat=&quo ...
- js窗口边缘滑入滑出效果-初级代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ios 页面滑入滑出
从左边滑进 CGRect r1,r2; r1 = app.testview.view.frame; r2 = self.view.frame; [app.testview.view setFrame: ...
随机推荐
- Retrofit 实现获取往里圆角图片,且传值到另一个页面
记得加网络权限 java包: // compile 'jp.wasabeef:glide-transformations:3.0.1' implementation 'com.squareup.ret ...
- springboot加ES实现全局检索
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apach ...
- Java 延迟队列使用
延时队列,第一他是个队列,所以具有对列功能第二就是延时,这就是延时对列,功能也就是将任务放在该延时对列中,只有到了延时时刻才能从该延时对列中获取任务否则获取不到…… 应用场景比较多,比如延时1分钟发短 ...
- 养成这8个编程习惯,你的Python性能将蹭蹭蹭地往上涨
Python不以性能见长,但掌握一些技巧,也可尽量提高程序性能,避免不必要的资源浪费. 1. 使用局部变量 尽量使用局部变量代替全局变量:便于维护,提高性能并节省内存. 使用局部变量替换模块名字空间中 ...
- 大量示例彻底搞懂Linux查找,which,whereis,locate,find
前言 Linux常用命令中,有些命令可以帮助我们查找二进制文件,帮助手册或源文件的位置,也有的命令可以帮助我们查找磁盘上的任意文件,今天我们就来看看这些命令如何使用. which which命令会在P ...
- java字符串应用之字符串编码转换
[转载]原文地址:https://blog.csdn.net/zhouyong80/article/details/1900100 无论是对程序的本地化还是国际化,都会涉及到字符编码的转换的问题.尤其 ...
- #Java学习之路——基础阶段(第三篇)
我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...
- [Swift]LeetCode696. 计数二进制子串 | Count Binary Substrings
Give a string s, count the number of non-empty (contiguous) substrings that have the same number of ...
- C# Serialize
一.序列化又称为串行化,是.NET运行时环境用来支持用户自定义类型的机制,目的是以某种存储给对象持久化,或者是将这种对象传输到另一个地方, 二. .NET框架提供了两种序列化的方式 一种是使用Bina ...
- 并发编程(十六)——java7 深入并发包 ConcurrentHashMap 源码解析
以前写过介绍HashMap的文章,文中提到过HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容 ...