2017-11-15 13 views
0

ユーザーがイメージに触れるたびにモバイルデバイス上のイメージにオーバーレイを表示する必要があるという要件があります。私は以下のコードでそれをやっている:純粋なJavaScriptを使用してモバイルデバイス上のイメージにオーバーレイを表示

document.getElementsByTagName('img')[0].addEventListener('touchstart', function(event){ 
 
    
 
    let elementExists = document.getElementById('wrapper'); 
 
    let Center = document.createElement('div'); 
 

 
     
 
    if (!elementExists) { 
 
     let Wrapper = document.createElement('div'); 
 
     let parentElement = event.currentTarget.parentElement; 
 
     Wrapper.classList.add('Wrapper'); 
 
     Wrapper.id = 'wrapper'; 
 
     
 
    Center.classList.add('Center'); 
 
     
 
    parentElement.appendChild(Wrapper); 
 
    Wrapper.appendChild(Center); 
 
    
 
     Wrapper.addEventListener('touchend', function(event){ 
 
     if (document.getElementById('wrapper')) { 
 
      document.getElementById('wrapper').remove(); 
 
     } 
 
     }); 
 
    } 
 
});
.col-md-6 { 
 
     width: 375px; 
 
     height: 211px; 
 
     margin: 20px; 
 
     position: relative; 
 
    } 
 
    
 
     .Wrapper { 
 
     display: table; 
 
     position: absolute; 
 
     background-color: rgba(0, 0, 0, 0.5); 
 
     height: 100% !important; 
 
     width: 100%; 
 
     text-align: center; 
 
     z-index: 1000; 
 
     font-family: arial; 
 
     color: #fff; 
 
     top: 0; 
 
    } 
 

 
    .Center { 
 
     display: table-cell; 
 
     vertical-align: middle; 
 
    }
<div class="col-md-6"> 
 
<a href="https://google.com"> 
 
<img src="https://www.blog.google/static/blog/images/google-200x200.7714256da16f.png" /> 
 
</a> 
 
</div>

上記のコードは正常に動作しますが、ユーザーとして画像に触れると、それは私の画面を示し、デフォルトではので、私はaタグに包まれたイメージを持っています以下に示す:

enter image description here

そしてのでそれオーバーレイのは、携帯電話の画面に表示されていません。私はそれをどのように修正できるのかを助けてくれる必要があります。

EDIT:

私は、プレーンJavaScriptを使用してタッチスワイプイベントを追加することを考えていますが、私はまさにそれを行うことができないのです。 私は何か助けを得ることができる場合は教えてください!

答えて

2

リンクを外してイベントリスナーを直接画像に追加するだけではどうですか?

+0

イメージリスナーのみをイメージに追加しています。リンクしないでください。 –

+0

実際には、画像をリンクにして、オンタッチイベントを起こさせようとしていますか? –

+0

どういうわけか、あなたはマウスイベントを持っているので、JSからすべてをやることができ、そうすることでアンカータグを取り除くことができます。 –

1

モバイルデバイスのリンクのネイティブ動作は、説明したとおりに機能します。保持するとメニューがトリガーされます。あなたがBojanのようにリンクを削除するだけでそれを削除する必要がある場合。

+0

私は正確に取得できません。しかし、私は両方の行動がイメージ上に必要です。 1.ユーザーがイメージをクリックすると、彼はhrefリンクにリダイレクトされます。 2.ユーザーがその画像に長時間触れると、ポップアップを表示せずにオーバーレイが表示されます。可能な解決策を教えてください。 –

関連する問題