日常开发经常会用到的一些方法逐渐添加到这个函数里面,基础的和业务的都可以添加,目前是 underscore
// 通过正则判断类名是否存在
function hasClass(el, className) {
let currentClassName = el.className || ''
let reg = new RegExp('(^|\\s)' + className + '(\\s|$)')
return reg.test(currentClassName)
}
// 添加类名
function addClass(el, className) {
if (!hasClass(el, className)) {
// 方式一
// let newClass = el.className.split(' ')
// newClass.push(className)
// el.className = newClass.join(' ')
// 方式二
let currentClassName = el.className || ''
el.className = currentClassName ?
currentClassName + ' ' + className : className
}
}
// 删除类名
function removeClass(el, className) {
if (hasClass(el, className)) {
let currentClassName = el.className || ''
el.className = (' ' + currentClassName + ' ').replace(' ' + className + ' ', ' ').trim();
}
}
// 切换类名
function toggleClass(el, className) {
hasClass(el, className) ? removeClass(el, className) : addClass(el, className);
}
网友评论