Задать вопрос
@Richswitch
junior

Как вывести DIV с помощью onclick JS?

Привет!
Моя практическая (и теоретическая) база по JS никакая совсем. Поэтому ломаю голову как сделать элементарные по логике вещи.
Помогите начать пожалуйста...
Есть HTML:
<div class="reg_wrap">
			<p id="form_open">регистрация / вход</p>
		</div>
						<form id="form" method="post" action="" style="visibility: hidden; opacity: 0; transition: all .4s">
							<label>Ваш логин :</label>
							<input class="form_style" type="text" name="name" required oninvalid="this.setCustomValidity('Введите логин!')" oninput="setCustomValidity('')"/><br />
							<label>Ваш пароль :</label>
							<input class="form_style" type="email" name="email" required oninvalid="this.setCustomValidity('Введите пароль!')" oninput="setCustomValidity('')"/><br />
							<label><a href="#">Забыли пароль?</a></label>
							<button class="button">Войти</button>
							<label><a href="#">Зарегистрироваться</a></label>
						</form>

Как я думаю:

1. К id="form_open" подключаю событие onclick()
2. После срабатывания onclick() меняются стили для id="form" на visibility: visible и opacity: 1
3. После повторного нажатия на id="form_open" срабатывает onclick и сбрасывает стили к дефолтному состоянию.

e85a4af695604e849414fc29ac06f171.png
И вот, даже не знаю с чего начать..
  • Вопрос задан
  • 807 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@mallat
Web & iOS developer
Inline-стили — не самая лучшая практика, вынесем в класс.
CSS-свойство visibility не анимируется, transition не сработает.

<form id="form" method="post" action="" class="form form--hidden">


.form {
  /* your styles */
}
.form--hidden {
  visibility: hidden; /* либо display: none, в зависимости от желаемого поведения */
}


document.getElementById('form_open').addEventListener('click', toggleForm);
function toggleForm() {
  document.getElementById('form').classList.toggle('form--hidden');
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
JaredWinter
@JaredWinter
Помог? - Отметь решением.
Если я правильно вас понял, то вы можете это сделать via jQuery
https://jsfiddle.net/5tLr6hw5/

Можете toggle поменять на slideToggle и будет вам эффект :)
Ответ написан
А можно и без JS, как-то так:
https://jsfiddle.net/249hqwot/
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы