Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.09.2014, 10:40
Интересующийся
Отправить личное сообщение для dmitriy_88 Посмотреть профиль Найти все сообщения от dmitriy_88
 
Регистрация: 05.09.2014
Сообщений: 10

Анимация при скролле
Подскажите пожалуйста. как исправить прерывание animate при скролле страницы?
Ответить с цитированием
  #2 (permalink)  
Старый 05.09.2014, 10:49
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Возможно при скроле у тебя запускается JS который блокирует(сильно затармаживает) анимацию
Ответить с цитированием
  #3 (permalink)  
Старый 05.09.2014, 10:56
Интересующийся
Отправить личное сообщение для dmitriy_88 Посмотреть профиль Найти все сообщения от dmitriy_88
 
Регистрация: 05.09.2014
Сообщений: 10

скриптов никаких больше нет. анимация просто останавливается во время скроллинга. суть в том чтобы меню навигации плавно выезжало сверху по достижению какого то блока, а если активно скролить страницу, то плавности никакой нет. где то писали, что решили эту проблему, не написали как(((
Ответить с цитированием
  #4 (permalink)  
Старый 05.09.2014, 11:05
Интересующийся
Отправить личное сообщение для dmitriy_88 Посмотреть профиль Найти все сообщения от dmitriy_88
 
Регистрация: 05.09.2014
Сообщений: 10

<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>
Ответить с цитированием
  #5 (permalink)  
Старый 05.09.2014, 11:07
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Это наверно gif анимация?
или же CSS?
или же флеш?
или же jQuery функция animate?
или же vanila JavaScript?

делаю ставку на jQuery .animate()
Ответить с цитированием
  #6 (permalink)  
Старый 05.09.2014, 11:09
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

Еще с пяток картинок гадалок и возможно в теме появится минимальный пример на котором воспроизводится проблема. =)
Ответить с цитированием
  #7 (permalink)  
Старый 05.09.2014, 11:25
Интересующийся
Отправить личное сообщение для dmitriy_88 Посмотреть профиль Найти все сообщения от dmitriy_88
 
Регистрация: 05.09.2014
Сообщений: 10

похоже прерывание из за .stop(), но если его убрать, то следующая анимация срабатывает долго
Ответить с цитированием
  #8 (permalink)  
Старый 05.09.2014, 11:26
Интересующийся
Отправить личное сообщение для dmitriy_88 Посмотреть профиль Найти все сообщения от dmitriy_88
 
Регистрация: 05.09.2014
Сообщений: 10

<!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>
Ответить с цитированием
  #9 (permalink)  
Старый 05.09.2014, 11:52
Интересующийся
Отправить личное сообщение для dmitriy_88 Посмотреть профиль Найти все сообщения от dmitriy_88
 
Регистрация: 05.09.2014
Сообщений: 10

в общем проблему решил немного подругому
<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>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки кнопки при нажатии и обратно при повторном нажатии mff Общие вопросы Javascript 15 03.05.2018 14:12
Анимация в real-time приложениях(Нужны советы) ak-o AJAX и COMET 5 05.04.2013 11:34
Круговой индикатор процесса - анимация при движении мышью Sam L Элементы интерфейса 2 15.02.2013 13:37
jquery слайдер, анимация при переключении вкладки KiTaeZa Events/DOM/Window 1 05.09.2011 20:52
Цикличность анимация? SashaBorandi jQuery 1 25.12.2008 09:20