javascript - Jquery 在输入焦点上隐藏 DIV,被窗口滚动破坏

标签 javascript jquery

我有一个覆盖 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/

相关文章:

Jquery 回调函数没有改变 css 属性

javascript - 通过 Javascript 更改页面背景

php - 使用ajax将php文件加载到div中

php - 使用多个 Ajax 调用更新页面内容,这些调用取决于先前调用的输出

javascript - 使用正则表达式选择具有相似 id 的元素 - jquery

用于按多个条件对对象中的数组进行排序的 JavaScript 算法

javascript - 带标签的 Chrome 扩展

javascript - jQuery 选择符合条件的表

javascript - 我的 Javascript 不工作。不知道它是不是函数,我是怎么调用它的,我使用的 CSS 还是什么

javascript - 如何在wordpress模板中定义jquery