作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 JQuery 实现悬停时淡入淡出的效果。目前我有一个带有“hov”类攻击的元素,如果没有 javascript,css 只会在 :hover 上改变它的颜色。使用 JQuery。
想法是在元素滚动时克隆该元素并将其直接放在前面,剥离它的“hov”类,使其只是静态的。然后我将它淡出以创建过渡效果。
但我遇到了麻烦,在我从克隆中删除“hov”类后,它仍然表现得好像它仍然存在一样。我可以将鼠标悬停在克隆上,即使它不能通过 hov 成为目标。有什么想法/提示吗?
<a href="#" class="hov rounded-50 action-button">Fade Me Out< /a>
$(".hov").mouseover(function() {
// Clone the current element, remove the "hov" class so it won't trigger same behavior
// finally layer it infront of current element
var $overlay = $(this).clone(true).removeClass("hov").insertAfter($(this));
// Push it to the side just for testing purposes - fade it out
$overlay.css({left:'300px'}).fadeOut({duration:500, ease:'easeOutQuad'});
});
最佳答案
无需克隆元素,只需淡化原始元素:
$('.hov').mouseenter(function() {
$(this).fadeOut();
});
// Optionally:
$('.hov').mouseleave(function() {
$(this).stop(true, true).show();
});
您还可以使用悬停功能:
$('.hov').hover(function(){
$(this).fadeOut();
},
function(){
$(this).stop(true, true).show();
});
如果你只是想让它部分淡出,你可以设置不透明度属性的动画:
$('.hov').mouseenter(function() {
$(this).animate({'opacity': 0.5});
});
如果你只是想让它跳动,那就恢复正常的不透明度:
$('.hov').mouseenter(function() {
$this = $(this);
$this.animate({'opacity': 0.5}, {
'complete': function(){
$this.animate({'opacity': 1});
}
});
});
最后,如果你愿意放弃对旧浏览器的支持,你可以用 css 来完成这一切:
.hov {
-webkit-transition: opacity 0.3s ease-in;
-moz-transition: opacity 0.3s ease-in;
}
.hov:hover {
opacity: 0.5;
}
关于javascript - JQuery 淡入淡出悬停效果 - 帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7047946/
我是一名优秀的程序员,十分优秀!