在 mouseenter 和 mouseleave 上添加 animate.css class
Add animate.css class on mouseenter & mouseleave
我想在用户将鼠标悬停在图像上时使用 animate.css 到 fadeIn/fadeOut 内容。
我正在尝试找出将 类 从 mouseenter 上的 'FadeIn' & 'FadeInUp' 切换到 mouseleave 上的 'FadeOut' & 'FadeOutDown' 的最佳方法.
CSS
.overlay{
position: absolute;
top: 0;
height: 100%;
width: 100%;
background: rgba(40,40,40,0.88);
left: 0;
padding: 10px;
text-align: left;
display: none;
}
.col-sm-6:hover .overlay{
display: block;
}
.overlay h2{
font-size: 20px;
color: #fff;
}
.overlay p{
color: #bbbbbb;
}
.linkbox{
position: absolute;
height: 50px;
bottom: 0;
left: 0;
background: #000;
width: 100%;
padding: 16px;
text-align: left;
color: #fff;
}
.caption{
display: none;
}
任何 help/advice/suggestions 将不胜感激!
试试这个脚本:
$('.col-sm-6').on('mouseenter', function(){
$('.overlay').addClass('fadeIn fadeInUp');
$('.overlay').removeClass('fadeOut fadeOutDown');
$('.overlay').css('display', 'block');
});
$('.col-sm-6').on('mouseleave', function(){
$('.overlay').removeClass('fadeIn fadeInUp');
$('.overlay').addClass('fadeOut fadeOutDown');
$('.overlay').css('display', 'block');
setTimeout(function(){
$('.overlay').css('display', 'none');
}, 1000);
});
const box = document.querySelector(".box");
box.addEventListener("mouseenter",function(){
const move = "shake";
this.classList.add(move);
this.addEventListener("animationend",function(){
this.classList.remove(move);
});
this.addEventListener("mouseleave",function(){
this.classList.remove(move);
});
});
.box{
background: skyblue;
width: 5em;
height: 5em;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">
<div class="box animated "></div>
改用jQuery。检查这个 Codepen.
还有一些小的 CSS 更改,这些更改也在 CSS 代码中进行了注释。比如不直接用.col-sm-6
因为很常见类等
作为参考,您的 JS 应该如下所示:
$(".screenshot").hover(function () {
//stuff to do on mouse enter
var overlay_div = $(this).find('.overlay');
overlay_div.removeClass('fadeOut');
overlay_div.addClass('fadeIn');
overlay_div.find('.another-animation').removeClass('fadeOutDown');
overlay_div.find('.another-animation').addClass('fadeInUp');
overlay_div.css('display', 'block');
},
function () {
//stuff to do on mouse leave
var overlay_div = $(this).find('.overlay');
$(this).find('.overlay').removeClass('fadeIn');
$(this).find('.overlay').addClass('fadeOut');
overlay_div.find('.another-animation').removeClass('fadeInUp');
overlay_div.find('.another-animation').addClass('fadeOutDown');
setTimeout(function() {
overlay_div.css('display', 'none');
}, 1000);
});
希望对您有所帮助!
我想在用户将鼠标悬停在图像上时使用 animate.css 到 fadeIn/fadeOut 内容。
我正在尝试找出将 类 从 mouseenter 上的 'FadeIn' & 'FadeInUp' 切换到 mouseleave 上的 'FadeOut' & 'FadeOutDown' 的最佳方法.
CSS
.overlay{
position: absolute;
top: 0;
height: 100%;
width: 100%;
background: rgba(40,40,40,0.88);
left: 0;
padding: 10px;
text-align: left;
display: none;
}
.col-sm-6:hover .overlay{
display: block;
}
.overlay h2{
font-size: 20px;
color: #fff;
}
.overlay p{
color: #bbbbbb;
}
.linkbox{
position: absolute;
height: 50px;
bottom: 0;
left: 0;
background: #000;
width: 100%;
padding: 16px;
text-align: left;
color: #fff;
}
.caption{
display: none;
}
任何 help/advice/suggestions 将不胜感激!
试试这个脚本:
$('.col-sm-6').on('mouseenter', function(){
$('.overlay').addClass('fadeIn fadeInUp');
$('.overlay').removeClass('fadeOut fadeOutDown');
$('.overlay').css('display', 'block');
});
$('.col-sm-6').on('mouseleave', function(){
$('.overlay').removeClass('fadeIn fadeInUp');
$('.overlay').addClass('fadeOut fadeOutDown');
$('.overlay').css('display', 'block');
setTimeout(function(){
$('.overlay').css('display', 'none');
}, 1000);
});
const box = document.querySelector(".box");
box.addEventListener("mouseenter",function(){
const move = "shake";
this.classList.add(move);
this.addEventListener("animationend",function(){
this.classList.remove(move);
});
this.addEventListener("mouseleave",function(){
this.classList.remove(move);
});
});
.box{
background: skyblue;
width: 5em;
height: 5em;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css">
<div class="box animated "></div>
改用jQuery。检查这个 Codepen.
还有一些小的 CSS 更改,这些更改也在 CSS 代码中进行了注释。比如不直接用.col-sm-6
因为很常见类等
作为参考,您的 JS 应该如下所示:
$(".screenshot").hover(function () {
//stuff to do on mouse enter
var overlay_div = $(this).find('.overlay');
overlay_div.removeClass('fadeOut');
overlay_div.addClass('fadeIn');
overlay_div.find('.another-animation').removeClass('fadeOutDown');
overlay_div.find('.another-animation').addClass('fadeInUp');
overlay_div.css('display', 'block');
},
function () {
//stuff to do on mouse leave
var overlay_div = $(this).find('.overlay');
$(this).find('.overlay').removeClass('fadeIn');
$(this).find('.overlay').addClass('fadeOut');
overlay_div.find('.another-animation').removeClass('fadeInUp');
overlay_div.find('.another-animation').addClass('fadeOutDown');
setTimeout(function() {
overlay_div.css('display', 'none');
}, 1000);
});
希望对您有所帮助!