CSS Div 类之间的转换仅以一种方式发生
CSS Div Transition between classes only happening one way
编辑:已找到解决方案。
我有一个Javascript函数,可以让div出现,然后在几秒钟后消失。但是,我希望div 过渡,以便它流畅,并且不会重新出现并立即消失。我已经让它工作了...部分地。调用函数时,div 会平滑显示,但会消失而不进行转换。我做了很多故障排除但没有成功,并寻找了很多没有帮助的解决方案。
这是我的 HTML:
<div id="uiLog" class="ui_hidden">
</div>
Javascript:
var ui = function () {
}
ui.log = function (message) {
document.getElementById('uiLog').innerHTML += (message+"<br>");
clearTimeout(uiTimeout);
document.getElementById('uiLog').className = 'uiLog_shown';
uiTimeout = setTimeout(function() {
document.getElementById('uiLog').className = 'ui_hidden';
document.getElementById('uiLog').innerHTML = ("");
}, 2000);
}
最后,CSS:(删除不必要的部分以便于查看(
.uiLog_shown {
-webkit-transition: all .5s ease;
-moz-transition: all .5s ease;
-o-transition: all .5s ease;
transition: all .5s ease;
z-index: 100;
position: fixed;
overflow:hidden;
top: 1em;
right: 1em;
padding: 7px;
border color: #271a0c;
border-style: solid;
max-width: 15%;
}
.ui_hidden {
top: -500px;
-webkit-transition: all .5s ease;
-moz-transition: all .5s ease;
-o-transition: all .5s ease;
transition: all .5s ease;
position: absolute;
}
我想要什么:
- 调用该函数时会慢慢缓解div
- 在设置超时运行其过程后,div 会慢慢缓和
什么不起作用,什么确实有效:
- 调用该函数时会慢慢缓解div
- 设置超时运行后,div 立即消失
那么问题出在哪里呢?为什么它会过渡到而不是向外过渡?另外,请不要使用Jquery,只需坚持使用JS和CSS。
我重写了一些类和动画,但基础没有改变:
var ui = function () {};
var uiTimeout;
ui.log = function (message) {
clearTimeout(uiTimeout);
document.getElementById('uiLog').innerHTML = (message);
document.getElementById('uiLog').className = 'ui_shown';
uiTimeout = setTimeout(function() {
document.getElementById('uiLog').className = 'ui_hidden';
}, 2500);
}
setTimeout(function() {
ui.log('Test')
}, 500);
#uiLog {
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
transition: all 1s ease;
z-index: 100;
position: fixed;
overflow: hidden;
top: 1em;
padding: 7px;
border-color: #271a0c;
border-style: solid;
max-width: 15%;
opacity: 0;
}
#uiLog.ui_shown {
opacity: 1;
}
#uiLog.ui_hidden {
opacity: 0;
}
<div id="uiLog">
</div>
transition: all .5s ease;
只会给你 in 的过渡效果,但对于两个 in,你使用 transition: all .5s ease-in-out;
.uiLog_shown {
-webkit-transition: all .5s ease-in-out;
-moz-transition: all .5s ease-in-out;
-o-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
z-index: 100;
position: fixed;
overflow:hidden;
top: 1em;
right: 1em;
padding: 7px;
border color: #271a0c;
border-style: solid;
max-width: 15%;
}
.ui_hidden {
top: -500px;
-webkit-transition: all .5s ease-in-out;
-moz-transition: all .5s ease-in-out;
-o-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
position: absolute;
}
相关文章:
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- Angularjs:如何让ui选择只有一种方式的模型竞标
- 单击()的另一种方式
- Rails 以一种方式格式化 DateTime.now 和 DateTime.yesterday 另一种方式 - 我如何
- 另一种方式是Javascript中的函数堆叠
- CSS Div 类之间的转换仅以一种方式发生
- require.js是require的另一种方式
- 在创建 toLowerCase 函数时,一种方式比另一种方式更好
- Ionic 和 Angularjs - 形式绑定似乎只是一种方式
- Javascript hide/show 切换在 Opera 中是双向的,但在其他浏览器中只能以一种方式工作
- 以两种不同的方式编写函数:一种方式会导致 TypeError,另一种方式不会.为什么
- NG-模型似乎只在模态视图内的离子单选按钮上绑定一种方式
- 编写 if 语句的另一种方式
- AngularJS - CSS 动画只能以一种方式工作
- 存储JS变量和画布数据的另一种方式,用户可以稍后检索
- 从以另一种方式编写的输入中返回一个字符串
- 用q创造承诺的另一种方式
- Javascript-切换元素只能用一种方式!还有URL附加所需的帮助
- 是他们的一种方式,我可以将javascript嵌入到GWT代码
- 访问AngularJS隔离作用域的另一种方式