场景叙述:点击某一个按钮,能够加载一个新的css文件,并且页面进行相应的更改

还写了一篇使用alternate stylesheet更改样式的文章,各有优缺使用link的rel属性一键换肤

// index.html ---->需要引入一个style1.css和index.js文件
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>一键换肤</title><link rel="stylesheet" href="./style1.css" /></head><body><div class="root">hello</div><button id="changbtn">改变颜色</button><script src="./index.js"></script></body>
</html>

另外需要准备一个style2.css进行替换

// style1.css
.root {color: red;
}
// style2.css
.root {color: blue;
}

js需要实现的功能就是,当用户点击button的时候,能够加载style2.css并且页面进行相应的变化

let btn = document.getElementById('changbtn');
let changeStyleName = 'style2';let change = name => {let link = document.createElement('link');link.rel = 'stylesheet';link.href = name + '.css';document.head.appendChild(link);
};btn.addEventListener('click', _ => {
// 进行解耦,方便后期更改change(changeStyleName);
});

Tips:应用的场景应该是html中没有行内样式,所有的样式放在一个个css文件中,毕竟行内样式的优先级最高,除了一个个进行更改别无选择,整体的思想是利用css代码的覆盖性,即如果有相同的样式,后面的样式会覆盖前面的样式,而不是替换

JavaScript一键换肤相关推荐

  1. Spring Boot一键换肤,so easy!

    SpringMVC 源码分析系列最后一篇,和大家聊一聊 Theme. Theme,就是主题,点一下就给网站更换一个主题,相信大家都用过类似功能,这个其实和前面所说的国际化功能很像,代码其实也很像,今天 ...

  2. opengl源码 实现无缝切换图片过场_手把手讲解 Android hook技术实现一键换肤

    前言 产品大佬又提需求啦,要求app里面的图表要实现白天黑夜模式的切换,以满足不同光线下都能保证足够的图表清晰度. 怎么办?可能解决的办法很多,你可以给图表view增加一个toggle方法,参数Str ...

  3. vue+element如何一键换肤和保存换肤

    因为有人问我如何一键换肤,我就随手做个案例,因为随手写的,里面命名就很随意了,但是不影响阅读. 1:assets目录下建立一个theme.scss 代码如下: .black{.alldiv{backg ...

  4. Vue + Element UI+Scss + Vuex一键换肤 , 一键换字体大小 ,动态替换全局主题颜色

    一.前言 其实我这个写法每个UI库都通用 , 不局限于ElementUI , 看明白思路就知道怎么写了 一键换肤 , 动态替换全局主题颜色功能已经实现很久了 , 在项目验收的时候出现了一个小问题 , ...

  5. Android一键换肤原理简述

    简介 Android对应用进行换肤操作,首先要生成一个对应的皮肤包,在要换肤的应用中收集需要换肤的控件,获取皮肤包里的资源,一键换肤时遍历View树,对要换肤的控件进行换肤.下面总结为4个步骤 步骤 ...

  6. 前端 “一键换肤“ 的几种方案

    作者:熊的猫 原文:https://juejin.cn/post/7063010855167721486 前端 "一键换肤" 的几种方案 前言 现在越来越多的网站都提供了拥有换肤( ...

  7. android换肤的实现方案,Android应用开发之Android一键换肤功能实现

    本文将带你了解Android应用开发之Android一键换肤功能实现,希望本文对大家学Android有所帮助. < 市面上对数的App都提供换肤功能,这里暂且不讲白天和夜间模式 下图是网易云音乐 ...

  8. 前端项目一键换肤vue+element(ColorPicker)

    前端项目一键换肤 1.需要配色的都是用变量声明 2.增加颜色选择器 3.改变颜色,更改初始值 1.需要配色的都是用变量声明 /* 全局样式 */ body {// 无需改变--light_color_ ...

  9. js实现一键换肤效果

    方法1 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8& ...

最新文章

  1. jdk8中流的使用(二)
  2. SQL2008代理作业出现错误: c001f011维护计划创建失败的解决方法
  3. c#异步socket
  4. matlab 数据保存为txt excel mat
  5. VPGAME 的 Kubernetes 迁移实践
  6. PHP经典算法 (转载)
  7. python输入流和输出流_python读写gbk、utf-8等输入输出流
  8. Taro+react开发(85):taro路由参数
  9. android http文件上传,Android Http文件上传方法和实践
  10. 输入身份证号,输出出生日期
  11. el-upload进度条无效,on-progress无效问题解决方案
  12. Flume的开发之 自定义 source 自定义 sink 自定义拦截器
  13. request 和response 中的setCharacterEncoding区别
  14. 排序算法之——希尔排序分析
  15. C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
  16. 微信小程序自定义组件(Toast)
  17. 经济学人精读丨中国的电子商务
  18. 南方航空认沽权证21日上市 初始行权价为7.43元
  19. linux下pdb文件除水,blast+本地化中blastp操作(基于PDB库)—linux
  20. python一元二次方程组

热门文章

  1. 好莱坞美剧电影英雄主义价值观的问题
  2. python中函数与函数之间的调用,总是晕菜,整理如下,有不对或者补充的请提出来~...
  3. java 秒表暂停_java – 停止秒表
  4. app小程序手机端Python爬虫实战01-Uiautomator2自动化抓取工具介绍
  5. 基于图像去雾处理的雾霾污染程度评估(任务书+lunwen+翻译及原文+答辩PPT)
  6. Hdoj 2671 Can't be easier
  7. 直链站php源码,源码库分享PHP版百度网盘直链/外链源码
  8. Phonics 自然拼读法 ai, oa,ie, ee,or,j Teacher:Lamb
  9. 微信人工客服转服务电话号码呢?
  10. Infopath入门到精通系列-4 Infopath myschema.xsd文件 解析