Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.06.2016, 22:51
Аспирант
Отправить личное сообщение для korih Посмотреть профиль Найти все сообщения от korih
 
Регистрация: 02.06.2016
Сообщений: 36

все свойства $.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--;
		}
	});


можно ли как-то укоротить функцию и сделать более красивее? не используя ту же проверку значения.
Ответить с цитированием
  #2 (permalink)  
Старый 17.06.2016, 22:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от korih
где можно вычитать все свойства jquery функции animate?
все css имеющие одно цифровое значение
Ответить с цитированием
  #3 (permalink)  
Старый 17.06.2016, 23:04
Аспирант
Отправить личное сообщение для korih Посмотреть профиль Найти все сообщения от korih
 
Регистрация: 02.06.2016
Сообщений: 36

спасибо за ответ, а если нужно по клику нужно сделать плавное появление тени, то через animate это уже не реализовать?
Ответить с цитированием
  #4 (permalink)  
Старый 17.06.2016, 23:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от korih
borderHeight
Ответить с цитированием
  #5 (permalink)  
Старый 17.06.2016, 23:22
Аспирант
Отправить личное сообщение для korih Посмотреть профиль Найти все сообщения от korih
 
Регистрация: 02.06.2016
Сообщений: 36

Сообщение от рони Посмотреть сообщение
извиняюсь, borderWidth )
Ответить с цитированием
  #6 (permalink)  
Старый 17.06.2016, 23:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

korih,
animate работает с числами, пишите что нужно изменить на каждом шаге step -- от animate получите число и вставите в css()
Ответить с цитированием
  #7 (permalink)  
Старый 17.06.2016, 23:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

korih,
setTimeout тоже лишний, то что вы написали встроено в animate
Ответить с цитированием
  #8 (permalink)  
Старый 17.06.2016, 23:31
Аспирант
Отправить личное сообщение для korih Посмотреть профиль Найти все сообщения от korih
 
Регистрация: 02.06.2016
Сообщений: 36

Можете пожалуйста написать простой пример?

к примеру если делать так
$(...).animate({var:value},function(){$(...).css({var:value});});

то функция css проявляется мгновенно, без плавного перехода
Ответить с цитированием
  #9 (permalink)  
Старый 17.06.2016, 23:34
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

<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>
Ответить с цитированием
  #10 (permalink)  
Старый 17.06.2016, 23:39
Аспирант
Отправить личное сообщение для korih Посмотреть профиль Найти все сообщения от korih
 
Регистрация: 02.06.2016
Сообщений: 36

спасибо за напутствие)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как вывести все свойства объекта? tiho Общие вопросы Javascript 17 15.11.2015 20:50
Как назначить событие при фокусе на все ссылки —сразу производить переход (по ссылке) developer Элементы интерфейса 4 27.10.2013 13:35
Получить все свойства как строку. boilroom Events/DOM/Window 1 20.06.2011 17:37
Название ячейки таблицы Questioner Общие вопросы Javascript 6 16.02.2011 09:58
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37