0
jQuery(function($) {
    function fixDiv() {
      var $cache = $('header'); 
      if ($(window).scrollTop() > 10) 
        $cache.css({'position': 'fixed', 'top': '0', 'background': 'rgba(0,0,0,0.8)', 'padding': '0'}); 

        //$('#top-menu a').css({'padding': '17px 20px'});
      else
        $cache.css({'position': 'absolute', 'top': '0', 'background': 'rgba(0,0,0,0)', 'padding': '20px 0'});
        //$('#top-menu a').css({'padding': '30px 20px'});
    }
    $(window).scroll(fixDiv);
    fixDiv();
});

これは現在私が持っているものであり、var $ cache = headerが表示されているので、別の行を追加したかったので、背景が変更されると、ヘッダーのフォントサイズも変更されます。

jQuery(function($) {
    function fixDiv() {
      var $cache = $('header'); 
      if ($(window).scrollTop() > 10) 
        $cache.css({'position': 'fixed', 'top': '0', 'background': 'rgba(0,0,0,0.8)', 'padding': '0'}); 
       $('h1').css({'font-size': '26px'});
      else
        $cache.css({'position': 'absolute', 'top': '0', 'background': 'rgba(0,0,0,0)', 'padding': '20px 0'});
        $('h1').css({'font-size': '36px'});
    }
    $(window).scroll(fixDiv);
    fixDiv();
});

私は何を間違えましたか?

4

1 に答える 1

4

複数のステートメントには中括弧が必要です。

  if ($(window).scrollTop() > 10) 
  {
    $cache.css({'position': 'fixed', 'top': '0', 'background': 'rgba(0,0,0,0.8)', 'padding': '0'}); 
    $('h1').css({'font-size': '26px'});
  }
  else
  {
    $cache.css({'position': 'absolute', 'top': '0', 'background': 'rgba(0,0,0,0)', 'padding': '20px 0'});
    $('h1').css({'font-size': '36px'});
  }

コードを適切にインデントすると、コードが機能しなかった理由がより明確になります。

  if ($(window).scrollTop() > 10) 
     $cache.css({'position': 'fixed', 'top': '0', 'background': 'rgba(0,0,0,0.8)', 'padding': '0'}); 
  $('h1').css({'font-size': '26px'});
  else
     $cache.css({'position': 'absolute', 'top': '0', 'background': 'rgba(0,0,0,0)', 'padding': '20px 0'});
  $('h1').css({'font-size': '36px'});

(間違っているだけでなく無効です-elseは孤立しています)。

于 2012-04-15T15:40:16.107 に答える