Groyreg
@Groyreg
Front-end

Как при клике опустить элемент а при следущем клике поднять и так до бесконечности?

Помогите дописать функцию:

$(document).on('click', '.genetics-link', function () {
		$('.your-info-block').css('margin-top', '150px');
	});


Необходимо, чтобы, когда кликаешь на элемент он вот так опустился на 150px, а когда в следующий раз нажмешь поднялся обратно, ну и чтобы это работало сколько угодно раз, а не один прогон.
  • Вопрос задан
  • 212 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега CSS
Задать элементу transition:

.item {
  transition: transform 1s;
}

Определить класс, который будет задавать смещение:

.move {
  transform: translateY(150px);
}

Переключать класс при клике:

$(document).on('click', '.item', function() {
  $(this).toggleClass('move');
});

https://jsfiddle.net/rx2tgc0m/

ИЛИ

Можно обойтись без js - перед элементом прячем чекбокс; сам элемент делаем label'ом, который будет переключать состояние этого чекбокса; смещаем элемент, если перед ним находится отмеченный чекбокс:

<input type="checkbox" id="xxx">
<label class="item" for="xxx">
  ...

input[type="checkbox"] {
  display: none;
}

input[type="checkbox"]:checked + .item {
  transform: translateY(150px);
}

https://jsfiddle.net/56y7vwjd/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 15:52
3000 руб./за проект
25 нояб. 2024, в 15:43
1500 руб./за проект