嘿伙计们我正在浏览modal.js插件,我遇到以下代码行的问题:
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
上述行可在git too.
上找到offsetWidth和clientWidth来自哪里,它们似乎不会在任何地方声明 插件,我也检查了MDN文档,它们似乎不是任何方法的名称 或函数,那么究竟什么是offsetWidth和clientWidth ??
同样为什么这是附加到body元素并从body中删除元素 标签是不同的语法?
this.$body[0].removeChild(scrollDiv);
什么是[0]?不能成为syntex,只需:
this.$body.removeChild(scrollDiv);
如果我在console.log这个。$ body,我得到
{ 0: <body.modal-open>, context: <body.modal-open>, length: 1 }
但如果我在console.log这个。$ body [0],我得到:
<body class="modal-open">.
如果有人能给我一个简短的解释,我真的很感激。
谢谢。
亚历山大。
答案 0 :(得分:1)
回答有关 offsetWidth 和 clientWidth
的问题HTMLElement.offsetWidth只读属性返回元素的布局宽度。通常,元素的offsetWidth是一个度量,它包括元素边框,元素水平填充,元素垂直滚动条(如果存在,如果呈现)和元素CSS宽度。
您可以在mdn中阅读。{/ p>
回答关于$ body的问题。
$ body是一个jQuery实例对象,因此它拥有自己的属性和方法接口。它包含html本机元素,当我说本机我的意思是dom节点。 $ body - jquery元素, $ body [0] - html元素。
关于jquery对象的好解释:
jQuery对象是一个包含DOM元素的类数组对象。 jQuery对象可以包含多个DOM元素,具体取决于 你使用的选择器。
此信息取自this question。