Jump to content
  • 0

Помогите с алгоритмом.


amelice
 Share

Question

Нужно сделать ротатор.

Фишка в том, что он неопределенной высоты в определенном разрешении окна, допустим, когда ширина окна < 1000 пикселей.

 

Желаемый эффект: чтоб когда один слайд плавно исчезал, второй был бы за ним.

Что-то  уже сделала, но, у меня эффект получается дерганый, из-за того что элемент либо block, либо none, то есть второй элемент появляется после того как первый становится none.

 

http://codepen.io/amelice/pen/JGKbB?editors=001

 

upd: и не только дерганый, в добавок с белой заставой.

Edited by amelice
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Почему бы не взять готовый и проверенный?

Или хочется написать свой? Если свой, то лучше использовать css анимации.

 

в очередной раз постчу ссылку http://nervgh.github.io/pages/angularjs-and-animatecss/

Edited by nerv
Link to comment
Share on other sites

  • 0

Почему бы не взять готовый и проверенный?

Или хочется написать свой? Если свой, то лучше использовать css анимации.

 

в очередной раз постчу ссылку http://nervgh.github.io/pages/angularjs-and-animatecss/

Потому что, по каким то критериям не подходят готовые.

Вопрос не в том, что каким способом анимацию производить, а как продумать алгоритм так, чтоб можно было

1. высоту неопределенную сохранить (сайт адаптивный, блок с одной части переходит в другую, и сами слайды разной высоты),

2. и плавность в анимации добиться.

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

 

По ссылке анимация fadeIn не плавная, анимация от  белой пелены (или как правильно назвать?).

А я в очередной раз про свой любимый слайдер http://coolcarousels.frebsite.nl/c/72/ )

Полистайте все примеры. Там есть вроде похожий.

не нашла похожего, за ссылку спасибо. интересные примеры.

Link to comment
Share on other sites

  • 0
1. высоту неопределенную сохранить

Как ты собралась сохранить то, что не определено?) Задай функцией область определения.

 

По ссылке анимация fadeIn не плавная

анимация такая, какая прописана в animate.css

Link to comment
Share on other sites

  • 0
Как ты собралась сохранить то, что не определено?) Задай функцией область определения.

я к тому что высота каждого слайда разная, и чтобы ротатор подстраивался под эту высоту.

Edited by amelice
Link to comment
Share on other sites

  • 0

активный слайд показан, остальные скрыты.

 

При анимации у нас есть активный слайд(в данный момент) и следующий слайд(тот который надо показать).

Есть маска -- блок в котором находятся слайды.

При начале смены слайда узнать высоту активного слайда и задать ее маске. Слайдам задать абсолютное позиционирование.

Узнать высоту следующего слайда. Можно показать слайд, и задать ему opacity: 0, так как он на абсолюте то он не растянет маску

Начать анимацию слайдов(opacity) и одновременно анимировать высоту маски до высоты следующего слайда.

 

После окончания анимации скрываем ненужные слайды, показываем нужный, убираем абсолютное позиционирование со слайдов, убираем высоту с маски.

  • Like 1
Link to comment
Share on other sites

  • 0

Спасибо!

При анимации у нас есть активный слайд(в данный момент) и следующий слайд(тот который надо показать). Есть маска -- блок в котором находятся слайды. При начале смены слайда узнать высоту активного слайда и задать ее маске. Слайдам задать абсолютное позиционирование. Узнать высоту следующего слайда. Можно показать слайд, и задать ему opacity: 0, так как он на абсолюте то он не растянет маску Начать анимацию слайдов(opacity)

Мне не нужно высоту маски анимировать, а все остальное ОТЛИЧНО получается. )

Ссылку обновила http://codepen.io/amelice/pen/JGKbB?editors=001, если кому интересно )

Edited by amelice
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy