本当に jQuery (CSS トランジションではなく) を使用したい場合は.hover
、.fadeIn
と、.fadeOut
および私の理解
ユーザーがマウスをその上に移動したり離したりするたびに、何度も実行したい
$(".change-profile-pic").hide();
$('.img-with-border').hover(
function over() { // fade in on mouseover
$('.change-profile-pic').fadeIn(500);
},
function out() { // fade out on mouseout
$('.change-profile-pic').fadeOut(500);
}
);
カーソルを合わせたときにフェードアウトしないように編集する.change-profile-pic
(function setUpHover() {
$(".change-profile-pic").hide();
var timeout = null,
over = function over() {
window.clearTimeout(timeout);
$('.change-profile-pic').fadeIn(500);
},
outAfterDelay = function outAfterDelay() {
$('.change-profile-pic').fadeOut(500);
},
out = function out() {
timeout = window.setTimeout(outAfterDelay, 1000); // give enough time to move to elm here
};
$('.img-with-border').hover(over, out);
$('.change-profile-pic').hover(over, out);
}());
フィドルの例(代わりにこの回答の JavaScript を使用したjfriend00のデモに基づく