クリックしたときにページの上部にスクロールするクラス「scrollToTop」を持つボタンがあります。ここでJSファイルがあります:jqueryで要素のフォーカスを失うようにする
$(document).ready(function(){
//Check to see if the window is top if not then display button
$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('.scrollToTop').fadeIn();
} else {
$('.scrollToTop').fadeOut();
}
});
//Click event to scroll to top
$('.scrollToTop').click(function(){
$('html, body').animate({scrollTop : 0},800);
return false;
});
});
だから、このボタンもあります。プロパティを置く:
今.scrollToTop:hover{
opacity: 1.0;
box-shadow: 0 10px 20px rgba(0,0,0,0.25), 0 8px 8px rgba(0,0,0,0.22);
-webkit-transition: all 0.4s ease-in-out;
-moz-transition: all 0.4s ease-in-out;
-o-transition: all 0.4s ease-in-out;
transition: all 0.4s ease-in-out;
}
、我々はすべて知っているように:ホバーは、モバイルデバイスではうまく動作しません。つまり、1)あなたが持っていますボタンをクリックして不透明度を1.0に変更します& 2)不透明度を前の状態に戻すために別の場所でタップしなければなりません(0.5とします)。
ここでは、2番目の部分をシミュレートしたいと考えています。 jqueryを編集して、ページが上にスクロールされると、scrollToTopが自動的にフォーカスを失うので、:ホバー効果が失われ、不透明度が0.5に自動的に戻ります。私は自分自身を明確にしたいと思う。これは可能ですか?そうでない場合、同じ結果を得る他の方法はありますか?前もって感謝します!
$('.scrollToTop').blur();
だからあなたがそれを置くことができます:私はこの権利を持っていれば
私はあなたが別の要素に集中することができると思いますent。 –
私はあらゆる種類のデバイスを使うと思いますが、擬似クラス ':hover'ではなく、クラスを切り替える方がよいでしょう。欠点は、mouseenter/mouseleaveに関するロジックがjs/jqueryを使用して処理する必要があることです。しかし、それは必要に応じてクラスを削除するだけです。今私は '
'と 'document.body.focus();'を設定するのがうまくいくかどうか疑問に思っていますか? –'scrollToTop'クラスの削除、読み込みを試みる他のアイデアです。たとえば、クリックハンドラーの内部では、$(this).removeClass( 'scrollToTop')。addClass( 'scrollToTop'); '。最後の1つのアイデアは、クリックハンドラのような再描画を強制することです: '$(this).hide()。show(0);' –