gpt4 book ai didi

javascript - CSS 过渡不透明度只能从 0 到 1,或者替代过渡效果

转载 作者:技术小花猫 更新时间:2023-10-29 12:04:41 24 4
gpt4 key购买 nike

我有一个 div 元素,其中插入了我所有的 HTML。当这个 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)效果。

最佳答案

我会添加一个负责转换的类。如果您只在类中添加转换规则,您将获得您想要的单向转换:

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>

关于javascript - CSS 过渡不透明度只能从 0 到 1,或者替代过渡效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54638333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com