css transition 实现滑入滑出

时间: 2018-12-20阅读: 4466标签: 动画

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比较复杂,提供了几个默认的:

  1. linear,匀速变化。
  2. ease,逐渐变慢,默认值就是这个。
  3. ease-in,加速变化。
  4. ease-out,减速变化。
  5. ease-in-out,先加速再减速。
  6. 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: 0;
   opacity: 0;
   width: 0; // 由于是滑入,因此需要这个div的宽度从0慢慢变大,变到300px,效果就是从侧边滑进来了。
}
  • 当需要这个div滑入的时候,需要使用js动态给这个div添加一个class:"active"
.active {
                opacity: 1;
                visibility: 1;
                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: 0;
            height: '80%';
            visibility: 0;
            opacity: 0;
}
.active { // 这是滑入状态
                opacity: 1;
                visibility: 1;
                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/
来源:https://www.cnblogs.com/yadiblogs/archive/2018/12/19/10145625.html


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/1652

关闭

CSS3动画属性:transform变形

Transform字面上就是变形,改变的意思。在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。

css3 动画的暂停和重新开始

CSS3的animation直接提供一个 animation-play-state 属性规定动画正在运行还是暂停 。写动画样式的时候特别注意下不同浏览器的兼容性,加上对应的前缀 :

Js HTML DOM动画

为了演示如何通过 JavaScript 来创建 HTML 动画,我们将使用一张简单的网页:JavaScript 动画是通过对元素样式进行渐进式变化编程完成的。这种变化通过一个计数器来调用。当计数器间隔很小时,动画看上去就是连贯的。

CSS波纹动画

以上就是css波纹动画的代码和效果图。想要看具体的效果可以复制代码浏览,当然啦,也可以设置属于自己的漂亮的背景颜色和链接。

JS动画和CSS动画

CSS实现动画:animation transition transform;JS实现动画:setInterval setTimeout requestAnimationFrame。CSS动画:优点(浏览器可以对动画进行优化)

transform 的副作用

transform是一些效果的集合,主要是移动、旋转、缩放和倾斜这四种基本操作,还可以通过设置matrix矩阵来实现更复杂的效果。变形transform可以实现2D和3D两种效果。

jQuery中的事件、动画、表单应用

页面对不同访问者的响应叫做事件。事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。在事件中经常使用术语 触发或 激发,常用click()方法触发

Transform(CSS动态属性的开始)

transform 属性向元素应用 2D 或 3D 转换;该属性允许我们对元素进行旋转、缩放、移动或倾斜。这两点是Transform的概念和应用场景,重点在于2D和3D的转换,那么呢?

CSS3 动画的实现

什么是CSS3动画?在CSS中,动画是一种让元素逐渐改变样式的效果。 您可以使用@keyframes关键字创建动画,后跟动画的名称。要使动画跨浏览器兼容,您需要使用供应商前缀:

Js实现动画缓存效果

先获取要移动的元素;判断如果原本是否保存了计时器,如果有的话就立刻清空,重新启动一个新的计时器;开始计时器;每次对计算的数字进行取整 , 防止因为JavaScript精准不足而导致无限循环浪费性能

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!