实现网页换肤效果是一个常见的需求,它可以让用户根据自己的喜好选择网页的外观主题。
HTML部分
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>换肤效果示例</title>
<link rel="stylesheet" href="styles/default.css">
</head>
<body>
<div class="container">
<h1>欢迎来到换肤示例页面</h1>
<p>点击按钮切换不同的皮肤风格</p>
</div>
<button id="skinBtn">切换皮肤</button>
<script src="script.js"></script>
</body>
</html>
CSS部分(styles文件夹下)
default.css
body {
font-family: Arial, sans-serif;
background-color: #fff;
color: #333;
}
.container {
text-align: center;
margin-top: 50px;
}
#skinBtn {
display: block;
margin: 20px auto;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
}
dark.css
body {
background-color: #333;
color: #fff;
}
.container {
text-align: center;
margin-top: 50px;
}
#skinBtn {
display: block;
margin: 20px auto;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
background-color: #555;
color: #fff;
}
light.css
body {
background-color: #f0f0f0;
color: #333;
}
.container {
text-align: center;
margin-top: 50px;
}
#skinBtn {
display: block;
margin: 20px auto;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
background-color: #e0e0e0;
color: #333;
}
JavaScript部分
(script.js)
document.addEventListener('DOMContentLoaded', function() {
const skinBtn = document.getElementById('skinBtn');
let currentSkin = 'default'; // 默认皮肤
skinBtn.addEventListener('click', function() {
switch (currentSkin) {
case 'default':
changeSkin('dark');
break;
case 'dark':
changeSkin('light');
break;
case 'light':
changeSkin('default');
break;
default:
changeSkin('default');
}
});
function changeSkin(skin) {
const link = document.querySelector("link[rel='stylesheet']");
link.href = `styles/${skin}.css`;
currentSkin = skin;
}
});
说明
1. HTML部分:页面中有一个按钮用于触发换肤操作,初始加载的是 default.css 样式文件。
2. CSS部分:分别定义了 default.css (默认风格)、 dark.css (暗黑风格)和 light.css (浅色风格)三套不同的样式。
3. JavaScript部分:通过监听按钮的点击事件,根据当前皮肤状态切换到下一种皮肤。 changeSkin 函数通过修改 <link> 标签的 href 属性来加载不同的CSS文件,从而实现换肤效果。