2017-09-06 19 views
0

現在、[小さな]タッチスクリーンUIを作成中です。私は、ボタンが実際に押されていないので、ユーザが誤ってボタンの端にちょうど当たってアクティブなCSSトリガを持つことができますが、touchendイベントは発生しないという問題に遭遇しています。ボーダータッチボタン:アクティブになっているが発射イベントは発生していない

ここでは、黄色のボックスは指のクリックであり、ボタンはアクティブな状態ですが、イベントをアクティブにしません。ここで

sample picutre

だけでなく、それはここで

.action-button { 
    @extend .nav-button; 
    height: 85%; 
    border-radius: $border-radius; 
    border: none; 
    min-width: 85px; 
    margin: { 
    left: 5px; 
    right: 5px; 
    top: 5px; 
    } 
    font-weight: bold; 
} 
.nav-button { 
    &.active { 
    background-color: $active-button-background-color; 
    } 
    &:last-of-type { 
    margin-right: 10px; 
    } 
} 
.nav-button:active { 
    background-color: $active-button-background-color; 
} 

関連性の中で、場合SCSSであるあなたにもhttps://jsfiddle.net/kaagu3dj/12/これで遊ぶことができるようにフィドルある[あなたがする必要があります注意してくださいタッチシミュレーターモード]

TL、DR、このエッジタッチをボタンで「キャプチャ」するにはどうすればよいでしょうか?

ありがとうございます!

+0

あなたのデザインによれば、あなたの国境の必要はありませんので、単にあなたの国境を完全に取り除くことができます。:) –

+0

私は編集を行いますが、ボーダー=この文脈。私は、ユーザーがこれらのボタンの端に触れることができ、 'touchend'イベントが発砲していないが、':active' CSSが適用されている問題に遭遇しています – Surreal

+0

あなたはフィドルを作成できますか?だから私はそこにコードを更新することができます。 –

答えて

1

これは、touchendとtouchstartイベントのネイティブ動作です。 こういうこともできます。

:アクティブ疑似クラスのCSSを削除し、以下のようにスクリプトを追加してください。

let count = 0; 
$('.main').on('touchstart', function(event) { 
    count++; 
    $('#count').html(count); 
    $('.main').css("background", "blue"); 
}); 
$('.main').on('touchend', function(event){ 
    $('.main').css("background", "#ddd"); 
}); 

これはあなたに役立つかもしれません。 fiddle

+0

意味があり、フォーカス/ブラーイベントで作業していましたが、これはもっとたくさんありますエレガント – Surreal

関連する問題