все свойства $.animate и событие по второму клику
Добрый вечер всем!
вопрос первый: где можно вычитать все свойства jquery функции animate? (height, opacity, borderWidth и тд и тп). вопрос второй: как проще всего сделать обработчик по второму клику? к примеру юзаю по кнопке и рамка увеличивается. юзаю второй раз и она уменьшается до первоначального значения (обратный эффект). сейчас делаю таким методом: var scroll = 0; $("#news").click(function() { if(scroll == 0){ $(".right").animate({marginLeft:"60%"}, 350); $(".right").css({boxShadow: "inset 15px 0px 8px -10px rgba(163, 163, 163, 0.7)"}); $("#news").animate({borderHeight: "10px"}, 350); scroll++; }else{ $(".right").animate({marginLeft:"0px"}, 350); $("#news").animate({borderWidth: "0"}, 350); setTimeout(function(){$(".right").css({boxShadow: "none"});}, 350); scroll--; } }); можно ли как-то укоротить функцию и сделать более красивее? не используя ту же проверку значения. |
Цитата:
|
спасибо за ответ, а если нужно по клику нужно сделать плавное появление тени, то через animate это уже не реализовать?
|
Цитата:
|
Цитата:
|
korih,
animate работает с числами, пишите что нужно изменить на каждом шаге step -- от animate получите число и вставите в css() |
korih,
setTimeout тоже лишний, то что вы написали встроено в animate |
Можете пожалуйста написать простой пример?
к примеру если делать так $(...).animate({var:value},function(){$(...).css({var:value});}); то функция css проявляется мгновенно, без плавного перехода |
<body> <style> .right { display: block; width: 90px; height: 90px; background-color: lightpink; } #news { display: block; width: 60px; height: 40px; border: 0 solid coral; } </style> <div class="right"></div> <button id="news">click</button> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script> var $button = $('#news'), $elem = $('.right'); $button.on('click', function(e) { $(this).animate({ borderWidth: '10px' }, { duration: 350, esing: 'linear', complete: function() { $(this).animate({ borderWidth: '0' }); } }); $elem.css('box-shadow', 'inset 15px 0px 8px -10px rgba(163, 163, 163, 0.7)') .animate({ marginLeft:"60%" },{ duration: 350, easing: 'swing', complete: function() { $(this).css('box-shadow', 'none') .animate({ marginLeft: '0' }); } }); }); </script> </body> |
спасибо за напутствие)
|
Часовой пояс GMT +3, время: 20:54. |