js连续改变css属性时,transitoin失效了
主要的css代码:#notice-box{position:fixed;top:-100%;left:20%;display:none;opacity:0;transit...
主要的css代码:
#notice-box{
position:fixed;
top:-100%;
left:20%;
display:none;
opacity: 0;
transition:top 1s ease;
}
javascript代码
document.getElementById('notice-box').style.display = 'block';
document.getElementById('notice-box').style.opacity = '1';
document.getElementById('notice-box').style.top = '10%';
这三句想让notice-box缓慢地出来,但是实际效果是相当于transition没有设置,直接就弹出来了。
而把js代码改成:
document.getElementById('notice-box').style.display = 'block';
alert(1);
document.getElementById('notice-box').style.opacity = '1';
document.getElementById('notice-box').style.top = '10%';
会弹出一个提示,点击确定后可以看到notice-box缓慢地从上面下来也有透明度渐变的效果
怎么解决js连续修改css代码transition失效的问题?? 展开
#notice-box{
position:fixed;
top:-100%;
left:20%;
display:none;
opacity: 0;
transition:top 1s ease;
}
javascript代码
document.getElementById('notice-box').style.display = 'block';
document.getElementById('notice-box').style.opacity = '1';
document.getElementById('notice-box').style.top = '10%';
这三句想让notice-box缓慢地出来,但是实际效果是相当于transition没有设置,直接就弹出来了。
而把js代码改成:
document.getElementById('notice-box').style.display = 'block';
alert(1);
document.getElementById('notice-box').style.opacity = '1';
document.getElementById('notice-box').style.top = '10%';
会弹出一个提示,点击确定后可以看到notice-box缓慢地从上面下来也有透明度渐变的效果
怎么解决js连续修改css代码transition失效的问题?? 展开
2个回答
展开全部
这里牵扯到浏览器的元素绘制问题, 具体的可以不用懂
只需要知道可以使用一些技巧可以强制浏览器更新元素的样式信息使得它知道你应用了过渡就好
举一个常用的方式
document.getElementById('notice-box').style.display = 'block';
document.getElementById('notice-box').clientWidth
document.getElementById('notice-box').style.opacity = '1';
document.getElementById('notice-box').style.top = '10%';
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询