Анимация при скролле
Подскажите пожалуйста. как исправить прерывание animate при скролле страницы?
|
Возможно при скроле у тебя запускается JS который блокирует(сильно затармаживает) анимацию
![]() |
скриптов никаких больше нет. анимация просто останавливается во время скроллинга. суть в том чтобы меню навигации плавно выезжало сверху по достижению какого то блока, а если активно скролить страницу, то плавности никакой нет. где то писали, что решили эту проблему, не написали как(((
|
<script> $(document).ready(function(){ $(window).scroll(function(){ var bo = $(this).scrollTop(); var a = $("#hid").css('top') $("#hid").html(bo); if ( bo >= 200) {$("#hid").stop().animate({'top':'50px'},500)}; if ( bo < 200) {$("#hid").stop().animate({'top':'-50px'},500)}; }) }) </script> |
Это наверно gif анимация?
или же CSS? или же флеш? или же jQuery функция animate? или же vanila JavaScript? делаю ставку на jQuery .animate() ![]() |
Еще с пяток картинок гадалок и возможно в теме появится минимальный пример на котором воспроизводится проблема. =)
|
похоже прерывание из за .stop(), но если его убрать, то следующая анимация срабатывает долго
|
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> body { margin:0; } #hid{ width: 100%; height: 50px; background: #FF0000; opacity: 1; position: fixed; top:-50px; } body{ height: 3000px; } </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(document).ready(function(){ $(window).scroll(function(){ var bo = $(this).scrollTop(); var a = $("#hid").css('top') $("#hid").html(bo); if ( bo >= 200) {$("#hid").animate({'top':'500px'},2000)}; if ( bo < 200) {$("#hid").animate({'top':'-500px'},2000)}; }) }) </script> </head> <body> <div id="hid"> </div> </body> </html> |
в общем проблему решил немного подругому
<script> $(document).ready(function(){ $(window).scroll(function(){ var bo = $(this).scrollTop(); $("#hid").html(bo); if ( bo >= 200) {$("#hid").slideDown(500)}; if ( bo < 200) {$("#hid").slideUp(500)}; }) }) </script> |
Часовой пояс GMT +3, время: 22:39. |