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. 137
      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.

137
app.js

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

Loading…
Cancel
Save