Skip to content

Commit 0cf9dd0

Browse files
Increase efficiency - test cameronwp#1
1 parent 57e252b commit 0cf9dd0

File tree

2 files changed

+65
-7
lines changed

2 files changed

+65
-7
lines changed

views/css/style.css

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
body {
1111
font-family: "Trebuchet MS", Helvetica, sans-serif;
1212
background: black;
13+
1314
}
1415

1516
input {
@@ -33,11 +34,16 @@ form {
3334
position: fixed;
3435
width: 256px;
3536
z-index: -1;
37+
will-change: transform;
38+
transform: translateZ(0);
39+
3640
}
3741

3842
.randomPizzaContainer {
3943
float: left;
4044
display: flex;
45+
46+
4147
}
4248

4349
.randomPizzaContainer:after {
@@ -48,4 +54,5 @@ form {
4854

4955
.container {
5056
background-color: rgba(240, 60, 60, 0.8);
57+
will-change: transform;
5158
}

views/js/main.js

Lines changed: 58 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -450,11 +450,39 @@ var resizePizzas = function(size) {
450450

451451
// Iterates through pizza elements on the page and changes their widths
452452
function changePizzaSizes(size) {
453-
for (var i = 0; i < document.querySelectorAll(".randomPizzaContainer").length; i++) {
453+
454+
var ramdomPizzas = document.getElementsByClassName('randomPizzaContainer');
455+
456+
//alert(size);
457+
var pizzaContainerwidth = "33.33%";
458+
switch(size) {
459+
case "1":
460+
newwidth = 25;
461+
break;
462+
case "2":
463+
newwidth = 33.33;
464+
break;
465+
case "3":
466+
newwidth = 50;
467+
break;
468+
default:
469+
console.log("bug in sizeSwitcher");
470+
}
471+
472+
var elemArray = Array.prototype.slice.apply(ramdomPizzas);
473+
474+
for(var i = 0; i < elemArray.length; i++){
475+
elemArray[i].style.width = newwidth +'%';
476+
}
477+
478+
/*
479+
for (var i = 0; i < document.querySelectorAll(".randomPizzaContainer").length; i++) {
454480
var dx = determineDx(document.querySelectorAll(".randomPizzaContainer")[i], size);
455481
var newwidth = (document.querySelectorAll(".randomPizzaContainer")[i].offsetWidth + dx) + 'px';
456482
document.querySelectorAll(".randomPizzaContainer")[i].style.width = newwidth;
457483
}
484+
*/
485+
458486
}
459487

460488
changePizzaSizes(size);
@@ -469,7 +497,7 @@ var resizePizzas = function(size) {
469497
window.performance.mark("mark_start_generating"); // collect timing data
470498

471499
// This for-loop actually creates and appends all of the pizzas when the page loads
472-
for (var i = 2; i < 100; i++) {
500+
for (var i = 2; i < 12; i++) {
473501
var pizzasDiv = document.getElementById("randomPizzas");
474502
pizzasDiv.appendChild(pizzaElementGenerator(i));
475503
}
@@ -502,11 +530,34 @@ function updatePositions() {
502530
frame++;
503531
window.performance.mark("mark_start_frame");
504532

505-
var items = document.querySelectorAll('.mover');
506-
for (var i = 0; i < items.length; i++) {
507-
var phase = Math.sin((document.body.scrollTop / 1250) + (i % 5));
508-
items[i].style.left = items[i].basicLeft + 100 * phase + 'px';
533+
var items = document.getElementsByClassName('mover');
534+
535+
var elemArray = Array.prototype.slice.apply(items);
536+
537+
var scrolltopitem = document.body.scrollTop;
538+
539+
//calculate 5 phases
540+
var phases = [];
541+
for(var i=0; i<5;i++){
542+
var phase = Math.sin((scrolltopitem / 1250) + (i % 5));
543+
544+
phases[i] = phase * 100;
545+
}
546+
547+
548+
for (var i = 0; i < elemArray.length; i++) {
549+
//console.log('inside loop: ' + document.body.scrollTop)
550+
551+
//var phase = Math.sin((scrolltopitem / 1250) + (i % 5));
552+
//console.log('in loop; phase for ['+ i + '] is: ' + phase);
553+
//elemArray[i].style.left = elemArray[i].basicLeft + 100 * phase + 'px';
554+
555+
//console.log('elemArray[i].basicLeft =' + elemArray[i].basicLeft)
556+
//var shiftitem = (i % 5);
557+
//console.log('shiftitem is:' + shiftitem);
558+
elemArray[i].style.left = elemArray[i].basicLeft + phases[i % 5] + 'px';
509559
}
560+
510561

511562
// User Timing API to the rescue again. Seriously, it's worth learning.
512563
// Super easy to create custom metrics.
@@ -525,7 +576,7 @@ window.addEventListener('scroll', updatePositions);
525576
document.addEventListener('DOMContentLoaded', function() {
526577
var cols = 8;
527578
var s = 256;
528-
for (var i = 0; i < 200; i++) {
579+
for (var i = 0; i < 60; i++) {
529580
var elem = document.createElement('img');
530581
elem.className = 'mover';
531582
elem.src = "images/pizza.png";

0 commit comments

Comments
 (0)