增强动画(JavaScript + CSS)

时间:2013-09-05 09:35:17

标签: javascript jquery css3 animation jquery-animate

我正在使用CSS和JS来做小动画,但是在某些浏览器上它是闪烁的,我不知道这是否是最好的方法,任何关于做这个主动脉的最佳方法的想法动画?

基本上,我想要的就是让所有未被选中的项目略微淡化,而这一项是悬而未决的。实例:http://meeped.co.uk:93/主页上的推荐部分。

JavaScript

$(".testimonial").hover( function() {
    $(".testimonial").addClass('testimonialNotActive');
    $(this).removeClass('testimonialNotActive').addClass('testimonialActive');
},
function(){
    $(".testimonial").removeClass('testimonialNotActive');
    $(this).removeClass('testimonialActive');
    }
);

CSS

/*Home Page SectionD*/
#home-sectionD .testimonial {
background-color: #FAFAFA;
border: 1px solid #3C5476;
margin-bottom: 10px;
}

.testimonialNotActive {
    opacity: 0.6;
    -moz-opacity: 0.6;
    -khtml-opacity: 0.6;
    filter:alpha(opacity=60);   
}

.testimonialActive {
    -webkit-box-shadow: 0px 0px 25px -2px rgba(0,0,0,0.4);
    -moz-box-shadow: 0px 0px 25px -2px rgba(0,0,0,0.4);
    box-shadow: 0px 0px 25px -2px rgba(0,0,0,0.4);
}

2 个答案:

答案 0 :(得分:0)

hover()事件一直在您将鼠标移到该元素上时触发。我宁愿使用像这样的mouseEnter()和mouseOut()事件:

$(".testimonial").mouseenter( function() {
    $(".testimonial").removeClass('testimonialActive').addClass('testimonialNotActive');  // also removeing active class
    $(this).removeClass('testimonialNotActive').addClass('testimonialActive');
}

$(".testimonial").mouseout( function() {
    $(".testimonial").removeClass('testimonialActive').removeClass('testimonialNotActive'); // or whatever class you want to remove
}

答案 1 :(得分:0)

要启用可能解决问题的硬件加速,请将3D翻译添加到CSS类中。

transform: translate3d(0,0,0);
-webkit-transform: translate3d(0,0,0);