JS | 青训营笔记

151 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

JS | 青训营笔记

切换主题颜色

常见的切换主题颜色有:日夜主题的切换。接下来使用例子来说明:

  • 版本一 :

image.png

上面代码我们获取到html中的btn按钮和body标签,当我们触发btn按钮时候,通过e.target.innerHTML获取到点击的对象html文本进行判断,如果是太阳(表示日间),那么我们把背景色换成黑色,然后字体换成白色,再把按钮切换成黑夜即可。else语句中逻辑同上。

  • 版本二 :

image.png 这里也是通过获取btn按钮,添加点击事件,if语句判断类名是日or夜,进行不同的操作,重点还是在if语句中的逻辑处理,我们通过改变body的className值,然后我们在CSS样式中定义好类名为night的样式即可。
对比:版本二比版本一优化更好,因为是通过纯改变CSS样式来达到夜间和早上的主题效果,做到了HTML/CSS/JS各司其职。

  • 版本三 :

image.png image.png 这里我们先设置input标签为不展示,并绑定一个id。然后我们写一个label标签代表日夜切换按钮,通过for属性来绑定input标签。当我们点击了label标签,由于for属性同时联动到input标签,input进行一个checked属性的切换,选中时候为夜间,我们再通过设置CSS样式即可。
对比:版本三中我们不需要使用JS代码,只通过标签自身的属性和CSS样式即可完成我们的目标。

结论:

  • HTML/CSS/JS 各司其职
  • 应当避免不必要由JS直接操作样式
  • 可以使用class来表示状态
  • 纯展示类交互寻求零JS方案