Javascript:如何检查元素是否可见?

标签 javascript jquery selector visible zepto

我正在使用轻量级 zepto.js 框架,现在我需要测试页面上的元素是否可见……这是我的情况:

一个按钮触发函数 show_guides()

function show_guides() {
    $('#guides').toggle();

    if ( $('#guides').is(':visible') ) { // does not work
        //$.cookie('guides_visible', 'true');
        console.log("visible");
    } else {
        console.log("invisible");
        //$.cookie('guides_visible', null);
    }
}

如果 $('#guides') 可见,我想保存一个 cookie,如果不可见,我想删除它。

但是 zepto.js 不支持像 :visible 这样的选择器,所以我必须找到不同的方法。 任何想法如何做到这一点?现在我收到以下错误:

Uncaught Error: SYNTAX_ERR: DOM Exception 12

在 zepto 文档中我读到了这个......

For basic support of jQuery’s non-standard pseudo-selectors such as :visible, include the optional “selector” module.

但我不知道如何包含它。

有人可以帮我吗?提前谢谢你。

最佳答案

您可以检查显示 CSS 属性:

 function show_guides() {

        $('#guides').toggle();

        if ( $('#guides').css('display') == 'block' ) { 
            console.log("visible");
        } else {
            console.log("invisible");
        }
    }

关于Javascript:如何检查元素是否可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11391452/

相关文章:

javascript - 如何编写不占用内存的 JavaScript 应用程序?

javascript - 页面从菜单 anchor 滚动到右页,但不是从直接链接

javascript - 通过调用函数来清理 mouseenter 吗?

iphone - Objective-c 中的@selector 行为不符合预期

objective-c - respondsToSelector 的 Swift 等价物是什么?

javascript - 添加 CSS 后 Google 可视化图表不呈现

javascript - 在循环jquery中使用append、clone

javascript - 类型错误 : Cannot read property 'summary' of undefined React Js

php - Ajax 响应冲突的 css

jquery - 在 jquery 多重选择器中使用 "this"