JS - 單頁(yè)面無(wú)限加載頁(yè)面

DEMO
功能: 實(shí)現(xiàn)聽(tīng)過(guò)滾動(dòng)無(wú)限刷新增添新元素

監(jiān)聽(tīng) scroll 事件

通過(guò)監(jiān)聽(tīng) scroll 事件长已,在頁(yè)面滾動(dòng)到距離底部不到 100px 時(shí)盗誊,開(kāi)始增添元素

image.png

具體如下懈息,計(jì)算出距離底部位置

    document.addEventListener('scroll', function(e) {
      if (document.documentElement.offsetHeight - pageYOffset - innerHeight < 100) {
         //此時(shí)操作 DOM 節(jié)點(diǎn)
         console.log('adding now....')
      }
    })

創(chuàng)建 加入 dom 節(jié)點(diǎn)

當(dāng)滾動(dòng)到 底部 100px 區(qū)域時(shí)嘹裂,開(kāi)始增添元素芙代,為模擬真實(shí)頁(yè)面獲取時(shí)要請(qǐng)求網(wǎng)絡(luò)帶來(lái)的時(shí)間損耗鼓黔,此處通過(guò) setTimeout 模擬延時(shí)請(qǐng)求旭旭,

        //此時(shí)操作 DOM 節(jié)點(diǎn)
        setTimeout(() => {
          console.log('adding now....')
          new Array(10).fill(0).forEach(() => {
            var li = document.createElement('li')
            list.appendChild(li)
          })
        }, 1000)

修復(fù)重復(fù)執(zhí)行

上面的代碼有個(gè)問(wèn)題谎脯,當(dāng)滾動(dòng)到底部100px時(shí),在此滾動(dòng)持寄,同時(shí)會(huì)繼續(xù)觸發(fā)事件源梭,一般我們不會(huì)有這樣的需求

image.png

再次完善代碼,設(shè)定狀態(tài) 標(biāo)簽 loading 稍味,以此來(lái)判斷事件狀態(tài)

    //初始化 loading
   var loading = false
    loadingText.style.display = 'none'

    document.addEventListener('scroll', function(e) {
      // 此處判斷 loading 狀態(tài)
      if (loading === false && ... < 100) {
        // 設(shè)定 loading 狀態(tài)為 true
        loading = true
        loadingText.style.display = 'block'

        setTimeout(() => {
          // 操作 DOM
          // 添加完元素废麻,初始化 loading 狀態(tài)為 false
          loading = false
          loadingText.style.display = 'none'
        }, 1000)
      }
    })

CSS修飾

盡肯能隨機(jī)化創(chuàng)建元素顏色,

setTimeout(() => {
  //...
    new Array(10).fill(0).forEach(() => {
      var li = document.createElement('li')
      let c = list.childElementCount ** 2
      li.style.background = `rgba(${(c - 90) % 255},${c % 255},${(c + 110) % 255})`
      li.innerHTML = li.style.background
      list.appendChild(li)
    })
  //...
}, 1000)
    li {
      margin: 5px;
      transition: .2s
    }
    li:hover{
      transform: translate3d(0, -3px, 0);
      box-shadow: 0 15px 30px rgba(0,0,0,0.1);
    }

DEMO

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仲闽,一起剝皮案震驚了整個(gè)濱河市脑溢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖屑彻,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件验庙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡社牲,警方通過(guò)查閱死者的電腦和手機(jī)粪薛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搏恤,“玉大人违寿,你說(shuō)我怎么就攤上這事∈炜眨” “怎么了藤巢?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)息罗。 經(jīng)常有香客問(wèn)我掂咒,道長(zhǎng),這世上最難降的妖魔是什么迈喉? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任绍刮,我火速辦了婚禮,結(jié)果婚禮上挨摸,老公的妹妹穿的比我還像新娘孩革。我一直安慰自己,他們只是感情好得运,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布膝蜈。 她就那樣靜靜地躺著,像睡著了一般澈圈。 火紅的嫁衣襯著肌膚如雪彬檀。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,043評(píng)論 1 291
  • 那天瞬女,我揣著相機(jī)與錄音窍帝,去河邊找鬼。 笑死诽偷,一個(gè)胖子當(dāng)著我的面吹牛坤学,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播报慕,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼深浮,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了眠冈?” 一聲冷哼從身側(cè)響起飞苇,我...
    開(kāi)封第一講書(shū)人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤菌瘫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后布卡,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體雨让,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年忿等,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了栖忠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贸街,死狀恐怖庵寞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情薛匪,我是刑警寧澤捐川,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站蛋辈,受9級(jí)特大地震影響属拾,放射性物質(zhì)發(fā)生泄漏将谊。R本人自食惡果不足惜冷溶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尊浓。 院中可真熱鬧逞频,春花似錦、人聲如沸栋齿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瓦堵。三九已至基协,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菇用,已是汗流浹背澜驮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留惋鸥,地道東北人杂穷。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像卦绣,于是被迫代替她去往敵國(guó)和親耐量。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351