2

我有一些 CSS(见下文),当用户将鼠标悬停在外部字段上时,我想让内部 div(小猫)在屏幕上平移。这工作正常,但正如您所料,当用户从外场移开他或她的鼠标时,动画会“倒带”,然后(当然)如果用户再次悬停,它会重播。我试图弄清楚如何让这个动画运行一次(用户第一次悬停在外场上),然后不再倒带或再次播放,无论他或她将来悬停在什么上面。这可能吗?我不想在我的页面上添加另一个脚本,但如果这是唯一的解决方法,那么我愿意接受。提前致谢!

将要

<style type="text/css">
div.kitty {
    position: absolute; 
    bottom: 50px; 
    left: 20px; 
    -webkit-transition: all 3s ease-in; 
    -moz-transition: all 3s ease-in; 
    -o-transition: all 3s ease-in; 
    -ms-transition: all 3s ease-in;
    animation-iteration-count: 1;
}
#actioner {
    padding: 0px;
    height: 400px;
    position: relative;
    border-width: 1px;
    border-style: solid;
}
#actioner:hover div.kitty{
    -webkit-transform: translate(540px,0px); 
    -moz-transform: translate(540px,0px); 
    -o-transform: translate(540px,0px); 
    -ms-transform: translate(540px,0px);
}
</style>

<div id="actioner">
    <div class="kitty">Kitty-Cat Sprite</div>
</div>
4

1 回答 1

4

恕我直言,纯 CSS 是不可能的。最简单的解决方案是使用 jQuery。

// css
.actioner{
    -webkit-transform: translate(540px,0px); 
    -moz-transform: translate(540px,0px); 
    -o-transform: translate(540px,0px); 
    -ms-transform: translate(540px,0px);
}

// script
$(function(){
    $('.kitty').one("mouseover", function() {
        $('.kitty').addClass('actioner');
    });
});
于 2012-04-21T13:50:42.287 回答