CSS转换未在增加高度时更新背景色
CSS Transition Not Updating Background Color on Increased Height
非常简单。我有一个白色背景的页面。当我单击一个按钮时,div会显示内容,div后面的背景会变暗。我有一个昏暗的2秒过渡电影般的效果
当div中的信息不超过浏览器的既定高度时,dim可以正常工作。但是,如果div框增加了浏览器的高度,则在转换过程中,当前显示给用户的新高度的任何部分都不会变暗(IE保持白色)。如果在效果期间新高度的一部分位于浏览器窗口下方,并且向下滚动,则会停止该部分窗口的过渡。否则,如果在过渡过程中看不到高度的新部分,则会一直变暗
看起来它在被看到的时候无法绘制背景变化,这看起来很傻。这是我的代码:
CSS#body-back是body标签的id
#body-back {
-webkit-transition: background 2s ease-in-out;
-moz-transition: background 2s ease-in-out;
-ms-transition: background 2s ease-in-out;
-o-transition: background 2s ease-in-out;
transition: background 2s ease-in-out;
}
JS
<script>
pop = function() {
var back = document.getElementById('body-back');
back.style.background = "rgba(0,0,0,0.8)";
}
popaway = function() {
var back = document.getElementById('body-back');
back.style.background = "rgba(0,0,0,0)";
}
#Show the div box
$( "#button" ).click(function( e ) {
e.stopPropagation();
$("#divbox").toggle();
pop();
});
$( "#divbox" ).on('click',function( e ) {
e.stopPropagation();
});
#Hide the div box if user clicks outside of div box
$( document ).on('click', function( e ) {
if( e.target.id != 'divbox' ){
$( "#divbox" ).hide();
popaway();
}
});
</script>
同样需要注意的是,当我没有背景转换,只有一个基本的开关时,它会完美地渲染,即使在任何新的浏览器高度空间上也是如此。关于它为什么不想利用暴露的新空间,有什么想法吗?谢谢大家!
编辑我一直在Chrome中运行它,但刚刚在Safari中尝试过。对于Safari,即使新高度在屏幕外,它仍然不会绘制更新的背景。
编辑2-Div Box CSS
.popup {
position:absolute;
left:0px;
margin-left:100px;
margin-right:100px;
width:85%;
font-family:verdana;
font-size:13px;
padding:10px;
background-color:white;
border:2px solid grey;
z-index:100000000000000000;
display:none;
}
position:absolute不会影响父元素的高度。固定的位置将使其覆盖在顶部,完全忽略页面的滚动。
听起来这对你有用
.popup {
top: 50px;
position:fixed; /* sit on top of everything, ignore scrolling on the body*/
overflow:scroll;
width:70%;
}
默认情况下,身体应该占据100%的高度,不确定为什么以前没有发生这种情况。
很高兴它成功了,我最终能帮上忙!
EDIT:这并不能解决这里的问题,(但在CSS中放入样式通常是一件好事:)
尝试设置背景色的动画
此问题解释设置背景不透明度的动画。通常将所有样式放在CSS中比放在JavaScript中更容易。请参阅此问题
.pop{
background-color: rgba(0, 0, 0, 0.8)
}
#body-back {
//polyfills..
transition: background-color 2s ease-in-out;
background-color: rgba(0, 0, 0, 1.0);
}
javascript
pop = function() {
$('#body-back').addClass('pop');
}
popaway = function() {
$('#body-back').removeClass('pop');
}
- jquery.each(第2行)添加背景色
- 如果使用javascript函数屏幕太小,我该如何更改HTML文件的背景色
- 悬停时淡入背景色
- 如何在单击单元格中的链接值时动态更改表行背景色
- Gridview内部的下拉框在回发时未保留背景色
- 用背景色智能填充引导列
- 带有背景色的高图表柱形图
- 带有javascript的选定文本的背景色
- 当代码使用背景色时无法更改位置
- 将元素放置在方框顶部时更改方框的背景色
- 检索表中元素的背景色
- 在Wordpress中创建随机背景色
- 存在事件的单元格的jQuery DatePicker背景色(加载时)
- CSS转换未在增加高度时更新背景色
- 如何设置按钮来更改按钮的背景色
- 避免使用背景色和边框色
- 更改表列javascript的背景色
- 使用随机背景色更新多个类
- 根据输入更新背景色
- 使用jquery更新表行的背景色