【发布时间】:2015-03-10 09:22:06
【问题描述】:
当单击div 时,我正在尝试将transition-delay 设置为body 的overflow 属性,方法是向body 添加一个类,如下所示:
$("div").click(function(){
$("body").addClass("no_overflow");
});
div{
background:lime;
height:2000px;
}
.no_overflow{
overflow:hidden;
}
body{
overflow:auto;
transition: overflow 0 2s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>I'm div</div>
但是,这似乎不起作用(没有延迟)。我在这里做错了吗?
我知道这可以通过使用 setTimeout 函数来实现,但想知道为什么不能使用 css 过渡来实现?是否有可以应用 css 过渡的特定样式属性?
【问题讨论】:
-
我想到,作为替代方案,您可以转换
height而不是overflow属性以实现大致相同的外观。 -
@TylerH:是的,可以尝试。但是为了做到这一点,必须注意浏览器的高度。此外,当
overflow是hidden时,它不会以相同的方式裁剪窗口。无论如何,我最终使用了setTimeout。 ;)
标签: css css-transitions