Skip to content

通过style属性来修改元素的样式,每修改一个样式,浏览器就需要重新渲染一次页面。

方法一:修改元素的class属性,我们可以通过修改元素的class,间接修改样式,用这种 方法可以同时

修改多个样式,性能比较好。

增加类名:+= "空格类名"

javascript
// 点击增加类名事件
btn.onclick = function(){
	toggleClass(body,"dark")
}

// 增加类名 obj:元素 cn: "需要增加的类名"
function addClass(obj,cn){
	if (!hasClass(obj,cn)){
		obj.className += " "+cn;	
	}
}

// 检测元素是否有某个class类
// 防止重复添加相同的类名
function hasClass(obj,cn){
	var reg = new RegExp("\\b"+cn+"\\b")
	return(reg.test(obj.className))
}

// 删除类
function removeClass(obj,cn){
	var reg = new RegExp("\\b"+cn+"\\b")
	obj.className = obj.className.replace(reg,"")
}

// 切换类名,有就删了,没有就加上
// 案例:主题切换,没有暗黑就加,有就移除
function toggleClass(obj,cn){
	if(hasClass(obj,cn)){
		removeClass(obj,cn)
	}else{
		addClass(obj,cn)
	}
}