大家好,我是一名熱愛(ài)JavaScript的前端工程師。JavaScript是一門高級(jí)編程語(yǔ)言,常用于web前端開(kāi)發(fā),它可以用于創(chuàng)建各種動(dòng)態(tài)效果,實(shí)現(xiàn)網(wǎng)頁(yè)交互和響應(yīng),增強(qiáng)用戶體驗(yàn)等。下面我將介紹一些我寫的JavaScript代碼。
首先,我寫過(guò)一個(gè)倒計(jì)時(shí)的效果。這個(gè)效果可以用于各種場(chǎng)景,例如破解密碼頁(yè)面、商品促銷頁(yè)面等。下面是我寫的代碼:
function countdown() { const now = new Date().getTime(); const deadline = new Date("June 30, 2022 23:59:59").getTime(); const timeLeft = deadline - now; const days = Math.floor(timeLeft / (1000 * 60 * 60 * 24)); const hours = Math.floor((timeLeft % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes = Math.floor((timeLeft % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((timeLeft % (1000 * 60)) / 1000); document.getElementById("countdown").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s "; if (timeLeft < 0) { clearInterval(x); document.getElementById("countdown").innerHTML = "EXPIRED"; } } setInterval(countdown, 1000);
上述代碼中我使用了JavaScript內(nèi)置的Date()對(duì)象,通過(guò)計(jì)算時(shí)間差來(lái)實(shí)現(xiàn)倒計(jì)時(shí)效果。將倒計(jì)時(shí)的結(jié)果更新到DOM中,使其顯示在頁(yè)面上。下方的setInterval()函數(shù)會(huì)每秒調(diào)用一次countdown()函數(shù),從而實(shí)現(xiàn)倒計(jì)時(shí)效果。
其次,我寫過(guò)一個(gè)實(shí)現(xiàn)背景色漸變的效果。這個(gè)效果可以用于優(yōu)化網(wǎng)站界面,使其看上去更加美觀。下面是我寫的代碼:
let colorIndex = 0; const colors = ["#c7c7c7", "#d1d1d1", "#dcdcdd", "#e7e7e7", "#f1f1f1", "#fbfbfb"]; function changeBgColor() { document.body.style.backgroundColor = colors[colorIndex]; colorIndex++; if (colorIndex === colors.length) { colorIndex = 0; } } setInterval(changeBgColor, 5000);
上述代碼中,我使用了一個(gè)colors數(shù)組來(lái)存儲(chǔ)需要漸變的顏色值。在changeBgColor()函數(shù)中我會(huì)每次從數(shù)組中取出一個(gè)顏色值,并將其設(shè)置為body的背景色。當(dāng)colorIndex達(dá)到數(shù)組長(zhǎng)度時(shí),將其重置為0,從而實(shí)現(xiàn)背景色的循環(huán)漸變。最后,setInterval()函數(shù)會(huì)每5秒調(diào)用一次changeBgColor()函數(shù),實(shí)現(xiàn)背景色漸變效果。
最后,我還寫過(guò)一個(gè)輪播圖的效果。輪播圖是網(wǎng)站頁(yè)面中經(jīng)常用到的效果之一,可以用于展示多張圖片或者其他內(nèi)容。下面是我寫的代碼:
let slideIndex = 0; function showSlides() { const slides = document.getElementsByClassName("slide"); for (let i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } slideIndex++; if (slideIndex > slides.length) { slideIndex = 1; } slides[slideIndex - 1].style.display = "block"; setTimeout(showSlides, 2000); } showSlides();
上述代碼中,我使用了一個(gè)slideIndex來(lái)記錄當(dāng)前顯示的是第幾張輪播圖。在showSlides()函數(shù)中,我首先將所有輪播圖的display屬性都設(shè)置為none,從而隱藏所有輪播圖。接著,將slideIndex加1,當(dāng)slideIndex達(dá)到輪播圖數(shù)量時(shí),重置為1。最后,將當(dāng)前輪播圖的display設(shè)置為block,從而實(shí)現(xiàn)輪播圖的循環(huán)切換。最后,通過(guò)setTimeout()函數(shù)每?jī)擅腌娬{(diào)用一次showSlides()函數(shù),使輪播圖自動(dòng)播放。
以上就是我寫的一些JavaScript代碼,通過(guò)這些代碼可以實(shí)現(xiàn)各種效果。JavaScript是一門強(qiáng)大的語(yǔ)言,可以為網(wǎng)站增添無(wú)限的動(dòng)態(tài)效果和交互性。希望您也能夠喜歡上JavaScript這門語(yǔ)言,并寫出更加優(yōu)美高效的代碼。