Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2018, 00:08
Интересующийся
Отправить личное сообщение для DobrovolskyDen Посмотреть профиль Найти все сообщения от DobrovolskyDen
 
Регистрация: 05.05.2018
Сообщений: 10

Как сделать обратную функцию в моём случае?
Сделал скрипт, который меняет по счелчку фон div'a. На другой фон переходит, но теперь нужно операцию сделать в обратную сторону.
Вот код js, но никак не могу понять, как вернуть кнопку, которую сделал с помощью checkbox, в исходное положение при этом, чтобы фон был изначальным, т.е., до нажатия на кнопку.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" type="text/css" href="light.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/effect.js"></script>
</head>
<body>
<div id="wrapper">
<div class="red">
<input type="checkbox" name="switch" id="switch">
<label class="switch" for="switch"><!--<span></span>--></label>
</div>
</div>

</body>
</HTML>

$(function() {
$('#wrapper > div').on('click', function() {
$('#wrapper').css('background', $(this).css('background'));
});
});
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2018, 00:18
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

нужно сохранить изначальное значение в переменную
а потом когда нужно переменить стиль из переменной.
var x = $('#wrapper').css('background');
Ответить с цитированием
  #3 (permalink)  
Старый 06.05.2018, 00:26
Интересующийся
Отправить личное сообщение для DobrovolskyDen Посмотреть профиль Найти все сообщения от DobrovolskyDen
 
Регистрация: 05.05.2018
Сообщений: 10

А вы можете конкретнее написать, а то я не очень понимаю, как это сделать(
Заранее спасибо!
Ответить с цитированием
  #4 (permalink)  
Старый 06.05.2018, 11:14
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

$(function() {
	var x = $('#wrapper').css('background');
	var y = $('#wrapper > div').css('background');
	$('#wrapper > div').on('click', function() {
		$('#wrapper').css('background') == x ? $('#wrapper').css('background', y) : $('#wrapper').css('background', x);
	});
});
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2018, 20:29
Интересующийся
Отправить личное сообщение для DobrovolskyDen Посмотреть профиль Найти все сообщения от DobrovolskyDen
 
Регистрация: 05.05.2018
Сообщений: 10

Не работает, не знаю почему(
Ответить с цитированием
  #6 (permalink)  
Старый 06.05.2018, 20:38
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

DobrovolskyDen,
сделайте тестовый пример, разберемся в чем причина.
Ответить с цитированием
  #7 (permalink)  
Старый 06.05.2018, 22:02
Интересующийся
Отправить личное сообщение для DobrovolskyDen Посмотреть профиль Найти все сообщения от DobrovolskyDen
 
Регистрация: 05.05.2018
Сообщений: 10

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" type="text/css" href="light.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/effect.js"></script>
</head>
<body>
<div id="wrapper">

<div class="red">
<input type="checkbox" name="switch" id="switch">
<label class="switch" for="switch"><!--<span></span>--></label>
</div>
</div>

</body>
</HTML>

вот мой html

css:
@font-face {
font-family: MrGrieves-Regular; /* Гарнитура шрифта */
src: url(fonts/MrGrieves-Regular.otf); /* Путь к файлу со шрифтом */
}
html {
height: 100%;
}


body {
height: 100%;
display: inline;
margin: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
margin-left: 0px;
}



#wrapper {
height: 100%;
background: url(light.gif) no-repeat center bottom;
background-size: cover;


}
.switch {
display: block;
position: fixed;
width: 70px;
height: 100px;
margin-top: 170px;
margin-left: 900px;

border-radius: 70px;
background: #6A5928,
background: linear-gradient(#6A5928, #fdfdfd);
border: 1px solid rgba(0,0,0,0.1);

box-shadow:
0 12px 13px rgba(49,18,14,.6);

cursor: pointer;
visibility: visible;

}

.switch:before {
content: "";
position: absolute;
top: -10px; bottom: -10px;
left: -5px; right: -5px;
z-index: -1;

background: #6A5928,
border-radius: inherit;

box-shadow:
0 1px 1px rgba(#aea391,0.2),
0 3px 3px rgba(170, 160, 140, 0.4),

0 0 5px rgba(170, 160, 140, 0.5);
}

.switch:after {
content: "";
width: 60px;
height: 70px;
border-radius: 50%;
z-index: -1;
left: 18px;
top: 10px;
background: #6A5928;

-webkit-filter: blur(10px);
}
#switch {

clip: rect(0 0 0 0);
visibility: hidden;
}

#switch:checked ~ .switch {
box-shadow:

0 -6px 5px rgba(196,196,196,.2),
0px 0px 5px rgba(49,18,14,.6);
border: 5px;

}

#switch:checked ~ .switch:after {
display: none;
}

.red { background:url(light2.gif) no-repeat center bottom;
background-size: cover;
visibility:hidden;
}
#off {
font-family: MrGrieves-Regular;
font-size: 80px;
margin:0;
margin-left: 720px;
margin-top: 120px;
position: absolute;
text-shadow:

7px 6px 15px rgba(196,196,196,.4),
12px 10px 15px rgba(49,18,14,.6);

}
#off:before {
content: "";
position: absolute;
top: -10px; bottom: -10px;
left: -5px; right: -5px;
z-index: -1;

background: #6A5928,
border-radius: inherit;
}

#off1 {
margin:0;
text-shadow:

7px 6px 15px rgba(196,196,196,.4),
12px 10px 15px rgba(49,18,14,.6);

}

#switch:checked ~ #off:before {
font-family: MrGrieves-Regular;
font-size: 80px;
margin:0;
margin-left: 720px;
margin-top: 120px;
text-shadow:


}
}
js:
var intputs = document.getElementsByName('switch');
for(var i = 0, l = inputs.length; i < l; i++){
inputs[i].onclick = function(){ document.getElementById('#klass').innerHTML = ''; }
}
$(function() {
2
var x = $('#wrapper').css('background');
3
var y = $('#wrapper > div').css('background');
4
$('#wrapper > div').on('click', function() {
5
$('#wrapper').css('background') == x ? $('#wrapper').css('background', y) : $('#wrapper').css('background', x);
6
});
7
});
Ответить с цитированием
  #8 (permalink)  
Старый 06.05.2018, 22:17
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

у вас в цикле ошибка, в консоль посмотрите.
Ответить с цитированием
  #9 (permalink)  
Старый 06.05.2018, 22:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

DobrovolskyDen,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #10 (permalink)  
Старый 07.05.2018, 20:44
Интересующийся
Отправить личное сообщение для DobrovolskyDen Посмотреть профиль Найти все сообщения от DobrovolskyDen
 
Регистрация: 05.05.2018
Сообщений: 10

Да, я вижу, но я всё равно не пойму, что там не правильно. Мне весьма трудно дается js, но я реально не могу понять, что не так. Сейчас, в той строчке, где была ошибка я заменил l на length. Ошибка исчезла, но опять не работает. Подскажите, пожалуйста, что мне поменять в структуре или быть может вставить какой-то элемент. Очень Вас прошу, заранее спасибо!

Удалил, предыдущий скрипт код, вставил код, который вы написали =>
$(function() {
2
var x = $('#wrapper').css('background');
3
var y = $('#wrapper > div').css('background');
4
$('#wrapper > div').on('click', function() {
5
$('#wrapper').css('background') == x ? $('#wrapper').css('background', y) : $('#wrapper').css('background', x);
6
});
7
});
Но всё равно не работает(

Последний раз редактировалось DobrovolskyDen, 07.05.2018 в 21:00.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать чтобы кнопка «Назад» работала бы в пределах определенного сайта? Askeer Общие вопросы Javascript 0 12.10.2016 18:58
Как сделать поворот DIV клонов alexgrenn Элементы интерфейса 4 18.04.2016 21:58
Как сделать именованую функцию, запускающуюся при объявлении? Shitbox2 Общие вопросы Javascript 18 09.12.2012 15:45
Как сделать что бы при регистрации человека на моем сайте у него не появлялось... drunkwolfs Общие вопросы Javascript 2 07.08.2012 10:58
Как сделать загрузку изображения аля вконтакте? OklickSpb Общие вопросы Javascript 4 31.03.2012 17:12