1

私の最終的な目標は、ウィンドウが特定のポイントに達したときに、ヘッダーを相対位置から固定位置に切り替えることです。そこにたどり着こうとして、エラーを出さないだけでなく、何もしていないように見えるこの関数を思いつきました。誰かが理由を理解するのを手伝ってくれますか? これはページにロードされた最後のスクリプトであり、jquery はその前に呼び出されます。

<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>
4

3 に答える 3

1

使う$(window).scroll(top)か使うかsetTimeInterval(top, 100);

ヘッダーをIDと仮定

<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>
于 2013-04-13T18:57:04.143 に答える
0

それが何もしない理由は、あなたがそれを呼んでいないからです。コードをトリガーするものは何もありません。あなたが見つけたこのスクリプトだと思います。関数だけでなく、$(window).scroll でラップされていることに気付いた場合は、それをトリガーします。

次のようにコードを変更する必要があります。

$(window).scroll(function() {
    if($(window).scrollTop() > 100) {
        $("header").css("position","absolute"); 
    } else {
        $("header").css("position","fixed");    
    }
});
于 2013-04-13T19:02:25.033 に答える
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>
于 2013-04-13T19:03:58.883 に答える