当相机与物体的距离越来越近,达到指定值时,我们让物体逐渐淡出,当相机与物体拉开距离后,再让其淡入,来处理当相机靠近物体时的穿模情况,效果图: 创建一个新的PBR Graph,命名为Fade,在
new fade(就起名叫做ifade)。 目标 fade是一个淡入淡出的滤镜,可以通过参数设置fade type(in表示淡入, out表示淡出),在视频的头部和尾部添加淡入淡出效果。 在使用过程中,fade有一些使用限制。 如果想一次实现多个fade效果,那么就要通过-filter-complex来组合多个fade,并合理安排调用顺序,稍显麻烦。 这次,ifade就尝试支持在同一个视频中实现多次fade效果。 ifade计划完成的目标是: 一次支持设置一个类型(淡入/淡出) 一次支持设置多个fade时间点 支持fade时长 分析 先看看原版fade是如何实现的。 Fade In 8 if (s->fade_state == VF_FADE_WAITING) { 9 s->factor=0; 10
"initLoad();">
"> <router-view /> </transition> </main>
; -webkit-animation: ball-spin-fade-loader 1s 0s infinite linear; animation: ball-spin-fade-loader 7.04545px; -webkit-animation: ball-spin-fade-loader 1s 0.12s infinite linear; animation: ball-spin-fade-loader ; -webkit-animation: ball-spin-fade-loader 1s 0.24s infinite linear; animation: ball-spin-fade-loader 0; -webkit-animation: ball-spin-fade-loader 1s 0.48s infinite linear; animation: ball-spin-fade-loader ; -webkit-animation: ball-spin-fade-loader 1s 0.72s infinite linear; animation: ball-spin-fade-loader
一、过渡效果 淡入淡出 最简单的过渡效果就是 fade,这个和 Bootstrap 组件使用的模态框打开过渡效果是一样的,只需要在模态框外面套上 Vue 内置的 transition 组件即可,并将 name 属性设置为 fade,这是一种淡入淡出效果,对应的样式代码在 style 中设置: <style scoped> ... .fade-enter-active, .fade-leave-active { transition: opacity 1s; } .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 左右滑动 除了淡入淡出外,还可以通过左右滑动的方式设置过渡效果,对应的过渡效果名称是 slide-fade,将 transition 组件的 name 属性名调整为 slide-fade,再修改过渡样式代码如下 : all .3s ease; } .slide-fade-leave-active { transition: all .8s; } .slide-fade-enter, .slide-fade-leave-to
.fade-leave-active { transition: opacity .5s; } .fade-enter, .fade-leave-to /* .fade-leave-active below , .fade-leave-active { transition: all 3s; } .fade-enter, .fade-leave-to /* .fade-leave-active below .fade-leave-active { transition: all 3s; } .fade-enter, .fade-leave-to /* .fade-leave-active below ; } .fade-leave-to /* .fade-leave-active below version 2.1.8 */ { opacity: 0; width: 100px; } p{ , 0.8, 1.0); } .slide-fade-enter, .slide-fade-leave-to /* .slide-fade-leave-active for below version
, .fade-leave-active { transition: opacity 0.5s; } .fade-enter, .fade-leave-active { 自定义过度类名 默认的.fade-enter变成.fade-in-enter 默认的.fade-enter-active变成.fade-in-active 默认的.fade-leave变成.fade-out-enter 默认的.fade-leave-active变成.fade-out-active <transition name="<em>fade</em>" enter-class="<em>fade</em>-in-enter" enter-active-class ="<em>fade</em>-in-active" leave-class="<em>fade</em>-out-enter" leave-active-class="<em>fade</em>-out-active" >
hello
</transition> .fade-in-active, .fade-out-active { transition: all 0.5s ease; } .fade-in-enter, .fade-leave-active { transition: opacity 0.3s; } .fade-enter, .fade-leave-to { opacity: 0; } </ > <script> export default { }; </script> <style> .fade-enter-active, .fade-leave-active { transition : opacity 0.3s; } .fade-enter, .fade-leave-to { opacity: 0; } </style> // App.vue <template> <div , .fade-leave-active { transition: opacity 0.3s; } .fade-enter, .fade-leave-to { opacity: 0; } </ class="red-box">
html fade-out fade-in css .ech-fade-out html fade fade-t fade-c-out fade-c-in fade-m-out , .ech-fade-l, .ech-fade-r, .ech-fade-c-in, .ech-fade-m-in, .ech-fade-m-out, .ech-fade-c-out, .ech-bounce-t :before, .ech-fade-t:before, .ech-fade-b:before, .ech-fade-l:before, .ech-fade-r:before, .ech-fade-c-in
/*设置所有动作延迟0.8秒过渡*/ transition: all 0.8s ease; } .fade-enter, .fade-leave-to "> 所以在CSS中设置的过渡类名要为: .fade-enter-active, .fade-leave-active => .name-enter-active, .name-leave-active .fade-enter, .fade-leave-to => .name-enter, .name-leave-to 如果transition没有设置name,则直接使用默认的 设置slide-fade的transition当还没进入,或者已经离开,设置动画效果*/ .slide-fade-enter, .slide-fade-leave-to -- 设置transition的name为slide-fade,所以需要在CSS中使用slice-fade开头的样式类编写过渡效果 --> <transition name="slide-<em>fade</em>
进入离开动画 在sandal的_animation.scss中我们定义了fade-in/out, shrink-in/out, up-in/out, down-in/out, left-in/out, right-in/out六组基础动画,下面我们以fade-in/out为例说明如何使用: 直接调用mixin: @include animation-fade-in; @include animation-fade-out ; 编译出的css为: .fade-in, .fade-out { -webkit-animation-duration: 0.3s; animation-duration: 0.3s; - webkit-animation-fill-mode: both; animation-fill-mode: both; } .fade-in { -webkit-animation-name ($className: fade, $from: 0),animation-fade-out($className: fade, $to: 0),第一个表示要用的class名字(会自动补上in/out
“ ——imweb 结一 进入离开动画 在sandal的_animation.scss中我们定义了fade-in/out, shrink-in/out, up-in/out, down-in/out, left-in/out, right-in/out六组基础动画,下面我们以fade-in/out为例说明如何使用: 直接调用mixin: @include animation-fade-in; @include animation-fade-out; 编译出的css为: .fade-in, .fade-out { -webkit-animation-duration: 0.3s; animation-duration fadeOut { 0% { opacity: 1; } 100% { opacity: 0; } } 当然为了扩展,mixin还定义了两个参数:animation-fade-in ($className: fade, $from: 0),animation-fade-out($className: fade, $to: 0),第一个表示要用的class名字(会自动补上in/out
showTitle.value } </script> <style> .fade-enter-active, .fade-leave-active { transition: opacity 0.5s linear; } .fade-enter-from, .fade-leave-to { opacity: 0; } </style> 我们需要做下面两点,就可以实现渐隐渐现的效果了 用transition标签把 想要过渡的部分夹住的同时,把name设为fade。 设置以fade开头的一组动画样式。 这里在进入 和 离开的时候 是由 fade-enter-active 和 fade-leave-active 控制的。 进入的开始和结束,是由fade-enter-from和fade-enter-to 控制的。
如果你使用了name="fade",那么 v- 前缀会替换为 fade-。 # css过渡 demo HTML
{ opacity: 0; } /* 进入中 */ .fade-enter-active { transition: all 0.7s ease-in-out; } /* 进入之后 */ .fade-enter-to { opacity: 1; } /* 元素离开之前 */ .fade-leave-from { opacity: 1; transform: rotate(0); } /* 离开中 */ .fade-leave-active { transition: all 0.3s ease-in; } /* 离开之后 */ .fade-leave-to { opacity: 0; transform : rotate(360deg); } /* 移动元素的动画 */ .fade-move { transition: transform 0.3s ease-out; } 子组件组件 <template --
“ ——imweb 结一 进入离开动画 在sandal的_animation.scss中我们定义了fade-in/out, shrink-in/out, up-in/out, down-in/out, left-in/out, right-in/out六组基础动画,下面我们以fade-in/out为例说明如何使用: 直接调用mixin: @include animation-fade-in; @include animation-fade-out; 编译出的css为: .fade-in, .fade-out { -webkit-animation-duration: 0.3s; animation-duration fadeOut { 0% { opacity: 1; } 100% { opacity: 0; } } 当然为了扩展,mixin还定义了两个参数:animation-fade-in ($className: fade, $from: 0),animation-fade-out($className: fade, $to: 0),第一个表示要用的class名字(会自动补上in/out
2.6、LEDC渐变步长 esp_err_t ledc_set_fade_with_step(ledc_mode_t speed_mode, ledc_channel_t channel, uint32 2.7、开启LEDC渐变功能 esp_err_t ledc_fade_start(ledc_mode_t speed_mode, ledc_channel_t channel, ledc_fade_mode_t fade_mode); speed_mode:LEDC速度; channel:通道; fade_mode:是否阻塞模式。 ledc_fade_func_install(0); while (1) { ledc_set_fade_with_step(ledc_channel[1].speed_mode ledc_set_fade_with_step(ledc_channel[1].speed_mode, ledc_channel[1].
实现简单的页面切换淡入淡出效果 <template>
自定义两组样式,来控制 transition 内部的元素实现动画 --> <style> .fade-enter-active, .fade-leave-active { /*设置所有动作延迟0.8秒过渡*/ transition: all 0.8s ease; } .fade-enter, .fade-leave-to "> 所以在CSS中设置的过渡类名要为: .fade-enter-active, .fade-leave-active => .name-enter-active, .name-leave-active 设置slide-fade的transition当还没进入,或者已经离开,设置动画效果*/ .slide-fade-enter, .slide-fade-leave-to -- 设置transition的name为slide-fade,所以需要在CSS中使用slice-fade开头的样式类编写过渡效果 --> <transition name="slide-<em>fade</em>