From d73b6dc9639f11aba00baabeecdaa2c627ae9ff1 Mon Sep 17 00:00:00 2001 From: Cristina Sturm Date: Thu, 12 Sep 2019 17:41:40 -0300 Subject: [PATCH] Turn NyanCat modular code style into simple functions. --- js/nyan.js | 53 ++++++++++++++++++----------------------------------- 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/js/nyan.js b/js/nyan.js index 5801044..05eb4df 100644 --- a/js/nyan.js +++ b/js/nyan.js @@ -1,46 +1,29 @@ -console.log('Nyan!'); +console.log('Nyan!') -const NyanCat = { - init: function () { - this.cat = document.getElementById('nyan-cat'); - this.framesAmount = 6; - this.currentFrame = 1; - }, - - cycleFrames: function () { - let myself = this; - this.cat.classList.remove('frame' + myself.currentFrame); - this.cat.classList.add('frame' + myself.cycleIds(myself.currentFrame)); - this.currentFrame = this.cycleIds(this.currentFrame); - }, - - cycleIds: function (_currId) { - if (_currId >= this.framesAmount) { - _currId = 1; - } else { - _currId += 1; - } - - return _currId; - } +function cycleFrames (_nyanCat, _currentFrame) { + _nyanCat.classList = [] + _nyanCat.classList.add(`frame${_currentFrame}`) } -const ReplicateSparks = (_sparksRow) => { - const numberOfRowsToCoverEntireScreen = Math.ceil(document.body.offsetHeight / _sparksRow.offsetHeight); - const newSparksRows = document.createElement('div'); +function replicateSparks (_sparksRow) { + const numberOfRowsToCoverEntireScreen = Math.ceil(document.body.offsetHeight / _sparksRow.offsetHeight) + const newSparksRows = document.createElement('div') for (let a = 0; a < numberOfRowsToCoverEntireScreen-1; a++) { - newSparksRows.append(_sparksRow.cloneNode(true)); + newSparksRows.append(_sparksRow.cloneNode(true)) } - document.body.prepend(newSparksRows); -}; + document.body.prepend(newSparksRows) +} (function () { - NyanCat.init(); - ReplicateSparks(document.querySelector('.sparks-combo')); + let nyanCat = document.getElementById('nyan-cat') + let currentFrame = 1 + + replicateSparks(document.getElementsByClassName('sparks-combo')[0]) setInterval(function () { - NyanCat.cycleFrames(); - }, 70); -})(); + currentFrame = (currentFrame % 6) + 1 + cycleFrames(nyanCat, currentFrame) + }, 70) +})()