我有以下脚本

(function(win){
    var doc = win.document;
    if (doc.querySelector && doc.addEventListener) {
        var toggler = doc.querySelector('.toggle-menu')
        var menu = doc.querySelector('.main-nav ul');
        menu.style.height = '0px';
        toggler.addEventListener('click',function(e) {
            e.preventDefault();
            if (menu.style.height == '0px') {
                menu.style.height = 'auto';
                if (menu.clientHeight != 0) {
                    menu.style.height = menu.clientHeight+'px';
                }
            } else {
                menu.style.height = '0px';
            }
        });
    }
})(this);

该脚本的 jQuery 版本是什么,因为我找不到与 clientHeight 等效的 jQuery。

最佳答案

clientHeight 不是 jQuery 属性。它是在 Internet Explorer 中引入的,但不是 W3C 规范的一部分。看起来它只在 Firefox 和 Internet Explorer 中受支持。不过,我刚刚测试过它可以在最新版本的 Chrome 中运行。不确定结果是否跨浏览器是标准的,尽管我在下面发布的链接表明没有。

此外,Mozilla建议在不支持此功能的浏览器中使用以下公式:



我假设这是元素本身的滚动条,而不是整个浏览器窗口,除非元素占据整个窗口。

资料来源:

  • clientHeight/clientWidth returning different values on different browsers
  • https://developer.mozilla.org/en/DOM/element.clientHeight
  • 关于javascript - 普通 javascript 到 jquery - clientHeight,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10423759/

    10-11 14:16