2016-04-28 14 views
0

私は自分のhtmlに2つの画像を持っています。 1モバイル版(画面が992pxより小さい場合)とデスクトップ版で表示します。jQueryのスクロールアンカーはモバイルでは動作しますが、デスクトップでは動作しません

これらの画像にアンカーとして使用するIDを追加しました。すべてがモバイルデバイスでうまくいきますが、デスクトップ版ではアンカーに行きたくありません。たとえidがhtmlにあるとしても。

これは、HTMLでの私のイメージは次のようになります。 Dekstopメニュー:

<ul class="nav navbar-nav"> 
    <li class="navbar-right"><a data-id="wie" href="#wie">Wie</a></li> 
</ul> 

モバイルメニュー:これらのリンクです

<img id="wie" class="cool-image-2" src="source1" alt=""> 
<img id="wie" class="cool-image-2" src="source2" alt=""> 

<ul class="nav mobile-nav-bar"> 
    <li class="navbar-right"><a data-id="cont" href="#contact">Contact</a></li> 
</ul> 

これは私ですjQuery:

jQuery(".nav li a").click(function(e) { 
     e.preventDefault(); 
     $id = jQuery(this).attr("data-id"); 
     jQuery("a.clicked").removeClass("clicked"); 
     jQuery(this).addClass("clicked"); 
     console.log($id); 

      jQuery('html, body').animate({ 
       scrollTop: jQuery("#"+$id).offset().top 
      }, 1000); 

    }); 

誰でもデスクトップ上で動作しない理由は何ですか?

多くの方々、ありがとうございます。

+3

各画像に固有の「id」が必要です。 正しいコードは次のようになります。 ' ' – Aziz

答えて

0

同じIDを持つ2つのアイテムを持つことはできませんでした。 imgを1つだけ使用し、デバイスに応じてソースを変更します。 thisを使用して、携帯電話かどうかを確認してください。

+0

画像は、モバイルデバイス上の他の場所に位置しているので、本当にこれを行うことはできません –

0

あなたは同じID属性「ウィー」との2つのHTML要素を持っている:

<img id="wie" class="cool-image-2" src="source1" alt=""> 
<img id="wie" class="cool-image-2" src="source2" alt=""> 

ID属性値がHTML文書内で一意である必要があります。

https://www.w3.org/TR/html5/dom.html#the-id-attribute

id属性は、その要素の一意の識別子(ID)を指定します。 の値は、要素のホームサブツリー のすべてのIDの中で一意でなければならず、少なくとも1文字を含む必要があります。値には、空白文字が含まれていてはなりません( )。

関連する問題