Compare commits

..

6 Commits

Author SHA1 Message Date
Joshua Sigona 1ac507813d Provide working solution 5 years ago
Zubair Desai 77a1a7c0f2
Update README.md 7 years ago
Zubair Desai 71f6e6f2eb
Update README.md 7 years ago
Matt Lane 7957874f09 Update README.md 9 years ago
Matt Lane 4168c3ca1d Update app.js 9 years ago
Matt Lane 139798cc07 Update README.md 9 years ago
  1. 10
      README.md
  2. 149
      app.js

@ -2,6 +2,8 @@
Practice manipulating the DOM! Practice manipulating the DOM!
## Part One:
In a separate JS file: In a separate JS file:
When the page loads: When the page loads:
@ -12,6 +14,14 @@ When the page loads:
3. Create an image tag, set its `src` attribute to `http://49.media.tumblr.com/tumblr_m6qt1rjPSz1rxjzkho1_500.gif`, and append the to the `#greeting` div. 3. Create an image tag, set its `src` attribute to `http://49.media.tumblr.com/tumblr_m6qt1rjPSz1rxjzkho1_500.gif`, and append the to the `#greeting` div.
4. Create and add a ul element to the end of the body with a class of "todo-items"
5. Go through the array `['make coffee','eat donut','change diapers','drive to work']` and create an li element for each item e.g. `<li>make coffee</li>`
6. Add each newly created li element to your ul of class "todo-items"
## Part Two:
Afterwards: Afterwards:
4. Add the class of `selected` to an `<li>` when it is clicked. Remove it from any other `li`s as well. 4. Add the class of `selected` to an `<li>` when it is clicked. Remove it from any other `li`s as well.

149
app.js

@ -1,73 +1,94 @@
window.onload = function() { document.addEventListener('DOMContentLoaded',()=>{
console.log("Javascript is alive!")
var greeting = document.getElementById("greeting")
greeting.innerHTML="Hello, World!"
var listelements = document.getElementsByTagName("li")
for (var i=0;i<listelements.length;i++) {
listelements[i].style="background-color:yellow;"
}
var greeting = document.querySelector("#greeting")
// change greeting var newimg = document.createElement("img")
var greeting_div = document.getElementById("greeting"); newimg.classList.add("img-changer")
greeting_div.innerHTML = "Hello, World!"; newimg.src="http://49.media.tumblr.com/tumblr_m6qt1rjPSz1rxjzkho1_500.gif"
greeting.appendChild(newimg)
// set background on lis and add event listener var newlist = document.createElement("ul")
var list_items = document.querySelectorAll("li"); newlist.classList.add("todo-items")
for (var i = list_items.length - 1; i >= 0; i--) { var listText = ['make coffee','eat donut','change diapers','drive to work']
list_items[i].style.backgroundColor = "yellow"; for (task of listText) {
list_items[i].addEventListener("click", selectItem); var todoItem = document.createElement("li")
} todoItem.innerHTML = task
newlist.appendChild(todoItem)
}
document.body.appendChild(newlist)
// create and add image
var img = document.createElement('img');
img.src = "http://49.media.tumblr.com/tumblr_m6qt1rjPSz1rxjzkho1_500.gif";
greeting_div.appendChild(img);
// add more event listeners var clickSelector = (event)=>{
document.querySelector("#reset").addEventListener("click",resetButtonHandler); var listitems = document.getElementsByTagName("li");
document.querySelector("#ghosting").addEventListener("mouseover", function() { this.remove(); }); for (var i=0;i<listelements.length;i++) {
document.querySelector("#resize").addEventListener("mouseenter", doubleWidth); var item = listelements[i];
document.querySelector("#resize").addEventListener("mouseleave", resetWidth); item.classList.remove("selected")
document.querySelector("body").addEventListener("keyup", noDigits); //console.log("Removed from "+item)
}
event.target.classList.add("selected")
var changer = document.querySelector("img:not(.img-changer)")
changer.src = "./images/"+event.target.innerHTML+".jpeg"
}
// BONUS listelements = document.getElementsByTagName("li")
document.querySelector("body").addEventListener("keyup", konamiCheck); for (var i=0;i<listelements.length;i++) {
}; if (!listelements[i].parentElement.classList.contains("todo-items")) {
listelements[i].addEventListener("click",clickSelector)
}
}
function selectItem() { document.getElementById("reset").addEventListener("click",(event)=>{
var curSelected = document.querySelector(".selected"); var selectedItem = document.querySelector(".selected")
if (curSelected) { curSelected.className = ""; } selectedItem.classList.remove("selected")
this.className = "selected"; var changer = document.querySelector("img:not(.img-changer)")
document.querySelectorAll("img")[1].src = "./images/" + this.innerHTML + ".jpeg"; changer.src = "./images/panic.jpeg"
} })
function resetButtonHandler() { document.getElementById("ghosting").addEventListener("mouseover",(event)=>{
var curSelected = document.querySelector(".selected"); event.target.remove()
if (curSelected) { curSelected.className = ""; } })
document.querySelectorAll("img")[1].setAttribute("src","./images/panic.jpeg"); document.getElementById("resize").addEventListener("mouseover",(event)=>{
} event.target.style.width=event.target.offsetWidth*2+"px"
})
document.getElementById("resize").addEventListener("mouseout",(event)=>{
event.target.style.width=event.target.offsetWidth/2+"px"
})
var keySequence = []
var doubleWidth = function() { var arrayMatches = (arr1,arr2)=>{
this.style.width = '400px'; if (arr1.length!=arr2.length) {
}; return false;
}
for (var i=0;i<arr1.length;i++) {
if (arr1[i]!==arr2[i]) {
return false;
}
}
return true;
}
var resetWidth = function() { window.addEventListener("keydown",(event)=>{
this.style.width = '200px'; var keysListeningFor = [0,1,2,3,4,5,6,7,8,9]
}; if (keysListeningFor.includes(Number(event.key))) {
alert("I HATE NUMBERZZZ!")
var noDigits = function(e) { }
if (e.keyCode >= 48 && e.keyCode <= 57) { keySequence.push(event.key)
alert("I HATE NUMBERZZZ!"); if (keySequence.length>10) {
} keySequence = keySequence.slice(1,11)
}; }
var konamiCodeArray = ["up","up","down","down","left","right","left","right","b","a"]
// BONUS if (arrayMatches(konamiCodeArray,keySequence.map(val=>{
var newval = val.replace("Arrow","")
var idx = 0; newval = newval[0].toLowerCase() + newval.substr(1)
return newval
var konamiCheck = function(e) { }))) {
var konamiCodeKeyCodes = [38,38,40,40,37,39,37,39,66,65]; alert("YOU ARE AN EVENT HANDLER GURUUUUUUUUU!")
if (e.keyCode === konamiCodeKeyCodes[idx]) { }
idx++; })
if (idx === konamiCodeKeyCodes.length) { })
alert("YOU ARE AN EVENT HANDLER GURUUUUUUUUU!");
idx = 0;
}
} else {
idx = 0;
}
};

Loading…
Cancel
Save