iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
自我挑戰組

coding小白盜版學校官網ㄉ30天挑戰日記系列 第 25

coding小白盜版學校官網ㄉ30天挑戰日記 雜七雜八的進度

  • 分享至 

  • xImage
  •  

哈嘍各位晚安,歡迎來到coding小白盜版學校官網的第25天,這個計畫的內容是我這個coding超新手會在這30天裡,把複刻學校官網當作目標,從最基礎的前端html、css、js...開始邊做邊學,紀錄每天的學習進度,看看一個月過去能學到什麼程度。

早上出門突然感覺風一夜之間變成涼的,果然中秋節過後真的就要進入到秋天了ㄋ。
今天沒什麼特別的目標,想到什麼就做什麼,做了蠻多瑣碎的事

先是看到昨天設定分頁的JS,一大坨真的占空間,所以讓chatgpt用迴圈幫忙簡化一下。
不得不說迴圈真是個好東西,從原本這樣一大串

const list01 =document.querySelector(".list01")
const list02 =document.querySelector(".list02")
const list03 =document.querySelector(".list03")
const list04 =document.querySelector(".list04")
const list05 =document.querySelector(".list05")
const list06 =document.querySelector(".list06")

const info01 =document.querySelectorAll(".info01")
const info02 =document.querySelectorAll(".info02")
const info03 =document.querySelectorAll(".info03")
const info04 =document.querySelectorAll(".info04")
const info05 =document.querySelectorAll(".info05")
const info06 =document.querySelectorAll(".info06")

info01.forEach(btn => {
  btn.addEventListener("click",function(){
    list01.style.display = "flex";
    list06.style.display = "none";
    list05.style.display = "none";
    list02.style.display = "none";
    list03.style.display = "none";
    list04.style.display = "none";
  });
})
info02.forEach(btn => {
  btn.addEventListener("click",function(){
    list02.style.display = "flex";
    list06.style.display = "none";
    list05.style.display = "none";
    list01.style.display = "none";
    list03.style.display = "none";
    list04.style.display = "none";
  });
})
info03.forEach(btn => {
  btn.addEventListener("click",function(){
    list03.style.display = "flex";
    list06.style.display = "none";
    list05.style.display = "none";
    list02.style.display = "none";
    list01.style.display = "none";
    list04.style.display = "none";
  });
})
info04.forEach(btn => {
  btn.addEventListener("click",function(){
    list04.style.display = "flex";
    list06.style.display = "none";
    list05.style.display = "none";
    list03.style.display = "none";
    list02.style.display = "none";
    list01.style.display = "none";
  });
})
info05.forEach(btn => {
  btn.addEventListener("click",function(){
    list05.style.display = "flex";
    list06.style.display = "none";
    list04.style.display = "none";
    list03.style.display = "none";
    list02.style.display = "none";
    list01.style.display = "none";
  });
})
info06.forEach(btn => {
  btn.addEventListener("click",function(){
    list06.style.display = "flex";
    list05.style.display = "none";
    list04.style.display = "none";
    list03.style.display = "none";
    list02.style.display = "none";
    list01.style.display = "none";
  });
})

一下就剩一小搓ㄌ

const lists = Array.from({ length: 6 }, (_, i) => document.querySelector(`.list0${i + 1}`));

for (let i = 1; i <= 6; i++) {
  const infos = document.querySelectorAll(`.info0${i}`);
  infos.forEach(btn => {
    btn.addEventListener("click", function () {
      // 先全部隱藏
      lists.forEach(list => list.style.display = "none");
      // 只顯示被點擊的那一個
      lists[i - 1].style.display = "flex";
    });
  });
}

再來發現之前做好的YT影片小視窗不會自動輪播了,問gpt怎麼一回事
https://ithelp.ithome.com.tw/upload/images/20251009/20178754Op4CheRDfa.png
…原來只是不小心刪掉了幾行啊,補回去輕輕鬆鬆~

//影片輪播!!!
const slides02 = document.querySelector(".slides02");
const totalSlides = 4;       // 三張實際 + 一張複製
const slideWidth = 450;      // 每個 iframe 寬度
let index = 0;
const intervalTime = 4000;   // 每張停留時間

const arrow01 =document.querySelector(".arrow01")
const arrow02 =document.querySelector(".arrow02")

function nextSlide() {
    index++;
    slides02.style.transition = 'transform 1s ease';
    slides02.style.transform = `translateX(-${slideWidth * index}px)`;

    // 如果到達最後一張(複製的第一張)
    if (index === totalSlides - 1) {
        setTimeout(() => {
            slides02.style.transition = 'none';
            slides02.style.transform = `translateX(0px)`; // 無縫回到第一張
            index = 0;
        }, 1000); // 與 transition 時間一致
    }
}
function prevSlide(){
  if(index ===0){
    // 如果已經在第一張,就跳到最後一張
    index =totalSlides-2
    slides02.style.transition ='none'
    slides02.style.transform = `translateX(-${slideWidth * index}px)`;
    // 強制重繪後再加 transition,避免瞬間跳轉
        setTimeout(() => {
            slides02.style.transition = 'transform 1s ease';
            slides02.style.transform = `translateX(-${slideWidth * index}px)`;
        }, 20);
    } else {
        index--;
        slides02.style.transition = 'transform 1s ease';
        slides02.style.transform = `translateX(-${slideWidth * index}px)`;
    }
}
setInterval(nextSlide, intervalTime);
arrow01.addEventListener("click", prevSlide);
arrow02.addEventListener("click", nextSlide);

最後發現學校的網站滑鼠懸浮在nav文字上的時候,都會出現手指頭符號&白底黑字ㄉ備註,決定來學一下~~(手指頭截圖截不下來尷尬ㄌ
https://ithelp.ithome.com.tw/upload/images/20251009/20178754mOfCZ8yzCz.png
手指頭效果其實很簡單,只要在css加上cursor: pointer;就可以了

.nav02-2{/*主要nav文字*/
    display: flex;
    align-items: center;
    cursor: pointer;
}

至於備註就是在a標籤裡面加個title="",打上喜歡的字

<ul class="nav-drop font13" type="none">
                    <li><a href="#" title="不知道不要問我">歷任校長</a></li>
                    <li><a href="#">北教大簡介</a></li>
                    <li><a href="#">學校願景</a></li>
                    <li><a href="#">組織規章</a></li>
                    <li><a href="#">校園風光</a></li>
                    <li><a href="#">交通指引</a></li>
                    <li><a href="#">校園地圖</a></li>
                    <li><a href="#">360VR全景</a></li>
                    <li class="no-border"><a href="#">附小</a></li>
                </ul>

薑薑完美
https://ithelp.ithome.com.tw/upload/images/20251009/20178754MOe7TTK9Zn.png
以上就是今天的進度,真是平靜祥和的一天
大家明天見ㄅㄅ~


上一篇
coding小白盜版學校官網ㄉ30天挑戰日記 做點不廢腦的事 補齊分頁和列表
系列文
coding小白盜版學校官網ㄉ30天挑戰日記25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言