Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.06.2017, 20:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

winch,
вы сперва ответьте себе на вопрос чего вам надо. Ведь css анимация доступа только в CSS3, в версиях браузера не поддерживающих ее анимации не будет. Если вас это устраивает, можете делать на ней. Полезно будет сначала почитать что это такое. Там же и о поддержке.

Кроме этого в сети найдете и еще много ресурсов по ней с примерами различными.

Если же вас не устраивает такой расклад, то jQery .animate().
Ответить с цитированием
  #12 (permalink)  
Старый 06.06.2017, 20:45
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<html>
<head>
	<meta charset="utf-8">
	<style>
	div{
		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>

вот вам пример из соседней темы
Ответить с цитированием
  #13 (permalink)  
Старый 06.06.2017, 20:46
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

свойство transition: изначально должно быть у элемента а не присваиваться вместе с классом
Ответить с цитированием
  #14 (permalink)  
Старый 06.06.2017, 20:48
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если же задача при наведении/уходе мыши конкретному объекту нечто увеличить/уменьшить, то есть простые зависимости, то можно transition. Примеров этому тоже достаточно, вот например, есть там и почитать об этом.
Ответить с цитированием
  #15 (permalink)  
Старый 06.06.2017, 20:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

winch,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
    .right{
      margin:100px;
    }
    .left{
       margin:0px
    }
    .animate  {
      transition: all 1s;
    }
    .hot{
          border: 8px dashed Gray; padding: 5px; height: 100px; width: 100px;
     }
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
   var cls = ["left","right"];
    $(".hot").on("click" , function() {
    $(this).removeClass(cls.reverse().join(" ")).addClass("animate "+cls[0])
})
});
  </script>
</head>

<body>
 <style type="text/css">


   </style>
  <div class="hot">click me</div>

</body>
</html>
Ответить с цитированием
  #16 (permalink)  
Старый 06.06.2017, 20:56
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

laimas,
кажется css3 сейчас уже практически все браузеры поддерживают.

а надо мне вот что: допустим делаю класс .ActiveItem и хочу чтобы при присвоении этого класса элемент плавно стал крупнее и переместился в центр. а при снятии этого класса - элемент тоже плавно вернулся к своему обычному состоянию.
но, как уже писал, параметры элементов должны быть не в js, а в css, чтобы настройки можно было делать не меняя скрипты, поэтому animate неподходит.

за ссылку спасибо, почитаю.
Ответить с цитированием
  #17 (permalink)  
Старый 06.06.2017, 20:59
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

j0hnik,
теперь понятно, спасибо, попробую так …
кстати, по моим наблюдением при использовании transition изменения происходят не плавно, а какими-то скачками рывками. хотя может это от браузера зависит…
Ответить с цитированием
  #18 (permalink)  
Старый 06.06.2017, 21:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от winch
кажется css3 сейчас уже практически все браузеры поддерживают.
Это только новые, а проблема то не в этом, а в том какими браузерами пользуются ваши клиенты. Тут нужна статистика, ну или на кого вы изначально рассчитываете - только на современные, а что будет на старых вам наплевать. Или же вы пишите код так, чтобы даже пользователи старых браузеров не плевались на вашем сайте.

Это все надо учитывать обязательно. К примеру, есть заказчики, которые требуют поддержки даже IE6, хотя часто бывает, что они даже и не знают есть ли таковые у них посетители. Но это факт, и "бороться" с такими заказчиками очень сложно. Но бывают и оправданными такие действия, тут ничего не попишешь.

В общем по данному вопросу только вам решать.

Сообщение от winch
чтобы при присвоении этого класса элемент плавно стал крупнее и переместился в центр. а при снятии этого класса - элемент тоже плавно вернулся к своему обычному состоянию.
Код выше от рони, только размер прописать и позицию. Но сначала все-таки изучить вопрос, тем более что база то несложная, но при фантазии можно ей и чудеса делать, почти как в Голливуде.
Ответить с цитированием
  #19 (permalink)  
Старый 06.06.2017, 21:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Сообщение от winch
при использовании transition
плавность настраивается от предустановленных ease до формулы cubic-bezier
Ответить с цитированием
  #20 (permalink)  
Старый 06.06.2017, 21:07
Аспирант
Отправить личное сообщение для winch Посмотреть профиль Найти все сообщения от winch
 
Регистрация: 30.04.2015
Сообщений: 87

рони,
т. е. идея в том чтобы сделать служебный класс .animate и каждый раз при изменеии состояния элемента добавлять этот класс?
ок, попробуем так.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery и jquery ui Miraliko jQuery 1 29.04.2017 16:21
Анимация по селектору класса через each Siend Общие вопросы Javascript 3 01.10.2015 18:33
Анимация с добавлением класса Ahsar jQuery 6 26.06.2013 11:22
Анимация на jQuery Mukhtar AJAX и COMET 1 11.05.2012 16:53
Свойства/методы класса TicTac Общие вопросы Javascript 5 03.07.2011 14:53