javascript - 纯 javascript 到 jquery - clientHeight

标签 javascript jquery

我有以下脚本

(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 can be calculated as CSS height + CSS padding - height of horizontal scrollbar (if present).

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

来源:

关于javascript - 纯 javascript 到 jquery - clientHeight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423759/

相关文章:

javascript - 更改推特流谓词(Node.js、socket.io)

javascript - JavaScript 究竟是如何解释的?

javascript - 找不到变量 __doPostBack

javascript - 如何使用jquery处理多个json对象

javascript - 如何在 onInit() 中获取缩略图中当前项目的数量 Fancybox 3

javascript - 无法自定义 "Copy To ClipBoard"按钮

jquery - jquery 单击事件后 IE9 崩溃

javascript - jQuery:从 <tr> 中拆分 <td>

javascript - 如何在 Kendo UI 的自动完成模板上设置 `this` 的范围?

javascript - Vue.js:如何连接 v-model 值