css - 单击动画 Sprite 时触发鼠标离开

标签 css animation hover sprite

我有一个包含 sprite 图像的链接,鼠标悬停时带有 CSS 动画。

a {
    display:inline-block;
    width:48px;
    height:48px;
    overflow:hidden;
}

a img {
    -webkit-transition: 250ms ease-out;
    -moz-transition: 250ms ease-out;
    -o-transition: 250ms ease-out;
    transition: 250ms ease-out;
}

a:hover img{
    -webkit-transform: translate(0,-50%);
    -moz-transform: translate(0,-50%);
    -ms-transform: translate(0,-50%);
    -o-transform: translate(0,-50%);
    transform: translate(0,-50%);
}

动画效果很好,但是当我点击链接时,它仍然处于悬停状态。

这是一个 fiddle显示问题。单击该链接时,将按预期打开一个新选项卡。但是当你回到 fiddle 时, Sprite 仍然处于悬停状态。我怎样才能把它恢复到正常(非悬停)状态?我试图用 jQuery 触发 mouseleave 事件,但它失败了。

最佳答案

事件已正确触发,但 CSS 仍将其视为“:hover”状态(我认为您无法使用 javascript 更改它)。因此,您可以从

更改您的 css
a:hover img {

a.hovered img {

因此将其设置为一个单独的类,而不是 css 状态。然后在您的 JS 中,您可以像以前一样保留点击处理程序(即使我使用了 'mouseout' 但它不重要)并添加一个 hover() 处理程序,如

$('a').click(function() {    
    $(this).trigger('mouseout');    
});

$('a').hover(function() {    
    $(this).addClass('hovered');
}, function(){
    $(this).removeClass('hovered');
});

关于css - 单击动画 Sprite 时触发鼠标离开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28626541/

相关文章:

html - css 网格没有响应

wpf - 是否有显示虚拟人的库 [WPF]

Angular, Karma - 测试悬停

css - 为移动设备禁用悬停和事件伪类

css - 完美重叠的圆形 div

html - parent 的盒子阴影必须忽略 child 的边距

css - 将按钮向上移动到选择旁边

html - 防止 valign ='middle' 被样式表声明覆盖?

android - 动画期间的高 CPU 负载

javascript - 带有文本的 CSS 动画故障