2017-05-17 7 views
0

をしないで、私はelseステートメントにjQueryを使って問題を発射していないし、それが原因不足のために、それを自分で解決することはなく、できない理由を私はその非常に単純かなり確信している{}他に動作していません私のJavaScript知識のうち、誰かが私にその問題を教えてくれることを願っています。jQueryのはinnerWidthは、ページの更新

私のjQueryのスクリプトは、アクションの二組、639px以上用と、以下の設定1を持っています。これは、ページのロードに動作しますが、あなたは1600pxから600PXにサイズを小さくする場合、高さは要素のまま、それはheight-min: autoにそれを変更しません639pxの下に行くにもかかわらず、窓の高さが残ります。

$(function() { 
    $(window).resize(function() { 
    if (window.innerWidth >= 639) { 
     windowHeight = $(window).innerHeight(); 
     $('.nanoContainer, .flexAligner, .vegas-container').css('min-height', windowHeight); 
     $("body.home").vegas({ 
      delay: 8000, 
      transition: 'fade', 
      transitionDuration: 8e3, 
      timer: false, 
      slides: [ 
       { src: "/wp-content/uploads/slide2-0.jpg" }, 
       { src: "/wp-content/uploads/slide2-1.jpg" }, 
       { src: "/wp-content/uploads/slide2-2.jpg" } 
      ], 
      animation: "kenburns" 
     }); 
    } else { 
     // This works but only if the page is loaded with the viewpoint less of 639px 
     // The min-height auto doesn't work. 
     $('.nanoContainer, .flexAligner .vegas-container').css('min-height', 'auto'); 
     $(".home .intro").vegas({ 
      delay: 8000, 
      transition: 'fade', 
      transitionDuration: 8e3, 
      timer: false, 
      slides: [ 
       { src: "/wp-content/uploads/slide2-0.jpg" }, 
       { src: "/wp-content/uploads/slide2-1.jpg" }, 
       { src: "/wp-content/uploads/slide2-2.jpg" } 
      ], 
      animation: "kenburns" 
     }); 
    } 
    }).resize(); 
}); 
+1

あなたは「ルールがまだ適用されます」と言うとき、ルールはあなたが何をしている。ここ

はコードそのかもしれない作品ですを参照して? '.vegas()'インスタンスを破棄しなければならないので、あなたにとってはうまくいきません。あなたはそれを設定するが、ビューポートのサイズを変更したとき、それを破壊されていません。あなたが大規模なビューポートでオフを開始し、その後、小さな1に2 '.vegas()'インスタンスが作成されますが、それのサイズを変更する場合。 – Terry

+0

こんにちはテリー、 '.nanoContainer、.flexAlignerの.vegas-container'上の高さが1600pxから600PXにリサイズするとき、ウィンドウの高さに設定されたまま。そのうちの一つは、コンマが欠落しています。しかし、私は600から1600px –

+0

にウィンドウのサイズを変更する場合にセレクタが同じではありません動作しません。 – Terry

答えて

1

あなたはタイプミスがあるのでmin-height宣言は動作しません:条件が同じでない場合は、他のあなたのセレクタを:ifブロックで

  • $('.nanoContainer, .flexAligner, .vegas-container').css('min-height', windowHeight);
  • elseでブロック:$('.nanoContainer, .flexAligner .vegas-container')

コンマは後者にはなく、マークアップどのセレクタが意図されたセレクタであるかわかりません。それが必要として.vegas()が機能していないとの問題に関して

あなただけの別のブレークポイントでプラグインを初期化しているが、は、他のインスタンスを破壊することはありませんので、それはです。この例では、コード:the plugin appears to expose a destroy functionを参照しています。これは、ブレークポイントを切り替えるときにインスタンスを破棄するために呼び出すことができます。 $selector.vegas('destroy')。あなたはMCVEを提供していないと私はそれをテストすることができませんので、無保証:

$(function() { 
    $(window).resize(function() { 
    if (window.innerWidth >= 639) { 

     // Set min-height 
     windowHeight = $(window).innerHeight(); 
     $('.nanoContainer, .flexAligner, .vegas-container').css('min-height', windowHeight); 

     // Create new Vegas instance 
     $("body.home").vegas({ 
      delay: 8000, 
      transition: 'fade', 
      transitionDuration: 8e3, 
      timer: false, 
      slides: [ 
       { src: "/wp-content/uploads/slide2-0.jpg" }, 
       { src: "/wp-content/uploads/slide2-1.jpg" }, 
       { src: "/wp-content/uploads/slide2-2.jpg" } 
      ], 
      animation: "kenburns" 
     }); 

     // Destroy other Vegas instance 
     $(".home .intro").vegas('destroy'); 

    } else { 
     // This works but only if the page is loaded with the viewpoint less of 639px 
     // The min-height auto doesn't work. 
     $('.nanoContainer, .flexAligner, .vegas-container').css('min-height', 'auto'); 

     // Create new Vegas instance 
     $(".home .intro").vegas({ 
      delay: 8000, 
      transition: 'fade', 
      transitionDuration: 8e3, 
      timer: false, 
      slides: [ 
       { src: "/wp-content/uploads/slide2-0.jpg" }, 
       { src: "/wp-content/uploads/slide2-1.jpg" }, 
       { src: "/wp-content/uploads/slide2-2.jpg" } 
      ], 
      animation: "kenburns" 
     }); 

     // Destroy other Vegas instance 
     $("body.home").vegas('destroy'); 
    } 
    }).resize(); 
}); 
+0

こんにちはテリー、それは素晴らしいです!私は発射前にIFステートメントでdestroyを使用するのが最善であると仮定していますか?これは正しいか? https://pastebin.com/yjfyn6NR –

+0

1600pxから600pxへ行くのには完全に機能しますが、600から1600に戻ってから600に戻って再びそれを分解します。 –

+0

あなたのソリューションを使用することは偉大です!私は現在、$( 'nanoContainer、.flexAligner、.vegas-container').css( 'min-height'、windowHeight);を639以下で使用しています。あなたのすべての協力に感謝します! –

関連する問題