2013-04-13 2 views
1

Моя конечная цель - заставить мой заголовок переключиться с позиции относительно фиксированной, когда окно дойдет до определенной точки. Пытаясь туда добраться, я придумал эту функцию, которая не дает мне никаких ошибок, но, похоже, ничего не делает. Может ли кто-нибудь помочь мне понять, почему? Это последний сценарий, загруженный на странице и JQuery вызывается перед ним ..jquery scrolltop script не работает

<script type="text/javascript"> 
$(function() { 
var $window = $(window); 
function top() { 
var $top = $window.scrollTop(); 
if($top > 100) { 
    $("header").css("position","absolute"); 
} 
else { 
    $("header").css("position","fixed");  
} 
}; 
}); 
</script> 

Что делать, если я хотел бы ограничить его для мобильной? не должны что-то вроде этой работы ...

<script type="text/javascript"> 
$(function() { 
    var $window = $(window).width(); 
    function windowWidth() { 
     if ($window < 480) { 
     function top() { 
      var $top = $window.scrollTop(); 
      if($top > 100) { 
      $("header").css("position","absolute"); 
      } 
      else { 
       $("header").css("position","fixed");  
      } 
    }; 
    $(window).scroll(top); 
     } 
    }; 
    }); 
</script> 

ответ

1

Использование $(window).scroll(top) или использовать setTimeInterval(top, 100);

Предполагая, что заголовок в качестве идентификатора

<script type="text/javascript"> 
$(function() { 
    var $window = $(window); 
     function top() { 
      var $top = $window.scrollTop(); 
      if($top > 100) { 
      $("#header").css("position","absolute"); 
      } 
      else { 
       $("#header").css("position","fixed");  
      } 
    }; 
    $(window).scroll(top); 
    }); 
</script> 
+0

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

+0

@Styphon Мое намерение было прокрутить по ошибке Я написал изменение размера. – Anoop

+0

Спасибо за помощь! Я взял ваш код и включил его, и он отлично работает. Теперь мне интересно, как я буду ограничивать это, когда происходит, когда это просматривается мобильными телефонами. Я немного изменил его, но не получил большой удачи. –

0

Причина это не делает ничего, вы не называть его , У вас нет ничего, чтобы вызвать код. Я предполагаю, что вы нашли this скрипт. Если вы заметили, что оно завернуто в $ (window) .scroll, а не просто функцию, чтобы вызвать его.

Вам необходимо изменить код таким образом:

$(window).scroll(function() { 
    if($(window).scrollTop() > 100) { 
     $("header").css("position","absolute"); 
    } else { 
     $("header").css("position","fixed");  
    } 
}); 
0

Я думаю, что вы не вызвали функцию .scroll() где-нибудь в данном коде, так что никогда не уволят:

<script type="text/javascript"> 
    $(function() { 
    var $window = $(window); 
    function top() { 
     var $top = $window.scrollTop(); 
     if($top > 100) { 
      $("header").css("position","absolute"); 
     }else { 
      $("header").css("position","fixed");  
     } 
    }; 
    $window.scroll(top); 
    }); 
</script> 
Смежные вопросы