CSS过渡不透明度只从0到1,或可替代的过渡效果

问题描述 投票:3回答:2

我有我的这所有的HTML插入一个div元素。我想在效果上创建一个淡出的时候这个内容div的变化。目前,我的不透明度设置为0,将东西这个div之前,然后将其设置为1,这样效果发生。我的CSS的问题是,对于这两种情况下的作品,无论是从0到1或1到0。有没有一种方法,使之只能从0到1过渡时工作;有没有在单个页面应用程序从一个页面转移到另一个更好的选择?

HTML

<!DOCTYPE html>
<html>
<!-- Imports -->
    <body>
        <div id="app" class="app"></div>
     </body>
</html>

CSS

.app
{
    background-color:#f8f8f8;
    opacity:0;
    transition: all 1s;
   -webkit-transition: all 1s;
}

使用Javascript

当页面加载不透明度设置为1,效果发生:

document.getElementById("app").style.opacity='1';

当另一个页面加载,其中不透明度现在设置为0,从而使过渡再次生效时发生问题。

编辑更新的问题的更好的解释:

元素的不透明性不会改变。我想不透明度只有从0时到工作 - > 1,所以,在我插入新的内容设置为0再次(从而使正在发生的效果,这才是问题),当所有数据已插入时,在衰落(不透明度会从0到1)的效果将发生。

javascript html css css-transitions
2个回答
4
投票

我想补充一类是负责的过渡。如果你只只在类中添加转换规则,你会得到的单向转变你后:

document.querySelector('button').addEventListener('click', () => {
  document.querySelector('.app').classList.toggle('change');
});
.app {
  background-color:#f8f8f8;
  opacity:0;
}

.app.change {
  opacity: 1;
  transition: all 1s;
}
<div class="app">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad nesciunt adipisci, ab ea deleniti ullam eius alias aperiam, explicabo dolore nihil, ex dolores perferendis. Commodi ipsa dignissimos magni consectetur soluta!</div>

<button>toggle opacity</button>

3
投票

当你想要它动画只能添加transition财产。我会告诉你如何用两个类来做到这一点。

.app {
 background-color:#f8f8f8;
 opacity: 0;
}
.app.is-loaded {
 transition: all 1s;
 -webkit-transition: all 1s;
 opacity: 1;
}

...

document.getElementById("app").classList.add('is-loaded');

现在,当您删除类,透明度会不会有一个过渡回0

© www.soinside.com 2019 - 2024. All rights reserved.