線上直播系統原始碼,實現翻頁載入、下拉滾動載入
線上直播系統原始碼,實現翻頁載入、下拉滾動載入
在檔案中引入並使用
從react-pdf引入會有不知名錯誤,react-pdf/dist/esm/entry.webpack並沒有。
onLoadSuccess可以獲取對應載入pdf的總頁數,此處用函式onDocumentLoadSuccess儲存為numPages。
Page設定屬性pageNumber就是對應的pdf頁數,引數基於1,這裡展示第一頁,可以通過新增按鈕修改pageNumber的值達到切換pdf頁面的效果。
Document的file就是訪問pdf路徑,如果是本地路徑也許不會有跨域問題,如果是線上pdf,開發時建議加上字首進行proxy代理,專案上線後同樣用nginx做一樣的代理即可。此處代理/pdf/,將/pdf/後面請求的pdf檔案轉發去線上檔案所在地址。
import React, { Component } from 'react'; import { Document, Page } from 'react-pdf/dist/esm/entry.webpack'; export default class index extends Component { state = { numPages: null, pageNumber: 1, }; onDocumentLoadSuccess = ({ numPages }) => { this.setState({ numPages }); }; render() { const { pageNumber } = this.state; return ( <div> <Document file={'/pdf/555.pdf'} onLoadSuccess={this.onDocumentLoadSuccess} > <Page width={window.screen.width} pageNumber={pageNumber} /> </Document> <button onClick={() => { pageNumber > 1 ? this.setState({ pageNumber: pageNumber - 1 }) : alert('前面沒有了'); }} > 上一頁 </button> <button onClick={() => { pageNumber < numPages ? this.setState({ pageNumber: pageNumber + 1 }) : alert('後面沒有了'); }} > 下一頁 </button> </div> ); } }
下拉展示
其實就是一口氣遍歷渲染出來,建立了一個長度為總頁數numPages的陣列進行map,用index做頁數的請求,不過index基於0,pageNumber基於1,因此index需要+1。
示例比較粗糙,一口氣展示,展示較少內容的pdf時沒有什麼問題,如果pdf頁數過多會出現效能問題,可以自行考慮載入方法(例如每滑動十頁進行下面十頁的載入)。
import React, { Component } from 'react'; import { Document, Page } from 'react-pdf/dist/esm/entry.webpack'; export default class index extends Component { state = { numPages: null, pageNumber: 1, }; onDocumentLoadSuccess = ({ numPages }) => { this.setState({ numPages }); }; render() { const { pageNumber, numPages } = this.state; return ( <div> <Document file={'/pdf/555.pdf'} onLoadSuccess={this.onDocumentLoadSuccess} > {new Array(numPages).fill('').map((cur, index) => ( <Page key={index} width={window.screen.width} pageNumber={index + 1} /> ))} </Document> </div> ); } }
以上就是線上直播系統原始碼,實現翻頁載入、下拉滾動載入, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2846724/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 手機直播原始碼,JS實現頁面下拉載入資料操作原始碼JS
- js實現 web頁面的滾動條下拉時載入更多JSWeb
- 線上直播系統原始碼,迴圈滾動RecyclerView的實現原始碼View
- 線上直播系統原始碼,LinearLayout下多個ListView實現滾動原始碼View
- Vue完美記住滾動條和實現下拉載入Vue
- angular 監聽 Windows 滾動事件 實現頁面滾動載入AngularWindows事件
- 滾動載入圖片(懶載入)實現原理
- 直播系統原始碼,ViewPager載入大圖 左右滑動原始碼Viewpager
- 直播平臺搭建,JS實現頁面下拉載入資料操作JS
- 直播系統原始碼,vue實現無縫滾動原始碼Vue
- 直播原始碼,下拉重新整理和上劃預載入新內容原始碼
- 線上直播系統原始碼,簡單實現Android應用的啟動頁原始碼Android
- 成品直播原始碼推薦,實現文字載入效果 文字跳動原始碼
- 如何實現上拉載入,下拉重新整理?
- Flutter 實現下拉重新整理&上拉載入Flutter
- 線上直播系統原始碼,flutter 巢狀滑動實現原始碼Flutter巢狀
- app直播原始碼,等待時的載入動畫(交錯載入動畫)APP原始碼動畫
- 線上直播系統原始碼,滾動式內容展示控制元件原始碼控制元件
- 線上直播系統原始碼,當前版本號頁面呈現原始碼
- 短影片app原始碼,Vue3滾動載入APP原始碼Vue
- 直播系統原始碼,自動登入及記住密碼實現原始碼密碼
- 直播系統app原始碼,Android studio 實現app登入註冊頁面APP原始碼Android
- 下拉重新整理,上拉載入外掛mescroll原始碼分析原始碼
- 婚戀交友原始碼開發,移動端滾動載入更多元件的實現原始碼元件
- 移動端用下拉重新整理的方式實現上拉載入
- 線上直播系統原始碼,個人主頁使用者標籤新增實現原始碼
- 移動端無限滾動載入 js實現原理JS
- nodeJS 爬蟲,通過Puppeteer實現滾動載入NodeJS爬蟲
- 影片直播原始碼,載入gif圖片原始碼
- 直播app原始碼,系統首頁或任意頁面下拉自動重新整理APP原始碼
- vue 實現上拉載入下拉重新整理(思路賊清晰)Vue
- 小說APP原始碼的圖片載入方式,懶載入和預載入的實現APP原始碼
- 一起來實現圖片滾動懶載入
- 如何實現婚戀app原始碼中直播首屏載入優化?APP原始碼優化
- 線上直播系統原始碼,使用ValueAnimator實現view放大縮小動畫效果原始碼View動畫
- 線上直播系統原始碼,利用css和html實現首頁圖片輪播效果原始碼CSSHTML
- 線上直播系統原始碼,vue實現搜尋文字高亮功能原始碼Vue
- app直播原始碼,平臺登入頁面實現和修改密碼頁面實現APP原始碼密碼