iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0
自我挑戰組

每天一份前端小作品系列 第 27

【Day27】綜合練習:鐵人小檔案

  • 分享至 

  • xImage
  •  

本日小作品:
https://codepen.io/linchinhsuan/pen/ZEOYerJ

重點摘要:

var lis = document.querySelectorAll(".data .skill li");
var classNames = ["html","css","jquery","js","rwd","total","day"];
var len = lis.length;
window.addEventListener("scroll",function(){
    var y = window.pageYOffset;
    if(y>100){
        for(var i=0;i<len;i++){
            lis[i].className = classNames[i];
        }     
    }
},false)

在window物件上綁定scroll事件,當頁面捲動的時候,會得到當前頁面的pageYOffset(可以想成離頁面最上方多遠的一個值),並賦值在變數y上。當y>100的時候則觸發for迴圈,將ul裡面的每個li動態新增class上去。

.data .skill li .loading div{
    width: 0%;
    overflow: hidden;
    transition: all 1s .3s ease;
}
.data .skill .html .loading div{
    width: 30%;
}

實際的做法會像是這樣,原本的設定是width為0%,當動態改變class之後,因為權重較高會覆蓋過去,寬度就會從0變成30%。動畫則使用css的transition來完成。
至於overflow: hidden;則是因為文字是寫在div裡面的,當寬度為0的時候文字出現會看起來相當奇怪,所以加上這行之後就可以讓文字被隱藏起來。

---

備註:
icon圖片版權來自
Icons made by Freepik from www.flaticon.com

---

本日結語:
今天是二十七天,進入了最後四天!今天是想用一個小小的個人檔案形式將從開始到現在寫過的鐵人賽文章統計一下,並練習了以往比較少用的scroll事件,如有寫錯之處麻煩各路高手指教><


上一篇
【Day26】綜合練習:樹苗養成遊戲
下一篇
【Day28】綜合練習:視差滾動之鐵人小檔案
系列文
每天一份前端小作品30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言