Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2017, 16:20
Новичок на форуме
Отправить личное сообщение для Артур20071 Посмотреть профиль Найти все сообщения от Артур20071
 
Регистрация: 27.04.2017
Сообщений: 5

События по клику
Здравствуйте. Кто в курсе, подскажите как навесить прямую и обратную анимацию при клике. То есть при первом клике элементы съезжают вниз, а при повторном, поднимаются вверх. Делаю так, но анимация просто отрабатывает туда-сюда, при каждом клике. Вот код
$(document).ready(function(){
$(".navbar-toggle").click(function() {
      $("#f").animate({ 
        marginTop: "320px",  // отступ от нижнего края элемента станет равным 6 дюймам
     
      }, 800,
         function(){
         $(this).animate({ 
        marginTop: "0px",  // отступ от нижнего края элемента станет равным 6 дюймам
      }, 800);
   
   });      
   });
   });
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2017, 17:29
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

такое лучше делать через тогл класс
<html>
<head>
	<meta charset="utf-8">
	<style>
	.f{
		margin-top: 0px;
		transition: 1s;
		width: 20px;
		height:20px;
		border: 1px solid red;
	}
	.animate{
		margin-top: 320px;
	}
</style>
</head>
<body>
<button class="navbar-toggle">rerwrewrwer</button>
	<div class="f"></div>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
	<script>
		$(document).ready(function(){
			$("button").click(function(){
				$(".f").toggleClass("animate");
			});
		});
	</script>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 06.06.2017, 18:20
Новичок на форуме
Отправить личное сообщение для Артур20071 Посмотреть профиль Найти все сообщения от Артур20071
 
Регистрация: 27.04.2017
Сообщений: 5

не работает через toggleClass
сделал по вашему примеру, но почему-то не отрабатывает вообще.
может ли быть причиной то, что у класса navbar выставлен position:fixed, хотя вряд-ли. это фиксированное меню, и при его раскрытии в мобильной версии мне нужно чтобы контент съезжал вниз, а при закрытии снова поднимался.
Ответить с цитированием
  #4 (permalink)  
Старый 06.06.2017, 18:50
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Не вешайте css свойства на айдишники, скорее всего из-за этого.
Ответить с цитированием
  #5 (permalink)  
Старый 06.06.2017, 18:58
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Уберите с айдишника, margin-top 0; должно заработать
Ответить с цитированием
  #6 (permalink)  
Старый 07.06.2017, 10:25
Новичок на форуме
Отправить личное сообщение для Артур20071 Посмотреть профиль Найти все сообщения от Артур20071
 
Регистрация: 27.04.2017
Сообщений: 5

все равно не работает
Убрал айдишник, сделал так
$(document).ready(function(){
			$(".navbar-toggle").click(function(){
				$(".f").toggleClass(".ani");
			});
		});


css

.f{

}
.ani{
margin-top: 320px;
}

не работает вообще
Ответить с цитированием
  #7 (permalink)  
Старый 07.06.2017, 11:23
Новичок на форуме
Отправить личное сообщение для Артур20071 Посмотреть профиль Найти все сообщения от Артур20071
 
Регистрация: 27.04.2017
Сообщений: 5

Разобрался и сделал так
$(document).ready(function(){	
		var count = 0;
$(".navbar-toggle").click(function() {
    count++;
    var isEven = function(someNumber) {
        return (someNumber % 2 === 0) ? true : false;
    };
    if (isEven(count) === false) {
        $(".f").animate({
            marginTop: "320px"
        }, 800);
    } else if (isEven(count) === true) {
        $(".f").animate({
            marginTop: "0px"
        }, 800);
    }
});
 });
Ответить с цитированием
  #8 (permalink)  
Старый 07.06.2017, 11:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

<html>
<head>
<style>
div {
    width: 40px;
    height: 40px;
    border:1px solid #777;
    margin-top: 0;
}
</style> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script> 
$(function() {
    var direction = 0;
    $('button').click(function() {
        direction ^= 1;
        $('#as').animate({
            marginTop: 320 * direction
        }, 800)
    });
});
</script> 
</head>
<body>
<div id="as"></div>
<button>GO</button>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
свойства объекта события Morr123 Элементы интерфейса 4 10.08.2016 06:36
По клику на картинку с ссылкой открывается портфолио, а нужен переход по ссылке nitoiti Общие вопросы Javascript 7 08.09.2014 14:39
Обработка события внутри события grifangel Общие вопросы Javascript 6 04.09.2014 12:34
Открытие/закрытие дива по клику ссылки и закрытие по клику вне слоя vertmann Общие вопросы Javascript 3 18.11.2013 14:36
Помогите сделать так чтоб по клику открывалось и по клику же закрывалось Maxsl_89 Элементы интерфейса 1 25.10.2013 16:11