UNPKG

qt-vue3-directives

Version:
71 lines (64 loc) 1.53 kB
/** * 是否含有某个 class * @param el dom节点对象 * @param cls class 类名 * @return {boolean} */ function hasClass (el, cls) { if (!el || !cls) return false if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.') if (el.classList) { return el.classList.contains(cls) } else { return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1 } } /** * 增加 class 类 * @param el dom节点对象 * @param cls class 类名 */ function addClass (el, cls) { if (!el) return let curClass = el.className const classes = (cls || '').split(' ') for (let i = 0, j = classes.length; i < j; i++) { const clsName = classes[i] if (!clsName) continue if (el.classList) { el.classList.add(clsName) } else if (!hasClass(el, clsName)) { curClass += ' ' + clsName } } if (!el.classList) { el.className = curClass } } /** * 移除 class 类 * @param el dom节点对象 * @param cls class 类名 */ function removeClass (el, cls) { if (!el || !cls) return const classes = cls.split(' ') let curClass = ' ' + el.className + ' ' for (let i = 0, j = classes.length; i < j; i++) { const clsName = classes[i] if (!clsName) continue if (el.classList) { el.classList.remove(clsName) } else if (hasClass(el, clsName)) { curClass = curClass.replace(' ' + clsName + ' ', ' ') } } if (!el.classList) { el.className = trim(curClass) } } export { addClass, hasClass, removeClass }