2017-06-03 9 views
0

私のコードの下にサイズのために完璧に動作することができませんが、次のとおりです。

if ($(window).width() > 500) { 
    $("#about-us .q-team .q-team-layout .q-jyoti-layout").hover(function() { 
     $("#about-us .q-team .q-team-layout .q-jyoti-layout .q-jyoti-info").css("display", "block"); 

    }, function() { 
     $("#about-us .q-team .q-team-layout .q-jyoti-layout .q-jyoti-info").css("display", "none"); 

    }); 
}else if ($(window).width() <= 500) { 
    $("#about-us .q-team .q-team-layout .q-jyoti-layout").hover(function() { 
     $("#about-us .q-team .q-team-layout .q-xzz").css("display", "block"); 

    }, function() { 
     $("#about-us .q-team .q-team-layout .q-xzz").css("display", "none"); 

    }); 
} 

下図のように私のHTMLコードは次のとおりです。

<div class="q-team-layout"> 
       <div class="q-jyoti-layout"> 
        <img class="q-team-images" src="../test/images/jyoti.png" alt="Los Angeles"> 
        <div class="q-name">Jyotirmoy</div> 
        <div class="q-desig">CEO</div> 
        <div class="x1"> 
         <span style="color:#ff363f;font-weight:bold;"> Jyoti </span> 
         <span style="color:#4d4d4d;"> CEO </span> 
        </div> 
        <div class="q-jyoti-info">Lives in Gurgaon. <br/>Has spent 6 years in various multinational companies executing and ideating for new age projects.</div> 
       </div> 
       <div class="q-xzz">Lives in Gurgaon. <br/>Has spent 6 years in various multinational companies executing and ideating for new age projects.</div> 
</div> 
があってはならないと500pxなど .Q-ジョティ・情報の下にがあってはならない.Q-xzz 500pxなどの上

だから基本的に私がここで何をしたいです。しかし、どういうわけかこの条件は、モバイルとウェブの両方で完全には機能していません。この条件文には何かがありますか?

+0

また、 'screen.width'と' screen.height'もあります。それ以外の場合は 'else'文に' 500px以上であれば 'これを行い、' else'でそれを行います。 –

+0

domに追加されるクラス –

+0

*「完全に動作していない」*は適切な問題の説明ではなく、多くの価値を教えていません – charlietfl

答えて

2

$("#about-us .q-team .q-team-layout .q-jyoti-layout").hover(function() { 
    var childSelector = $(window).width() > 500 ? '.q-jyoti-info' : '.q-xzz'; 
    $(this).find(childSelector).toggle();//does same as hide/show 
}); 

を簡素化するためにhover()内の条件を入れて、すべての場所のあなただけhover()に1つの関数の引数を提供するとき、それは両方のイベントのために呼び出されることに注意

0

まず、このCSSファイルでので、htmlとcssがブラウザで解析されると、要素のデフォルト値は隠されます

#about-us .q-team。レイアウト.q-jyoti-layout .q -jyoti-info {
表示:(あなたはjQueryの方法」addClassを使用することができ、その後ブロック
}

:なし
}

は、次にCSSで

.SHOW {
表示をクラスを追加します) 'と' removeClass() '

if ($(window).width() > 500) {  
      $("#about-us .q-team .q-team-layout .q-jyoti-layout").hover(function() { 
       $("#about-us .q-team .q-team-layout .q-jyoti-layout .q-jyoti-info").addClass('show'); 

      }, function() { 
       $("#about-us .q-team .q-team-layout .q-jyoti-layout .q-jyoti-info").removeClass('show'); 

      }); 
    } 

    else { 
      $("#about-us .q-team .q-team-layout .q-jyoti-layout").hover(function() { 
       $("#about-us .q-team .q-team-layout .q-xzz").addClass('show'); 

      }, function() { 
       $("#about-us .q-team .q-team-layout .q-xzz").removeClass('show'); 

      }); 
     } 
+0

cssの '.show'セレクタは、他のルールよりも優先度が十分ではありません – charlietfl

+0

いいえ動作しません –

+0

ルールの最後に重要です! –

0

正確に500ピクセル幅でjQueryをトリガしないことを指している場合は、$(window).width()はブラウザのスクロールバーを考慮していないためです。異なるブラウザには異なるスクロールバーの幅があるため、これを補う方法はありません。ただし、matchMediaを使用すると、jQueryでメディアクエリを使用できます。ただし、IE9以下ではmatchMediaはサポートされていません。

if(window.matchMedia('(min-width: 500px)').matches) { 
    $("#about-us .q-team .q-team-layout .q-jyoti-layout").hover(function() { 
    $("#about-us .q-team .q-team-layout .q-jyoti-layout .q-jyoti-info").addClass('show'); 
    }, function() { 
    $("#about-us .q-team .q-team-layout .q-jyoti-layout .q-jyoti-info").removeClass('show'); 
    }); 
} else { 
    $("#about-us .q-team .q-team-layout .q-jyoti-layout").hover(function() { 
    $("#about-us .q-team .q-team-layout .q-xzz").css("display", "block"); 
    }, function() { 
    $("#about-us .q-team .q-team-layout .q-xzz").css("display", "none"); 
    }); 
} 
+0

いいえ、.q-xzzとq-jyoti -infoが同期して動作していない –

+0

あなたのHTMLとあなたが達成しようとしていることについてもう少し説明を見ることは役に立ちます。 – WizardCoder

+0

私のポストで自分のHTMLコードのスニペットを更新しました –

関連する問題