网站更换皮肤,有如下三种思路供参考:
-
预定义几套已经写好的样式文件,如下。然后动态切换选中的主题对应的css文件。
-
在根元素上定义一个用来设置主题的class,然后动态更换该class,以达到切换主题的目的。
-
以上两种方式都可以轻易达到切换主题的目的,但是有一个限制,就是我们只能有定义好的这几种主题可以切换。
今天我们来介绍一种新的更换主题的方式:
优点: 该方式能够通过拾色器选择自己喜欢的主题色,并根据这个选择的主题色自由生成我们想要的主题。
思路: 根据拾色器选择的颜色,配合一定的算法,动态生成一套主题样式,并将生成的样式插入到DOM中,作为全局样式。
步骤:
1. 新建主题定义组件theme-picker.vue, 代码如下:
注意:
- 设计中将主题样式文件写入在**<script type=‘text/template’ id=“themeColorInfo”>**中,目的有两点:
- 可以像在style标签中写样式一样,结构清晰且便于维护。
- 可以完美与{ {theme}}数据模板结合使用。
- 不会再Dom中显示,且可以很容易获取其中的样式内容。
- 由于是动态获取<script type=‘text