Hello Friends, in this chapter we will build Balloon Popping Project using Lightning Web Component.
Note: I have used addEventListener to build this project so that you have good understanding of event listeners though there are more ways to build this project.
Topics Covered :
- DOM Event Listener
- Code Snippet
app.html
<template> <div class="wrapper"> <h1>Pop the balloons by moving</br>your mouse over them</h1> <div class="yay-no-balloons"><span class="blue">Wow!</span> All balloons popped!</div> <div class="balloon-gallery"> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> <div class="balloon"></div> </div> </div> </template>
app.js
import { LightningElement } from 'lwc'; export default class App extends LightningElement { popped = 0; textmsg = 'pop'; constructor(){ super(); this.template.addEventListener('mouseover',this.buttonClicked); } buttonClicked=(event)=>{ if (event.target.className === "balloon"){ event.target.style.backgroundColor = "#ededed"; event.target.innerHTML ='POP'; this.popped++ this.checkAllPopped(); } }; checkAllPopped(){ if (this.popped === 20){ console.log('all popped!'); const gallery = this.template.querySelector('.balloon-gallery'); const message = this.template.querySelector('.yay-no-balloons'); // gallery.innerHTML = ''; message.style.display = 'block'; } } }
app.css
body{ font-family:sans-serif; padding: 30px; background:#ededed; } .wrapper{ max-width: 690px; margin: 0 auto; } .blue { color:#3f7abe; } h1{ margin: auto; margin-top: 50px; margin-bottom: 50px; color: #08a3d9; text-transform: uppercase; font-size: 30px; color: #000380; } .balloon-gallery div{ background: #ff3300; height: 121px; width: 119px; text-align: center; color: #ff3300; font-size: 40px; font-family: sans-serif, arial; border-radius: 100%; margin-top: 20px; display: inline-block; /* float: left; */ margin: 2.5px 5 px 2.5px 0px; } .balloon-gallery div:nth-child(3n){ background: #ffce00; color: #ffce00; } .balloon-gallery div:nth-child(2n){ background:#3f7abe; color:#3f7abe; } .balloon-gallery div:nth-child(5n){ background:#8e7a8e; color:#8e7a8e; } .balloon-gallery div:nth-child(13){ background:#8e7a8e; color:#8e7a8e; } .balloon-gallery div:nth-child(10n){ background:#ff3300; color: #ff3300; } .balloon-gallery div:nth-child(4n){ clear:right; } .yay-no-balloons { display:none; color:#ff3300; font-size:100px; }
Hope you enjoyed the chapter !
Together we can learn faster !
Join LWC study group on Telegram
Subscribe to Youtube channel and blog to get latest updates