2017-04-20 8 views
-3

強制同期レイアウトを引き起こしているこのコードをJavascriptで修正する必要があります。JavaScriptコードにより強制同期レイアウトが発生しています

どのようにすればいいですか?

function updatePositions() { 
    frame++; 
    window.performance.mark("mark_start_frame"); 

    var items = document.querySelectorAll('.mover'); 
    for (var i = 0; i < items.length; i++) { 
    var phase = Math.sin((document.body.scrollTop/1250) + (i % 5)); 
    items[i].style.left = items[i].basicLeft + 100 * phase + 'px'; 
} 

答えて

0

コードが正しく実装されていません。だから、私はいくつかのエラーを修正しました。

var frame = 0; 
 

 
function createMark(name) { 
 
    if (performance.mark === undefined) { 
 
    console.log("performance.mark Not supported"); 
 
    return; 
 
    } 
 
    // Create the performance mark 
 
    performance.mark(name); 
 
} 
 

 
var updater = document.getElementById('updater'); 
 
updater.addEventListener('click', function() { 
 
    updatePositions() ; 
 
}); 
 

 
function updatePositions() { 
 
    frame++; 
 
    //window.performance.mark("mark_start_frame"); 
 
    createMark('mark_start_frame'); 
 
    
 
    var items = document.querySelectorAll('.mover'); 
 
    var index = 0; 
 
    items.forEach(function(item){ 
 
    var phase = Math.sin((document.body.scrollTop/1250) + (index % 5)); 
 
    item.style.left = (item.offsetLeft + 100 * phase) + 'px'; 
 
    }); 
 
    console.log('updatePositions()'); 
 
}
<div id="updater">Click to Update</div> 
 
<p></p> 
 
<div id="moverA" class="mover">A</div> 
 
<div id="moverB" class="mover">B</div> 
 
<div id="moverC" class="mover">C</div> 
 
<div id="moverD" class="mover">D</div> 
 
<div id="moverE" class="mover">E</div> 
 
<hr>

+0

私も(https://jsfiddle.net/teocci/82nxwv4t/)[このページにこのコードを配置 – Teocci

関連する問題