通过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)
}
}