1

Webkit アニメーションを使用するプロジェクトに取り組んでいます。これは、Javascript と CSS3 を使用した HTML プロジェクトです。

Chromeで実行しようとしましたが、正常に動作しますが、低構成で試してみるとすぐに遅くなります。そこで、Chrome のタイムラインを有効にすると..サプライズ。CSS スタイルは最初から 2ms ごとに再計算されます。

私の質問は、CPU を少し解放するために、1 秒あたり 40 回の計算に制限する方法はありますか..

このすべての CPU 電力の浪費をアニメーション化するために使用しているコードが少しあります。

.miniSignal1{
opacity: 0;
position: absolute;
top : 50px;
left :51px;
width : 400px;
height: 400px;
background-image: url("../../FEZ_resources/images/losange.png");
background-size: 100%;
background-position:center;
background-repeat: no-repeat;
overflow: visible;
-webkit-animation-timing-function: cubic-bezier(0, 0, .5, 1);
}       
@-webkit-keyframes rescale1{
    0%  { -webkit-transform : scale( 0 , 0 ); opacity: 1;}
    50%     { opacity: 1;}
    100%        { -webkit-transform : scale( 2.5 , 2.5 ); opacity: 0;}
}
@-webkit-keyframes rescale2{
    0%  { -webkit-transform : scale( 0 , 0 ); opacity: 1;}
    50%     { opacity: 1;}
    100%        { -webkit-transform : scale( 2.5 , 2.5 ); opacity: 0;}
}

この作品は Javascript によって起動されます

function windowLoaded(){
    setTimeout("launchSignal()",4000);
}

function launchSignal(){
$(".miniSignal1").css("-webkit-animation-name", '');
$(".miniSignal1").css("-webkit-animation-duration", '');
$(".miniSignal2").css("-webkit-animation-name", '');
$(".miniSignal2").css("-webkit-animation-duration", '');
$(".miniSignal3").css("-webkit-animation-name", '');
$(".miniSignal3").css("-webkit-animation-duration", '');
$(".miniSignal4").css("-webkit-animation-name", '');
$(".miniSignal4").css("-webkit-animation-duration", '');
if(signal){
    signal = false;
    $(".miniSignal1").css("-webkit-animation-name", 'rescale1');
    $(".miniSignal1").css("-webkit-animation-duration", '1.5s');
    $(".miniSignal2").css("-webkit-animation-name", 'rescale21');
    $(".miniSignal2").css("-webkit-animation-duration", '1.5s');
    $(".miniSignal3").css("-webkit-animation-name", 'rescale31');
    $(".miniSignal3").css("-webkit-animation-duration", '1.5s');
    $(".miniSignal4").css("-webkit-animation-name", 'rescale41');
    $(".miniSignal4").css("-webkit-animation-duration", '1.5s');
}else{
    signal = true;
    $(".miniSignal1").css("-webkit-animation-name", 'rescale2');
    $(".miniSignal1").css("-webkit-animation-duration", '1.5s');
    $(".miniSignal2").css("-webkit-animation-name", 'rescale22');
    $(".miniSignal2").css("-webkit-animation-duration", '1.5s');
    $(".miniSignal3").css("-webkit-animation-name", 'rescale32');
    $(".miniSignal3").css("-webkit-animation-duration", '1.5s');
    $(".miniSignal4").css("-webkit-animation-name", 'rescale42');
    $(".miniSignal4").css("-webkit-animation-duration", '1.5s');
}
timedSignalCount();
}

それはすべて element.css("",""); 2msごとにスタイルを再定義しますか?

4

0 に答える 0