溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript前端如何實(shí)現(xiàn)小說分頁功能

發(fā)布時(shí)間:2022-08-17 09:48:21 來源:億速云 閱讀:296 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了JavaScript前端如何實(shí)現(xiàn)小說分頁功能的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇JavaScript前端如何實(shí)現(xiàn)小說分頁功能文章都會(huì)有所收獲,下面我們一起來看看吧。

我們知道原來columns是一個(gè)簡(jiǎn)寫屬性,代表了 column-widthcolumn-count兩個(gè)屬性,這兩個(gè)屬性又分別代表著:

<'column-width'>

理想的列寬,定義為 或 auto 關(guān)鍵字。實(shí)際寬度可以更寬或更窄以適合可用空間。See column-width。

<'column-count'>

元素內(nèi)容應(yīng)分成的理想列數(shù),定義為 或 auto 關(guān)鍵字。如果此值和列的寬度都不是 auto ,則它僅指示允許的最大列數(shù)。請(qǐng)參閱 column-count 。 - MDN

然后我們?cè)倏椿仄瘘c(diǎn)中對(duì)這個(gè)屬性的定義columns: calc(100vw - 32px) 1;

其中calc(100vw - 32px)這個(gè)代表column-width的值代表了每一列的寬度為整屏的寬度再減去兩邊的間隙各16px。

這里一提column-gap就是列與列的間隙,所以在圖中可以看到這里的值設(shè)置了16px

而代表column-count這個(gè)值的1就是只保持一列,并沒有什么作用,因?yàn)?code>100vw - 32px這個(gè)寬度已經(jīng)不可能讓屏幕中再多一列了,多出的列數(shù)將會(huì)排列在右側(cè)。

當(dāng)使用 columns 規(guī)定兩個(gè)值時(shí),如:

columns: 100px 3;

表示:

當(dāng)每列寬度大于 100px 時(shí),就以 3 列分割顯示;當(dāng)瀏覽器寬度縮小,導(dǎo)致在 3 列情況下無法滿足每列大于 100px,就開始轉(zhuǎn)為 2 列;當(dāng)瀏覽器再縮小,2 列中每列無法再保持 100px 每列時(shí),再次轉(zhuǎn)為 1 列...

以此類推,"100px" 為每列不可低于的寬值,"3" 表示指定要顯示的列。相對(duì)于單獨(dú)設(shè)置 column-width 或 column-count,columns 要更加靈活。 - 菜鳥教程 - Kai

還有一點(diǎn)需要注意的是,需要將文章的高度設(shè)置為屏幕的高度,這樣才會(huì)排成多列。

JavaScript前端如何實(shí)現(xiàn)小說分頁功能

再通過translate進(jìn)行平移,以及父級(jí)的overflow: hidden隱藏多余列,就可以達(dá)到分頁的效果了。

JavaScript前端如何實(shí)現(xiàn)小說分頁功能

最后看看columns的兼容性:

JavaScript前端如何實(shí)現(xiàn)小說分頁功能

可以看出都支持了這個(gè)屬性,可以放心大膽的用。

思路已至,碼來!

我們來簡(jiǎn)單的實(shí)現(xiàn)一下這個(gè)效果。

// index.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="./style.css" rel="external nofollow" >
  <script src="./vue.js"></script>
</head>
<body>
  <div class="wrapper">
    <article>
      <h4>第一章: 我不是小說</h4>
      <p>小說真可愛,我要看小說,小說不給看,我就寫小說,寫小說不好寫,我就看小說............</p> <!-- *1000 -->
    </article>
  </div>
  <script src="./app.js"></script>
</body>
</html>
// style.css
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.wrapper{
  height: 100vh;
  overflow: hidden;
  margin: 0 16px;
}
article{
  columns: calc(100vw - 32px) 1;
  column-gap: 16px;
  height: 100%;
  transition: .4s;
}
let i = 0;
let article = document.querySelector('article');
setInterval(() => {
  let width = document.body.offsetWidth;
  i++;
  if(i > 3) i = 0;
  article.style.transform = `translateX(-${(width - 16) * i}px)`
}, 1000);

關(guān)于“JavaScript前端如何實(shí)現(xiàn)小說分頁功能”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“JavaScript前端如何實(shí)現(xiàn)小說分頁功能”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI