代码拉取完成,页面将自动刷新
import isUndefined from './utils/types/isUndefined'
import isFunction from './utils/types/isFunction'
import isBoolean from './utils/types/isBoolean'
import pixel from './pixel'
import isElement from './isElement'
import _getElementSizes from './_getElementSizes'
import setStyle from './setStyle'
/**
* 获取 DOM 元素的 outerWidth 值
* ========================================================================
* @method outerWidth
* @param {HTMLElement} el
* @param {Number|String|Function|Boolean} [val]
* @param {Boolean} [includeMargin]
* @return {Number|*}
*/
const outerWidth = (el, val, includeMargin = false) => {
let width
if (!isElement(el)) {
return false
}
const {
marginLeft,
marginRight,
borderLeft,
borderRight,
paddingLeft,
paddingRight,
offsetWidth
} = _getElementSizes(el)
// val 为 Function 类型,用来获取自定义的 outerWidth
if (isFunction(val)) {
return val(el, {
marginLeft,
marginRight,
borderLeft,
borderRight,
paddingLeft,
paddingRight,
offsetWidth
})
}
// 设置了 val 参数
if (!isUndefined(val)) {
width = offsetWidth
// 获取 outerWidth,包含边距
if (isBoolean(val)) {
includeMargin = val
/* istanbul ignore else */
if (includeMargin) {
width += marginLeft + marginRight
}
return width
}
/* istanbul ignore else */
if (width !== val) {
width = val - (borderLeft + borderRight + paddingLeft + paddingRight)
/* istanbul ignore else */
if (includeMargin) {
width -= marginLeft + marginRight
}
setStyle(el, 'width', pixel(width))
}
} else {
return offsetWidth
}
}
export default outerWidth
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。