Я пишу веб-сайт и хочу создать темный/светлый режим. У меня есть переключатель, который переключается при нажатии, и он успешно меняется на мою вторую таблицу стилей css. Как мне переключиться НАЗАД на исходную таблицу стилей?
HTML-
<link id = "pagestyle" rel = "stylesheet" type = "text/css" href = "assets/css/main.css">
<script>
function swapStyleSheet(sheet) {
document.getElementById('pagestyle').setAttribute('href', 'assets/css/main2.css');
}
</script>
<!-- Rectangular switch -->
<label class = "switch">
<input type = "checkbox" onchange = "swapStyleSheet()"">
<span class = " slider"></span>
</label>
Слушайте флажок. Проверяется он или нет. Вы можете попробовать этот код. Это должно работать.
<link id = "pagestyle" rel = "stylesheet" type = "text/css" href = "assets/css/main.css">
<script>
function swapStyleSheet(sheet) {
if (document.getElementById("myCheck").checked){
document.getElementById('pagestyle').setAttribute('href', 'assets/css/main2.css');
}else{
document.getElementById('pagestyle').setAttribute('href', 'assets/css/default.css');
}
}
</script>
<!-- Rectangular switch -->
<label class = "switch">
<input type = "checkbox" id = "myCheck" onchange = "swapStyleSheet()"">
<span class = " slider"></span>
</label>
Пожалуйста, используйте этот код, я надеюсь, что он будет полезен для вас.
<link id = "pagestyle" rel = "stylesheet" type = "text/css" href = "main.css">
<script>
function swapStyleSheet(sheet) {
if ($(sheet).prop("checked") == true){
document.getElementById('pagestyle').setAttribute('href', 'main2.css');
}else{
document.getElementById('pagestyle').setAttribute('href', 'main.css');
}
}
</script>
<!-- Rectangular switch -->
<label class = "switch">
<input type = "checkbox" onchange = "swapStyleSheet(this)">
<span class = "slider"></span>
</label>
<link id = "pagestyle" rel = "stylesheet" type = "text/css" href = "assets/css/main.css">
<script>
function swapStyleSheet(sheet) {
switch(document.getElementById("myCheck").checked) {
case true:
document.getElementById('pagestyle').setAttribute('href', 'assets/css/main2.css');
break;
default:
document.getElementById('pagestyle').setAttribute('href', 'assets/css/default.css');
}
</script>
<!-- Rectangular switch -->
<label class = "switch">
<input type = "checkbox" id = "myCheck" onchange = "swapStyleSheet()"">
<span class = " slider"></span>
</label>
ваш код выдаст ошибку. Вы получите синтаксическую ошибку.
Просто используйте свойство .href
, оно намного короче, чем .setAttribute()
. Функционирующую демонстрацию можно просмотреть здесь
<!DOCTYPE html>
<html>
<head>
<link href = "default.css" rel = "stylesheet">
</head>
<body>
<input id='switch' type = "checkbox">
<script>
document.querySelector('#switch').onchange = swap;
function swap(e) {
document.querySelector('link').href = this.checked ? 'alt.css' : 'default.css';
}
</script>
</body>
</html>
Возможный дубликат Изменение javascript таблицы стилей