我有一个点击功能隐藏并显示div。
当点击div时我希望身体有overflow: hidden;
- 这有效,但当我关闭div时," body"仍有overflow: hidden;
,但我希望它为overflow: scroll;
你能帮助我吗?
我已阅读this post但未设法解决此问题。
这是我的jQuery:
$(document).ready(function() {
$(".headeropen").hide();
$(".headerclosed").show();
$('.headerclosed').click(function() {
$(".headeropen").slideToggle();
$('body').css('overflow', 'hidden');
});
});
答案 0 :(得分:0)
您可以使用回调功能。 400
是slideToggle的默认速度,swing
是宽松的默认值:
$(document).ready(function() {
$(".headeropen").hide();
$(".headerclosed").show();
$('.headerclosed').click(function() {
$(".headeropen").slideToggle(400, 'swing', function(){
if($('body').css('overflow') == 'scroll' || $('body').css('overflow') == 'auto'){
$('body').css('overflow','hidden');
}else{
$('body').css('overflow','scroll');
}
});
});
});
答案 1 :(得分:0)
可能有点矫枉过正,但我写了这个小提琴:http://jsfiddle.net/lharby/qjmnakkc/
JS:
$('.headerclosed').click(function(){
$(".headeropen").slideToggle();
$('body').toggleClass('hiddenOverflow');
});
CSS:
body {
overflow:scroll;
}
.hiddenOverflow {
overflow:hidden;
}