1

幅が特定の値より小さい場合にのみ実行する必要がある関数があります。でこれを行いましたif ($(window).width() < n) { }が、幅がnより大きい場合にも関数が実行されます..

背景色が変更されるため、 ifif ($(window).width() < n) { }は正常に機能します (< 1000px では明るい灰色、> 1000px では暗い灰色)。

関数は、改ページのレイアウトが崩れてはならないときにも実行されているため (タブをクリックしてサイズを変更すると、これが表示されます)。関数が実行されるべきではない場合、ご覧のように通常のタブが表示されますが、トグルをクリックするまで正しく表示されます (これは、実行されるべきではない関数が起動されることです)。

誰でも私を助けることができますか?

コード

デモ(< および > 1000px でスクロールして表示)

PS: 私は を使用することに限定されていましたが、 を使用する方が良いことは承知しています。

4

1 に答える 1

1

だけでなくif (windowsize < 1000)、現在のステータスも知る必要があります。

if (is_large && windowsize < 1000)
{
    is_large = false;
    // rest of code to handle transition to small size
}
else if (!is_large)
{
    is_large = true;
    // code to handle transition to large size
}

is_largeへの最初の呼び出しの前に、ページの読み込み時に設定する場合も処理する必要がありますcheckWidth()

于 2013-01-29T17:24:08.047 に答える