我有一个覆盖 div,它在滚动时淡入,在向上滚动时淡出。工作正常。我的用户在表单中输入文本时会对此 div 感到恼火,它有时会隐藏发送按钮。 因此,当焦点输入时,我尝试用 JS 隐藏它。在桌面上工作起来就像一个魅力,但在移动设备上却失败了,因为键盘弹出时也会移动内容。因此它会触发滚动事件,使其再次可见。
我想知道如何以最巧妙的方式解决这个问题,下面的代码片段中有任何示例吗?
$(window).scroll(function(){
if($(this).scrollTop()>800){
$('.symo').fadeIn()
}else{
$('.symo').fadeOut()
}
});
$('form').delegate(':input', 'focus', function() {
$('.symo').hide();
})
.delegate(':input', 'blur', function() {
$('.symo').show();
});
最佳答案
这是一个工作片段,也去掉了委托(delegate)的东西。
谢谢!
$(window).scroll(function(){
if($(this).scrollTop()>800 && !$("input,textarea").is(":focus")){
$('.symo').fadeIn()
}else{
$('.symo').fadeOut()
}
});
关于javascript - Jquery 在输入焦点上隐藏 DIV,被窗口滚动破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48511117/