免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Canvas移動端畫板批注PDF預覽:坐標映射與性能優(yōu)化實踐

Canvas移動端畫板批注PDF預覽:坐標映射與性能優(yōu)化實踐 簡介面向移動端H5開發(fā)者的Canvas畫板批注PDF預覽資源包專注解決在手機端實現(xiàn)PDF文檔渲染、手寫批注與標記保存等交互需求。資源以PDF.js解析流程為技術主線覆蓋從PDF文檔加載、頁面渲染到Canvas畫板觸控繪制的完整鏈路并給出批注導出與持久化的實現(xiàn)參考。包內(nèi)共150個文件其中JS腳本承擔核心解析與繪制邏輯HTML與CSS搭建頁面結構GIF動圖直觀演示操作過程PNG/JPG圖片提供界面預覽另含字體、Map及PDF樣例等輔助文件壓縮后僅2.4MB小巧輕量。已有1750人學習下載適合需要快速落地移動端PDF批注功能的前端工程師與H5開發(fā)者。參考該資源可避開跨域配置、坐標適配、移動端事件兼容等常見坑點并結合layui等前端組件快速集成對分頁渲染與批注存儲等性能優(yōu)化也給出方向提示能顯著縮短從零開發(fā)周期。1. canvas 移動端畫板批注 PDF 預覽為什么圖片方案在這里不可行做移動端 H5 PDF 預覽時我最早偷懶把 PDF 轉成圖片再鋪到頁面上直到接了一個 canvas 移動端畫板批注需求被打臉用戶要能在 PDF 上直接畫圈、寫意見畫完還要能導出和回放。圖片方案表面簡單可一旦涉及多頁預覽、放大后批注對位、換設備之后筆跡偏移就處處踩坑。這份資源給的是另一條路用 canvas 承載批注層和 PDF 渲染層分離再用一套坐標映射把屏幕上的筆跡還原到 PDF 原始坐標系。適合正在做 H5 文檔預覽、審批流、簽字確認這類場景的前端也適合想搞清 canvas 分層繪制的讀者。2. 工程拆解PDF 渲染層與畫板批注層先分開再談功能拿到資源后別急著跑起來先把它拆成三個模塊PDF 渲染、畫板繪制、坐標換算。很多半成品項目的問題就是這三塊糊在一個組件里滾動、縮放、畫條線互相打架。下面先看源碼包的核心結構再逐層說為什么選這種方案。2.1 源碼包里的核心模塊長什么樣這份資源解開后工程結構大致是這樣src/ ├── pages/ # 頁面入口預覽頁、批注頁 │ ├── preview.js │ └── annotate.js ├── core/ │ ├── pdfRender.js # PDF 加載、翻頁、渲染 │ ├── board.js # 畫板層、筆跡繪制與事件綁定 │ ├── coordTransform.js # 屏幕坐標與 PDF 坐標互轉 │ └── history.js # 批注記錄、撤銷棧 ├── utils/ │ ├── dpr.js # 設備像素比處理 │ └── storage.js # 批注數(shù)據(jù)本地保存 └── styles/ └── board.css # 圖層定位、觸摸行為樣式這個結構對應的是分層思路pdfRender.js只負責把 PDF 畫到頁面board.js只負責在透明 canvas 上畫線coordTransform.js是兩者之間唯一的溝通橋梁。這樣做的好處是后續(xù)換 PDF 渲染庫、改畫板樣式都不會牽連到坐標換算邏輯。跑通資源里的 demo 后建議先找到coordTransform.js把里面兩個核心函數(shù)讀一遍。這個文件是整個項目的命脈不管你只是想要“能畫”還是想要“畫了能存、存了能還原”最終都要回到這里。2.2 PDF 渲染為什么選 pdf.js 而不是后端轉圖移動端 PDF 預覽有三種常見做法后端把 PDF 轉成圖片一次性返回、前端用原生控件加載、前端用 PDF 渲染庫逐頁繪制。這里的資源選的是第三種并且用的渲染方案是 pdf.js。原因是批注場景對“坐標一致性”要求太高。如果你把 PDF 轉成圖片前端拿到的是一張位圖就算知道圖片寬高也很難定位“這個 PDF 的第 3 頁里某個表格區(qū)域”在哪個像素點因為 PDF 頁面里的文字和矢量圖形已經(jīng)被拍扁成圖片了。而直接用 PDF 渲染庫可以得到每一頁的 viewport 數(shù)據(jù)知道當前頁的原始尺寸、縮放比例這樣畫板上的一個點可以精確映射回 PDF 的坐標點。// 以頁面原始寬度為基準構造當前頁 viewport const baseViewport page.getViewport({ scale: 1 }); const availableWidth container.clientWidth; const scale availableWidth / baseViewport.width; const viewport page.getViewport({ scale }); const renderTask page.render({ canvasContext: pdfCanvasContext, viewport }); renderTask.promise.then(() { // 渲染完成后再啟用畫板避免用戶畫在空白頁上 board.enable(); });邏輯說明先拿 scale1 的原始 viewport 計算網(wǎng)頁容器寬度下的縮放比再用這個縮放比生成正式 viewport最后調(diào)用render。renderTask.promise是渲染完成的回調(diào)入口畫板必須等 PDF 頁真正畫出來后再允許落筆否則第一筆會落在白底上。參數(shù)說明baseViewport.width是 PDF 頁在縮放比例為 1 時的寬度單位是 PDF 點。availableWidth是頁面容器去掉左右 padding 后的實際寬度。這里用“寬度自適應”而不是固定縮放是為了讓 PDF 鋪滿不同寬度的手機屏防止窄屏上出現(xiàn)橫向滾動條。2.3 畫板層一個透明 canvas 如何蓋在 PDF 上畫板層不是新造一個頁面而是用 CSS 把一個透明 canvas 絕對定位在 PDF canvas 上方。兩層結構如下div idpdfContainer classpdf-container canvas classpdf-layer idpdfCan/canvas canvas classboard-layer idboardCan/canvas /div.pdf-container { position: relative; width: 100%; overflow: hidden; } .pdf-layer, .board-layer { position: absolute; inset: 0; width: 100%; height: 100%; } .board-layer { touch-action: none; /* 禁止瀏覽器處理這套手勢 */ z-index: 2; }邏輯說明pdf-layer負責顯示 PDF 頁面board-layer覆蓋在它上面透明背景只顯示用戶新畫的筆跡。touch-action: none很關鍵它告訴瀏覽器這塊區(qū)域的手勢不要滾動頁面、不要縮放頁面統(tǒng)統(tǒng)交給 JS 處理否則在手機上畫橫線會被系統(tǒng)識別成滾動操作。參數(shù)說明inset: 0是讓畫板層和 PDF 層嚴格貼合任何一層的 border、padding 都會導致坐標計算起步就錯。z-index不是越高越好畫板層只需要比 PDF 層高一級太高了反而遮擋其他彈層組件。資源里把兩個 canvas 的寬高都用 CSS 設置為 100%但 canvas 內(nèi)部的像素寬高并沒有寫死這是給 dpr 適配預留的空間后面第三章會細講。3. 移動端適配觸摸事件、dpr 縮放與滾動沖突畫板在 PC 端 mouse 事件能跑通一到手機就露餡。這章講三個最常見又最容易忽略的移動端適配點。3.1 pointer events 替代 mouse 事件資源里的畫板用的是 Pointer Events而不是分開監(jiān)聽 touch 和 mouse。原因很簡單現(xiàn)在的觸控筆、手指、鼠標都能統(tǒng)一觸發(fā) pointer 事件不用再寫一套“如果支持 touch 就怎樣否則就怎樣”的分支代碼。const board document.getElementById(boardCan); const ctx board.getContext(2d); let isDrawing false; let lastPoint null; board.addEventListener(pointerdown, (e) { isDrawing true; lastPoint getPos(e); board.setPointerCapture(e.pointerId); }); board.addEventListener(pointermove, (e) { if (!isDrawing) return; const cur getPos(e); ctx.beginPath(); ctx.moveTo(lastPoint.x, lastPoint.y); ctx.lineTo(cur.x, cur.y); ctx.stroke(); lastPoint cur; }); board.addEventListener(pointerup, (e) { isDrawing false; board.releasePointerCapture(e.pointerId); });邏輯說明pointerdown觸發(fā)時用setPointerCapture鎖定指針防止手指畫出畫板范圍后事件丟失pointermove里不斷從上一個點連線到當前點pointerup結束本次筆畫。這里沒有用mousedown/mousemove/mouseup因為觸摸屏上 mouse 事件是模擬出來的會帶來幾十毫秒延遲畫出來的線不跟手。參數(shù)說明e.pointerId表示當前觸點編號。在單指批注場景我們只取第一個觸點的坐標如果后續(xù)要支持雙指同時書寫就需要用 pointerId 區(qū)分筆畫本資源默認不做多筆并發(fā)。getPos的實現(xiàn)在后面 3.2 節(jié)會一起說這里先記住它返回的是相對畫板左上角的 CSS 坐標值不含 dpr 放大。3.2 dpr 不等于 1 時畫布尺寸怎么取舍iPhone 的物理像素寬度經(jīng)常是 CSS 寬度的兩倍或三倍如果 canvas 的寬高直接用 CSS 尺寸出來的線條會糊。原因是 canvas 的繪圖緩沖區(qū)比屏幕物理像素小瀏覽器把它拉伸上去就虛了。解決辦法是讓 canvas 內(nèi)部像素尺寸乘上 dpr。function setupCanvas(canvas) { const dpr window.devicePixelRatio || 1; const rect canvas.getBoundingClientRect(); canvas.width rect.width * dpr; canvas.height rect.height * dpr; const ctx canvas.getContext(2d); ctx.setTransform(dpr, 0, 0, dpr, 0, 0); return ctx; }邏輯說明canvas.width rect.width * dpr設置的是繪圖緩沖區(qū)大小getBoundingClientRect拿到的是實際排版后的 CSS 尺寸。ctx.setTransform(dpr, 0, 0, dpr, 0, 0)讓后續(xù)所有繪圖坐標都按 CSS 坐標計算繪制系統(tǒng)自動映射到物理像素。參數(shù)說明這里千萬不能用window.innerWidth計算畫布寬度因為畫板容器可能不是全屏可能底部有工具欄、頂部有標題欄。改成getBoundingClientRect后任何布局變化都能即時反映。另一個容易忽略的點是在dpr為 3 的高端機型上整頁 canvas 的像素總量可能達到 3000x6000這對 WebGL 或 canvas 合成都有壓力后面第四章會專門講內(nèi)存問題。3.3 畫板與頁面滾動的互斥處理移動端 PDF 往往超過一屏頁面需要上下滾動。當手指落在畫板層上時畫板要求“這一筆完全由 JS 接管不要滾動”當手指落在 PDF 頁面的空白區(qū)域或工具欄時頁面該滾還得滾。實現(xiàn)上用 CSStouch-action控制畫板區(qū)域并在事件里判斷是否繼續(xù)傳播。const isOnBoard (e) { const boardRect board.getBoundingClientRect(); return e.clientX boardRect.left e.clientX boardRect.right e.clientY boardRect.top e.clientY boardRect.bottom; }; board.addEventListener(pointerdown, (e) { if (!isOnBoard(e)) return; e.preventDefault(); isDrawing true; // 阻止頁面滾動邏輯由 touch-action 控制這里不用手動調(diào) stopPropagation });這里preventDefault()與touch-action: none是雙保險。但注意preventDefault放在pointerdown里只是避免后續(xù)行為真正避免滾動還是要靠touch-action。如果你用pointermove里preventDefault部分 iOS 版本會報 Illegal invocation正確做法是在 CSS 層就聲明這個區(qū)域不可滾動。還有一點是長按選擇。移動端瀏覽器長按 canvas 會觸發(fā)圖片保存菜單或文本選擇干擾批注體驗。資源里給.board-layer加了全局樣式-webkit-user-select: none; user-select: none; -webkit-touch-callout: none;這些樣式在 Android 和 iOS 上都能有效減少誤觸但 Android WebView 的某些版本仍可能彈菜單必要時要在contextmenu事件里preventDefault()。4. 避坑批注偏移、白屏、內(nèi)存暴漲的排查筆記這章寫的是我反復翻車后整理出來的排查筆記每個現(xiàn)象都按“現(xiàn)象 → 原因 → 解決”展開。如果你在復現(xiàn)資源時遇到問題優(yōu)先對照這里。4.1 現(xiàn)象寫出來的筆跡和手指差一大截現(xiàn)象在手機上用手指畫線筆跡明顯偏到右下角位置還隨滾動變化。原因多半是 canvas 的 CSS 尺寸與內(nèi)部像素尺寸不一致時坐標計算直接用了canvas.width做比例換算。比如畫布內(nèi)部寬度是 750CSS 寬度只有 375代碼里卻把offsetX/clientX直接當 canvas 坐標用畫出來的位置自然翻倍。解決在繪制前先做一次坐標換算把鼠標或指針的屏幕坐標轉換成畫板坐標系中的 CSS 坐標再交給繪圖 API。function getPos(e) { const rect board.getBoundingClientRect(); return { x: e.clientX - rect.left, y: e.clientY - rect.top }; }這里返回的是未乘 dpr 的 CSS 坐標配合 3.2 節(jié)的ctx.setTransform(dpr,0,0,dpr,0,0)使用。只要這兩處統(tǒng)一批注層就不會偏移。另一個常見錯誤是忽略按鈕和導航欄占位導致rect.top算錯所以監(jiān)聽事件時要綁定在畫板自身而非整個 document然后用getBoundingClientRect實時取值別緩存一個靜態(tài) rect 用到翻頁后。4.2 現(xiàn)象PDF 頁面白屏只出邊框不出內(nèi)容現(xiàn)象PDF 容器有陰影邊框但里面空白的控制臺沒有報錯。原因通常是 PDF Worker 加載失敗。pdf.js 的解析運行在 Worker 線程里如果資源的 worker 路徑配置不對主線程會靜默失敗渲染層拿不到頁面數(shù)據(jù)。解決檢查 worker 路徑是否指向正確的本地文件并在初始化后打印加載狀態(tài)。pdfjsLib.GlobalWorkerOptions.workerSrc ./static/pdf.worker.min.js; pdfjsLib.getDocument(pdfUrl).promise.then((doc) { console.log(document loaded, pages:, doc.numPages); }).catch((err) { console.error(load failed, err); });注意getDocument的參數(shù)如果是跨域地址服務端必須配置跨域響應頭Access-Control-Allow-Origin否則 Worker 拿不到數(shù)據(jù)。另一個白屏來源是未設置pdfRender.js里的canvasContext類型部分版本需要{ canvasContext: ctx }而非{ context: ctx }寫錯不會立刻報錯渲染結果卻是空白排查時優(yōu)先看網(wǎng)絡請求里.worker文件是否 200。4.3 現(xiàn)象翻頁幾十次后頁面卡頓明顯現(xiàn)象PDF 一共 100 頁來回翻頁 30 次后滑動開始掉幀內(nèi)存占用翻倍。原因是每一頁渲染都新建了renderTask翻頁時沒有銷毀上一次任務甚至每次翻頁都在同一個 canvas 上反復繪制但未清除畫布導致 GPU 緩沖和 JS 對象越積越多。解決渲染下一頁前先取消正在進行的渲染任務并清理畫布。if (currentRenderTask) { currentRenderTask.cancel(); currentRenderTask null; } pdfCtx.clearRect(0, 0, pdfCanvasEl.width, pdfCanvasEl.height); currentRenderTask page.render({ canvasContext: pdfCtx, viewport });renderTask.cancel()會拋出一個 AbortException所以調(diào)用處最好用.catch判斷一下避免異常被當成錯誤上報。另外不要為了省事把整本 PDF 的所有頁都渲染成 canvas 再切換顯示移動端 canvas 數(shù)量一多WebView 的位圖緩存會先被擊穿。資源里的方案是只渲染當前頁翻頁時銷毀上一頁最多保留上一頁做過渡動畫。4.4 現(xiàn)象viewport 縮放后出現(xiàn)模糊或毛邊現(xiàn)象PDF 放大 200% 后批注線條看起來比 PDF 頁面文字更模糊有的線段邊緣出現(xiàn)明顯鋸齒。原因是放大后 PDF 渲染庫會重新生成高分辨率 viewport但畫板層內(nèi)部像素尺寸沒有跟著更新導致批注層仍然用低分辨率緩沖區(qū)繪制。解決在縮放操作結束后重設畫板的寬高和 transform。function resizeBoardToPdf(pdfCanvas) { const rect pdfCanvas.getBoundingClientRect(); board.style.width rect.width px; board.style.height rect.height px; board.width rect.width * dpr; board.height rect.height * dpr; boardCtx.setTransform(dpr, 0, 0, dpr, 0, 0); }有一個細節(jié)canvas 重新設置width或height會清空內(nèi)容所以這步必須在畫板無筆跡時執(zhí)行或者在重設前先用getImageData保存一份離屏位圖重設后再putImageData復原。資源里用的是離屏 canvas 緩沖后面第六章會演示。5. 實戰(zhàn)批注坐標映射與 JSON 導出讓畫的東西可回放移動端畫板批注的真正門檻不是畫線而是“在不同頁面尺寸、不同縮放比例、不同設備上畫出來都能對得上原始 PDF”。這里的關鍵是永遠不要保存屏幕坐標保存 PDF 坐標。5.1 坐標轉換公式與代碼實現(xiàn)屏幕上的點(x, y)先換算成畫板 CSS 坐標再除以當前縮放比例得到 PDF 頁面坐標。反過來回放時把 PDF 坐標乘上當前 viewport 縮放比例即可。// 屏幕坐標 - PDF 坐標 function screenToPdf(screenX, screenY, rect, viewport) { const cssX screenX - rect.left; const cssY screenY - rect.top; return { x: cssX / viewport.scale, y: cssY / viewport.scale }; } // PDF 坐標 - 屏幕坐標 function pdfToScreen(pdfX, pdfY, rect, viewport) { return { x: pdfX * viewport.scale rect.left, y: pdfY * viewport.scale rect.top }; }邏輯說明viewport對象來自page.getViewport({ scale })viewport.scale就是頁面渲染時的縮放倍數(shù)。之所以用除法而不是pageWidth / rect.width是因為縮放后 PDF 的坐標和畫布 CSS 坐標是線性關系除法最簡單也最不依賴頁面布局。參數(shù)說明如果 PDF 頁面在容器內(nèi)做了水平居中還需要減去容器的scrollLeft和偏移量。資源里默認容器寬度等于容器本身所以不用額外減。但一旦你改成左右留白模式就必須把rect.left換成“PDF 實際顯示區(qū)域”的 left否則批注會整體向右偏。建議把這段函數(shù)寫在coordTransform.js里并加上單測因為后續(xù)所有功能都建立在它之上。5.2 批注數(shù)據(jù)結構設計一次畫線動作可以抽象成一條 stroke數(shù)據(jù)結構如下const stroke { id: stroke_20240320_1645, page: 3, type: pen, color: #ff5722, width: 3, points: [ { x: 128.34, y: 56.02 }, { x: 129.1, y: 58.5 }, { x: 130.2, y: 61.0 } ] };這里points存的是 PDF 坐標不是屏幕坐標。顏色和線寬也存原始值因為 PDF 頁面重新渲染時如果設備像素比不同線寬的視覺表現(xiàn)會變存儲原始值可以保證回放時一致。數(shù)據(jù)結構定好后導出就是一個JSON.stringify(strokes)。資源里提供了history.js內(nèi)部維護strokes數(shù)組和undoStack數(shù)組。每完成一筆就 push 一次每撤銷一次就把當前 stroke push 到undoStack并重新繪制剩余筆畫。注意撤銷不是簡單地strokes.pop()因為后續(xù)還有“重做”操作所以要保留被撤銷的數(shù)據(jù)。function addStroke(stroke) { strokes.push(stroke); undoStack.length 0; // 新筆畫會清空重做棧 redrawAll(); } function undo() { if (strokes.length 0) return; const removed strokes.pop(); undoStack.push(removed); redrawAll(); }5.3 重新打開文檔時恢復批注恢復批注的流程是先渲染 PDF 當前頁拿到 viewport再遍歷該頁的 stroke 列表把 PDF 坐標轉成屏幕坐標逐段繪制。這里要特別小心跨頁數(shù)據(jù)如果用戶在第 3 頁畫到一半手指拖到了第 2 頁現(xiàn)實中很少發(fā)生但非禁用畫板時可能會導致一條筆畫的前半段在第 3 頁、后半段在第 2 頁。解決方法是每次pointerup時按當前頁號拆開保存而不是存一個全局 stroke。async function restorePageAnnotations(pageNum, strokes, viewport) { const pageStrokes strokes.filter((s) s.page pageNum); boardCtx.clearRect(0, 0, board.width, board.height); for (const stroke of pageStrokes) { boardCtx.beginPath(); boardCtx.strokeStyle stroke.color; boardCtx.lineWidth stroke.width; stroke.points.forEach((pt, i) { const sp pdfToScreen(pt.x, pt.y, boardRect, viewport); if (i 0) { boardCtx.moveTo(sp.x, sp.y); } else { boardCtx.lineTo(sp.x, sp.y); } }); boardCtx.stroke(); } }這段代碼在恢復多頁批注時有一個隱藏問題clearRect用的是board.width這是 dpr 放大后的像素值而clearRect的坐標單位受setTransform影響。如果用 CSS 坐標寫就應該清rect.width * dpr。建議統(tǒng)一封裝一個clearBoard()函數(shù)內(nèi)部用ctx.save()、ctx.setTransform(1,0,0,1,0,0)、clearRect(0,0,canvas.width,canvas.height)、ctx.restore()避免不同縮放狀態(tài)下清屏不干凈的 bug。5.4 導出圖片把 PDF 和批注合成為一張海報圖有些業(yè)務場景要求把“PDF 頁面 用戶批注”導出成一張圖片用于審批留檔或轉發(fā)。最常見做法是把 PDF 渲染到一個大 canvas再把批注層數(shù)據(jù)按同樣的 viewport 畫上去最后用canvas.toDataURL()導出。const mergeCanvas document.createElement(canvas); mergeCanvas.width pdfCanvas.width; mergeCanvas.height pdfCanvas.height; const mergeCtx mergeCanvas.getContext(2d); mergeCtx.drawImage(pdfCanvas, 0, 0); restorePageAnnotationsToContext(mergeCtx, pageStrokes, viewport); const imageUrl mergeCanvas.toDataURL(image/png);這里要注意drawImage(pdfCanvas, 0, 0)會把當前 PDF canvas 完整復制過去所以先畫 PDF 再畫批注順序不能反。導出的圖片像素大小等于 pdfCanvas 的內(nèi)部像素大小也就是 dpr 放大后的尺寸在手機上看起來清晰直接放到電腦上也不糊。如果遇到圖片導出后黑屏十有八九是restorePageAnnotationsToContext里沒有傳 viewport導致批注坐標和 PDF 圖片坐標不一致。6. 進階用離屏 canvas 與歷史棧優(yōu)化批注的撤銷和重繪畫板在筆畫少時性能沒問題但批注多到一頁 50 條以上時每次撤銷都要從頭重畫所有筆畫肉眼可見地卡頓。我在這份資源上做了兩處優(yōu)化效果都很直接。第一處是離屏 canvas 緩沖。新建一個不掛在文檔上的 canvas每次pointerup時把當前畫板內(nèi)容完整復制到離屏 canvas下一次繪制新筆畫前先drawImage恢復離屏內(nèi)容再畫新筆跡。這樣重繪畫板時不需要遍歷所有歷史 stroke只要一次位圖畫布拷貝。const offscreen document.createElement(canvas); offscreen.width board.width; offscreen.height board.height; function snapshot() { offscreenCtx.clearRect(0, 0, offscreen.width, offscreen.height); offscreenCtx.drawImage(board, 0, 0); } function restore() { boardCtx.clearRect(0, 0, board.width, board.height); boardCtx.drawImage(offscreen, 0, 0); }第二處是歷史棧的“全量重繪改增量恢復”。撤銷一條筆畫時不必重新執(zhí)行整個strokes數(shù)組的繪制而是先從離屏快照里去掉當前最后一條筆畫。但 canvas 位圖不方便“擦除某條線”所以最穩(wěn)的方案是維護兩個離屏 canvas一個存筆畫前快照一個存筆畫后快照。撤銷時直接切回前一張快照重做時切回后一張。代價是每畫一條筆跡會多占一份 canvas 內(nèi)存但移動端一次批注一般不會超過百條內(nèi)存換流暢度值得。從那以后我每次接移動端畫板需求都會先問清楚三個問題批注數(shù)據(jù)要不要保存到后端、PDF 放大后批注要不要跟著放大、撤銷最多支持多少層。這三個答案決定我要不要做增量快照、要不要存 PDF 坐標、要不要限制歷史棧長度。資源里默認做的是完整快照棧你在實際復現(xiàn)時如果發(fā)現(xiàn)內(nèi)存吃緊可以把快照壓成webp的 dataURL 再存雖然編解碼有開銷但內(nèi)存占用能降低不少。希望這份拆解和踩坑記錄幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
精品无码久久久久久久久| 天天激情欧美美女| 开心五月婷婷婷美女| 思思热久热| 婷婷八月激情| 91日本在线观看| www.ywav| 日韩精品AV一区二区三区| 五月六月丁香婷婷在线观看| 99精品手机在线视频| 人人舔人人| 九九热在线观看6| 成人精品免费在线观看| 婷婷伊人久久| 亚洲综合视频在线| 综合大香蕉| 婷婷精品综合| 这里只有精彩视| 色五月婷婷五月丁香五月激情五月视频 | 丁香九月婷婷综合| 五月丁香六月色| 甈你aaaaa| 丁香五月天激情网址| 少妇综合网| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 日良久久| 欧美人妻一区二区| 婷婷激情图片| 夜夜操狠狠操| 精品久久穴| 婷婷五月综合激情| 亚洲va成人va成人va在线观看| www婷婷亚洲| 色五月天激情| 五月六月丁香激情视频| 97色视频网| 五月天久久久| 久久五月天婷婷| 粉嫩av懂色av蜜臀av熟妇| 久久人妻乱子伦| 五月婷婷狠狠干| 日本久久人| 九九九AAA热视频| 午夜不卡久久精品无码免费 | 婷婷狠狠干| 丁香婷婷六月激情综合| 婷婷久久视频| A A色色| 日本天天综合| 婷婷五月综合视频| 综合网五月| 久久精品亚洲一级牲爱综合| site:wpjngj.com| 99在线观看视频免费| 日日操天堂| 五月开心播播网| 国产精品成人AV在线观看春天| 婷婷五月视屏| 超碰免费成人| www久久久| 久久婷五月| 202丰满熟女妇大| 99色综合| 香蕉久久国产AV一区二区| 国产密乳av一区二区三区四区| 99精品这里只有免费视频| 婷婷97C| 91亚洲免费片| 这里有精品99| 亚洲热视频在线| 成人丁香五月天Av| 成人午夜无码视频| WWW久久99久久99久久| 另类在线| 激情AV中文| 成人短视频免费观看| 婷婷色情 | 婷婷五月丁香基| 大香蕉视频婷婷| av最新在线| 成人 视频免费观看网站| 五月天丁香啪啪网| 日韩婷婷五月| 思思热高清在线观看| 激情婷婷五月天网址| 91九色国产| 五月天激情在线视频| 六月丁香花婷婷| www.夜夜夜| 天天爽综合网| 国产精品99久久久久久久女警| 激情五月天丁香| 九月丁香婷婷综合激情| 九九亚洲综合| 婷婷六月五月天综合| 丁香五月中文字幕久色| 97热在线精品| 蒲京久久无码视频| 婷婷 激情 五月| 婷婷五月天视频亚洲| 思思久日精品视频| 日韩在线视频网站| 综合九色| 五月婷在线色视频| 九色婷婷| 亚洲思思热久| 久久五月激情综合| 中文字幕网站在线观看| 狠狠舔| 激情网婷婷婷| 777精品久无码人妻蜜桃| 日本精品人妻无码77777| www五月| 激情五月天婷婷丁香| 婷婷五月天丁香综合网| 婷婷五月AV| 婷婷五月天成人网站| 婷婷色狠狠| 婷婷综合视频| 丁香五月综合婷婷| 亚洲天堂爱爱| 中文精品在| 婷婷五月天熟妇| 婷婷五月情| 婷婷五月丁香综合桃花色网| 五月色婷婷在线观看| 五月综合婷婷开心网| 久噜久噜| 拍色综合| 五月叮香啪| 久久精品一区二区三区四区| 香蕉97碰碰碰超视精品| 色五月琪琪| 久久机热/这里只有精品| 婷婷五月色情| 99热在线观看精品| 激情五月天色网站| 亚洲视频a| 亚洲天堂啪啪| 99久久网站| 99热免费观看| 中文字幕在线免费观看视频| 丁香涩涩爱| 日本熟妇乱妇熟色A片蜜桃| 男人視頻站| 狠狠色狠狠色综合日日91 | 91精品久久久久久综合五月天| 亚洲情综合五月天| 五月丁香久久丝袜啪啪| 热久久这里只有精品| 男同91 | 五月大香蕉| 五月天婷婷免费| 日本五月天网站| EEUSS鲁片一区二区三区| 天堂在线伊久| 色噜噜狠狠色综合网| 国产av天天插天天操天天爽| 婷婷五月天激情综合| 婷婷五月丁香图片人人操| 99色综合网| 97涩婷婷婷婷基地| 丁香五月亚洲婷婷| ri电影在线| 激情图片五月天| 丁香六月婷婷综情欧美| 99热最新| 丁香五月婷婷基地| 国产真实乱对白精彩| 超碰网站在线观看| 天天日天天插| 情婷婷五月天| 九九99免费理论| 色色丁香| 五月天成人在线播放丁香| 亚洲精品99| 色色操| 97操操| 日韩六十路91性交电影| 亚洲精品久久久久久久久久吃药| 天天综合久久| 丁香九色不卡aaa| 丁香美女五月天婷婷| 男男野外做爰全过程69| 色情久久久| 亚洲色基地| 婷婷五月精品中文字幕| 98永久精品| 99视频在线精品免费观看2| 99久在线精品99re5热视频| 色色色色色热| 31色区视频免费看| 亚洲色五月婷婷| 五月丁花色综合网| 99ri精品| 婷综合六月| 99re在线视频精品,这里只有精品18,| 婷婷五月天综合久久日美女| 99热在线只有精品| 综合狠狠五月婷婷| 九九综合| 玖玖激情网| 婷婷久久五月天| 天天 青草 丝袜制服 在线| 男女啪啪做爰高潮无遮挡| 精品在线| www.99热视频| 婷婷娌伦网| 丰满少妇乱A片无码| 婷婷激情五月天在线视频| 二色av| 五月天五月天成人网亭亭成人色网站| 天天天天天天天干| 九九久久五月天综合伊人| 日本三级中文字幕| 美女五月狠狠| 日本操逼九九九九58日本操逼| 亚洲熟妇AV乱码在线观看| 婷婷六月丁香久| AⅤ网站在线看| 久久久久亚洲AV无码网影音先锋| 亚洲综合激| 91趴趴| 双性美人被调教到喷水A片| 久久综合热17c| 欧美超级视频97| 99久久九九视频| 婷婷久久五月丁香| 天堂久久婷婷| 伊人五月综合网| 婷婷深爱五月丁香网| 青青草99re| 无码99| 99碰碰视频| 午夜色丁香| 五月伊人视频在线看| 蜜乳久AV| 日日操夜夜擼| 五月丁香综合色婷婷| 婷婷五月草| 成人看片网站| 五月丁香在线视频观看| 中文在线成人| 日本人人干| 91亚洲免费片| www.99热在线| 色五月综合激情| 91日视频| 色人久久| 五月婷婷就去色| 久久这有这里精品| 思思色综合网站| 热久久成人| 久久五月网| xxxx久| 精品牛仔裤超碰| 婷婷久久内射| 亚洲区,视频区,视频区免费| 日本99色| 91Chinese在线| 97操在线视频| www.五月天婷婷.com| 99操不停| 91狠狠综合网| 五月丁香色婷婷伊人| www.久操| 婷婷色情网| 久久性视频| 六月丁香婷婷五月天| 99久久综合狠狠综合久久| 五月婷精品| 久久五月天视频| 99re在线精品视频| 久热这里| 婷婷第一页| 六月婷婷av| 狠狠色丁香五月婷巨| 一二区成人电影| 国産精品| 日日射天天射| 婷婷97碰碰| 97色色色| 九色PORNY在线精品酒店| 成人美女网| a免费在线| 久久日韩婷婷五月| 综合激情网五月激情| 9久国产精品| 人人干人人干骚美女| 色噜噜狠狠色综合成人网| 亚洲一二三网| 夜夜人妻五月天| 另类综合国产| 日本人妻A片成人免费看片| 五月天激情小说| 涩五月婷婷| 国产精品久久久久久久久久 | 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 日日射天天射| 五月婷婷久久综合| 五月天激情黄色网址| 图片区 小说区 区 亚洲五月 | 婷婷综合影院| 五月丁香婷婷激情| 99爱爱| 夜夜操夜夜操| 久久天堂加勒比| 欧美日韩成人在线| 天天草天天爽| 婷婷五月天免费99| 久久久思思热| 婷婷五月综合体验看| 婷婷六月天激情| 超碰91在线| 激情五月天婷婷色色色色色色色色色色色| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 婷婷六月丁香五月| 《久久综合九色综合97婷婷| 婷婷亚洲综合| 色播五月天激情| 天天天天干| 91婷婷色| 激情五月天开心| 国产精品色情AAAAA片软件| 久草婷婷网| 色婷网| 开心色五月天久久久久久久| 色婷婷综合久久久久| 丁香婷婷久久 | 五月天婷婷久久| 日本二级毛片二级毛片| www.久久久久久久久久久| 婷婷的色色五月天| 亚洲婷婷月丁香五月| 天天做天天要天天爽| 丁香六月天婷婷开心综合| 久久性爱视频这里只有精品 | 丁香五月-激情综合| 琪琪狠狠干| 六月丁香啪啪| 五月天精品视频| 人人操 色| 99性感视频| 五月婷婷六月天| 丁香97综合| 中文字幕 久久9999| 99热综合在线观看| 激情纯色婷婷五月天在线不卡视频| WWW.桔色成人.COM| 伊人久久婷婷五月综合97色| 中文精品在| 色五月婷婷九月| 五月婷婷玖玖综合玖玖爱| 91色吧网| 99自拍网| 精品婷婷五| 日本色道视频网站| 丁香婷婷综合精品六月初| 另类图片婷婷五月天| 亚洲成人网在线观看| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 在线天堂9| 激情五月天开心| 日韩一级网站| 日本精品99网站| 另类精品视频在线观看| 国产精品日韩十五区| 色五月激情婷婷| 久久婷婷五月综合| 国产AV一区二区三区最新精品| 激情五月婷婷啪啪| 99久在线精品| 九九热免费观看视频| 天天操综合网| 婷婷色综合| 五月丁香黄色视频| 婷婷丁香五月六月激情| 99视频内射三四| 99热乎| 国产精品第一国产精品| 欧美激情五月天婷婷| 五月性色| 99在线观看视频免费| 久久综合五月天| 91成人视频| 少妇激情五月天| 99日本黄站| 99人人干| 97热这里只有精品| 99在线观看视频免费| 干一干xxxx| 亚洲色精彩| 不卡在线中文字幕无| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 国产1区2区3区| 日韩视频99| 热热久久精品视频| 97伊人综合婷婷| 97人人射| 亚洲aV写真天天综合网久久| 婷婷日本在线| 欧美激情综合色综合啪啪五月| 99riAV国产精品视频| 五月丁香五月综合欧美| av成人在线播放| 综合激情五月丁香| 五月丁香淫淫婷婷婷| 人妻激情久久| 色五月激情| 不卡影院午夜理论片| 亚洲亚洲人成综合网络| 狠狠艹狠狠艹| 五月婷婷婷| 婷婷导航| 狠狠色噜噜狠狠狠狠综合| 丁香九月综合激情| 五月综合777| 在线超碰91| 免费看欧美成人A片无码 | 日产精品一线二线三线芒果| 五月亭亭综合五码| 六月激情婷婷色| 亚洲爱婷婷| 99精品视频在线观看| 激情婷婷五月天伊人在线观看| 久久色天堂| 99久久er| 思思热99er在线视频| 中文字幕无码人妻少妇免费视频| 可以免费看的av网站| Www.se.久久| 亚洲AV成人在线| 激情五月天视频| 精品无码人妻一区| 做爱夜夜干天天操| 91超级碰| 超碰人人射| 亚洲国产网站| 色婷婷av综合网| 噼里啪啦在线观看免费完整版视频| 欧美婷| 五月婷婷干干干| www:99热视频| 亚洲四色五月| www久久久久久| 丁香五月激情图片婷婷| 久久久久久久97| 色五月 五月婷婷| 九九精品视频在线观看| 精品思思久久| 色久播播| 婷婷色色综合激情| 先锋资源996| 婷婷久久婷婷色五月| 99热10在线高清播放| 国产亚洲精品久久一区二区三区| 亚洲成色综合网站免费观看| 色婷婷综合在线| 日本三级99人妇网站| 亚洲99综合| XX久久| 超碰二区| 丁香六月情| 激情五月婷婷网| 五月丁香777| 色五月激情五月天| 婷婷六月色| 天天综合色| 国产亚洲精品AAAAAAA片| 丁香五月婷婷在线| 九九热啪啪| 玖玖婷婷综合| 五月婷婷六月天| 九九热精品| 大香蕉久久| 538在线精品| 青柠影视免费高清电视剧| 色五月人妻| 91九色国产熟女| 成人婷99最新| 粉嫩AV久久一区二区三区| 97色在线观看视频| 99精品在线| 午夜69成人做爰视频| 九九热AV| 日韩无码AV电影网站| 五月天色丁香| 婷婷五月花| 婷婷亚洲在线| 人人妻人人澡| 婷婷六月网| 五月丁香六月婷婷手机无线| 99热日本| 超碰在线超碰| 精品一二三区久久AAA片| 伊人久久大香线蕉av最新| 十月丁香九月婷婷综合| 丁香五月婷在线观看| 婷婷五月天亚洲色| 99热97| 老司机日日夜夜青草| 五月丁香激情婷婷| 97色色色色色| 色爱爱综合网| 婷婷五月成年人| 99热色在线精品| 婷婷综合亚洲| 大香伊人久色| www.色五月| 五月丁香六月婷婷亚洲| 五月婷婷深爱六月| 91超级碰在线视频| 在线视频婷婷| 婷婷五月天影院| 色欲五月婷婷| 五月天婷婷综合网| 秋霞日本免费毛片A片| 69精品无码一区二区三区| 性爱技巧五月| 人妻久热| 开心激情网五月| 99爱在线免费视频| 丁香五月婷婷Av| 五月熟妇婷婷久久| 五月婷婷欧美| 久久五月婷婷视频| 日日肏天天操| 99ri在线视频| 五月丁香av中文| www.狠狠干com| 九九久久综合| 91久久免费| 狠狠狠狠狠狠草| 日本婷久久| 91精选国| 操逼123网| 丁香色婷婷五月天| 丁香五月综合激情啪啪| 丁香六月婷婷一区| 色综合色色| 超碰A V在线| 久久机热这里只有 | 人妻熟妇六区| 亚洲综合五月天婷婷丁香| 久久人妻少妇嫩草AV| 欲求不满的人妻| 激情六月五月婷婷综合网| 欧美色色色| 五月婷婷,六月丁香| 久久婷婷影院| 九九九九九九毛片| 精品久久66| 99ri视频在线观看| 这里只有免费的精品| 99热12| 久久五月激情综合| 日本乱论99| 色综合久久五月天| 99啪在线视频| 无码色色色| 韩国97天堂| 婷婷五月噜噜| 午夜丁香久久久久久| 99ri久久| 99啪啪| 五月丁香六月婷综合成人综合| 中文字幕日韩无码制服诱或| av久热| 激情AV在线| 久久99综合网| 99热最新网址| 色色综合网站| 婷婷基地五月色| 久久在线视频免费观看| 久久综合激情| 色色五月丁香| 色欲日日躁| 精品国产乱码久久久久久免费| 日本天堂免费99| 九九无码| 婷婷五月天在线看| 亚洲国产精品VA在线看黑人| 97碰碰视频在线观看| 六月丁香激情综合| 狠狠 久久| 99色色| 久久婷婷啪啪视频| 五月丁香| 丁香五月综合在线视频| 影音先锋91在线资源站| 六月亚洲婷婷6月中文字幕| www婷婷| 曰曰久久| 国产黄色在线观看| 天天天天干| 久久五月综合| 日本综合九九| 伊人激情啪啪| 久久这里都是精品视频| 丁香五月综合| 欧美日本va| 精品久久9| 女人高潮内射99精品| 色婷婷99| 天堂美国久久| 超碰人人操在线| 婷婷五月天成人动漫| 五月丁香色色网| 欧美五月丁香在线观看| 国产午夜精品AV一区二区麻豆| 天天日天天舔天天摸| 九九综合| 久99久热只有精品国产99| 日日影院 | 色五月色五天免费视频| 婷婷色色丁香| 开心激情站| 色五月天综合网| 人人干人人干骚美女| av色色国产| 久狠日av| 99久久婷婷国产综合精品草原| 67194成I人在线观看线路1| 色九亚洲| 九九99偷拍视频| 激情五月丁香五月| 婷婷六月丁香五月| 五月婷婷色播视频| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 国产成人AV在线播放| 婷婷激情六月综合| 青青草原99热| 久er7久热| 99re在线视频| 亚洲av成人一区二区电影在线| 午夜电影网VA内射| 亚洲综合另类| 婷婷情色五月| 桃色成人网| 玖玖资源在线视频| 91激情五月开心| 五月色俺婷婷| 亚洲婷婷五月草久| 久操操| 色色色97| 婷婷色五月天色色| 97色精品视频 | 免费视频WWW在线观看网站| 色婷婷丁香五月丁香| 9视频在线成人网站| 五月丁香人妻| 开心五月婷婷在线| 久久婷婷丁香五月一二三| 涩涩五月天| 日本精品99网站| 99久久这里只有精品| 激情婷婷五月天| www.色婷婷.com| 99热999| 色婷婷av综合网| 国产亚洲精品久久久久久郑州| 欧美丁香婷婷五月天| 天天射综合网站| 色色色色色色色色色色色色色97| 国产亚洲精品久久久久久牛牛| 久久婷婷色五月| 九九视频热| 色狠狠六月| 五月天开心成人网| 婷婷五月天视频小说| 欧美天天搞| 超碰色人妾| 99久免费视频| 日熟女| 五月天狠狠色| av网址在线| 色五月婷婷久久| 日韩色色色色色| 天天色天天爽| 操逼福利视频| 26uuu欧美亚洲日韩| 亚洲av网站| 六月丁香激情综合网| 亚洲欧美日韩另类| 偷偷操99| 五月天激情综合网俺也去| 伊人激情网| 97碰碰视频| 色丁香久久| 深情六月婷婷综合久久| 日本九九九九| 9久久精品| 激情五月婷婷五月| 成人精品视频99在线观看免费| 综合激情在线视频| 天天色视频| 中文字幕无码人妻少妇免费视频 | VA色婷婷| 丁香婷婷激情五月| 99热这里只有精品最新| 精品综合久久久久久五月天| 色色色777| 婷婷五月天com| 丁香成人视频| 日日干天天爽| 婷五月天影院| 亚洲综合草草| 天天综合天天玩夜夜玩天天玩夜夜玩 | 思思热精品免费视频| 99热乎| 天天擼久久擼在线| 久热黄色| 激情婷婷丁香| 狠狠第四色| 天天摸天天爽| 91超级碰在线| 内射爽无广熟女亚洲| 婷婷午夜| 狠狠综合区| 色波激情五月天| 噜噜五月天综合| 中文AV网| 中文字幕不卡视频| 丁香五月天人体| 99热都是精品| 大地资源色婷婷视频在线| 亚洲成av人影院| 97婷婷狠狠久久综合9色| 99热碰碰| 激情五月色综合国产精品| 综合六月激情婷婷| 久久538| 五月色激情综合网| 亚洲五月天天| 久久98| 人妻六月天| 热久久思思热思思| 久久 婷婷 五月天| 一区=区操屄高清大全av| 国产性爱色| 丁香婷五月天| 色综合色色色| 九色 在线| 久热精品视频| 校花娇喘呻吟校长陈若雪视频| 久久久精品婷婷五月天| 五月婷婷六月综合| 思思热再线视频| 淫视馆aV二区一区| 色五月婷婷影院| 天天日夜夜帕| 欧美日韩二区在线| 秋霞黄色一级久久| 五月婷婷黄色| 色涩视频久久| 99热这里只有精品13| 久久丁香五月天| 99久| 五月天激情婷婷丁香| 成功精品影院| 九九综合图片网| 婷婷干五月综合在线播放| 五月婷婷六月丁香玖玖玫瑰91| 激情六月婷婷| 久久久精品99| 五月婷婷丁香俺日污视频| 五月婷在线观看| 国产成人AV在线播放| 五月婷婷久久综合| 99热99在线| 激情丁香五月婷| 大香蕉综合| 狠狠色婷婷在线| 色五月五月婷婷| 天天情天天狠天天透| 午夜激情五月| 五月丁香六月激情| 婷婷爱综合| 天天干天天插| 五月丁香天堂网婷婷| www.91.com黄| 欧美日韩999| 婷婷狠狠操| 色综合色综合婷婷热| 婷婷五月天综合在线| 亚洲亚洲人成综合网络| 丁香婷色| 久久这里有精品| 丁香五月色色色色| 做爰丰满少妇1313| www五月天激情com| 婷婷WWW久久| 婷婷久久色| 99热线观看9| 五月婷精品| 久久这里只有国产| 日本啪啪视频HD| 深爱1激情网| 97香蕉人人在线观看| 婷婷五月天亚洲天堂| 综合久久99| 欧美日韓成人亚洲精品另类| 深爱激情五月婷婷| 婷婷的激情五月| 激情九月婷婷九月| 婷婷五月天激情网| 欧亚洲在线高清视频| 婷婷激情人妻| 黄色99视频| 超碰婷婷色| 综合网激情| 激情五月婷婷丁香六月| 婷婷情色五月天| 婷婷四月 成人 狠狠干| WWW,五月| 亚洲国产精品成人va在线观看| 五月丁香成人网| 久久性爱视频这里只有精品| 久久久久久久久月丁| 日日婷婷不卡| 91视频人人做97| 久久久这里有精品| 思思热国产| www.五月婷婷久久.com| 五月丁香激情婷婷| 9999热精品在线免费播放| 天天插天天插| 日本色色色| 久久网站免费亚洲| 伊人超碰在线| 五月丁香综合网| 婷婷五月天六点丁香五月| 一区=区操屄高清大全av| 淫荡工a| 亚洲色综合| 五月天婷婷激情六月久久| 五月婷婷六月开心| www。狠狠干。com| 99视频91| 怎么样可以看免费的一级av| 精品久久久久久久人妻| 久久性都花花世界成人免费视频| 婷婷五月激情在线视频| 青青操丝袜美腿| 97碰碰碰免费公开在线视频| 人妻操在线看| 色五月大香蕉| 丁香五月婷婷www..com| 五月天激情小说| 99免费成人网| 色你久久| 另类国产欧美视频| 国产精自产拍久久久久久蜜 | 久久五月天黄色五月天色网址| 120分钟婬片免费看| 先锋资源 996| AV伊人青草丁香六月| 精品久久久久成人码免费动漫| 免费观看的AV| 99色啊| 色噜噜狠狠色综合网| 激情五月丁香五月| 在线观看的av| 五月婷婷丁香五月| 国产午夜精品久久久观看| 欧美久久网| 婷婷六月久久| 中文字幕丰满乱孑伦无码专区| 久久激情五月| AV五月丁香| 18av天堂| 思思热这里只有精品视频666| 少妇真实被内射视频三四区| 99re8这里只有精品99re8热视频| 天天搡日日搡aaaaⅩ| 99精品久久| 久久婷婷五月综合| 婷婷色色网| 大香蕉婷婷丁香天堂AV| 四虎婷婷五月天| 亚洲色婷婷婷婷人人爽| www91久久| 九一牛视频探花| 97婷婷五月| 日韩一级淫乱片一区二区三区| 天天操无码| 久久丁香五月| 色婷婷免费观看| 综合99久久| 色色色国产| 99精品视频偷拍| 99热在线精品观看| 99久久99九九九99九他书对| 伊人狠狠操| 99热的无码| 日本操逼九九九九58日本操逼| 色色色999| 91九色精品熟女内射| 东北熟女视频99| 中文字幕天天干| 97碰成超视频免费视频| 色伊人91在线视频| 色www99| 东京热人妻一区二区三区在线| 综合激情五月丁香| 久久精品一区二区三区四区| 久久久91| 综合婷婷| 成人在线观看国产| 四季日韩AV无码综合| 嫩BBB搡BBBB榛BBBB| 五月婷婷色影院| 色情五月综合婷婷| 丁香六月婷婷久久综合| 亚洲色五月| 婷婷五月天影院| 丁香婷婷五月色综合| 婷婷五月天色色| BBWCUCKOLD精品熟妇| 色综合久久久久| 婷婷丁香六月天| yw国产AV| 大香蕉五月天婷婷丁香91| 九九久久污| 99久久婷| 五月婷婷m| 九九热视频这里只有精品| 人妻VideOssS人妻高清| 情五月亚洲婷婷| 天天橾夜夜爽| 综激情网| 免费看成人AA片无码视频吃奶| 99爱视频在线观看这里只有精品| 99九九精品视频| 九一99| 亚洲天堂99| 成人无码髙潮喷水A片| 99久热| 五月色婷丁香| 婷婷大香蕉| 少妇人妻凹凸视频| 99福利导航| 人妻日日日| 色五月天丁香婷婷| 色婷婷国色天香综合| 六月丁香射婷婷欧美色图片| 色情五月丁香婷婷网| 激情丁香婷婷六月天| 99热99成人| av中文网站| 色狠狠综合| 无码动漫AV| 激情婷婷人妻| 天天干天天干天天干| 色色色婷| 区欧美日韩成人| 天天狠狠婷婷在线| 99久热这里只有精品| 婷婷五月天激情小说| 久久爱婷婷| 99热超碰| 黄色99热| 99性爱无码| 大香蕉啪啪啪| 久久婷婷五月综合一| 婷婷五月丁香花综合| 久热黄色| 日日夜夜婷婷| 国产毛片精品一区二区色欲黄A片| 丁香婷婷五月份| 色播五月丁香| 夜夜撸日日操| 久久精彩视频18| 丁香六月婷婷缴情欧美| 热99re| www狠狠| 激情四射网| 精品久久久人妻| 国产精品久久久久久久久久免费| 五月天色色色网| 五月青青草综合| 99re8这里只有精品99re8热视频| 爱久久小说下载网| 五月天激情综合在线| 激情五月天婷婷视频| 丁香五月欧美午夜视频| 久久a热| www.91操| 色婷婷成人网| 久久人人九| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 激情四射婷婷色色色| 思思色播| 玖玖在线视频| 91玖玖| 六月婷婷综合激情| 亚洲AV无码成人精品区电影网| 大香蕉手机视频| 超碰免费99| 亚洲综合草草| 9l视频自拍9l九色9l成人| 桃色成人网| 丁香六月天AV| 五月综合久久| 激情五月婷婷欧美极品 | 99热资源在线| 亚洲午夜一区二区| 婷婷五月天av| 九九色播五月丁香| 激情亭亭五月| 婷婷五月激情的图片| 涩涩网五月天| 操操综合网婷婷| 丁香五月天激情网| 人妻Av在线| 国产色色视频| 在线观看996精品| 婷婷综合视频| 丁香婷婷性爱| 五月丁香六月激情| 91免费在线视频6| 日本少妇裸体做爰高潮片 | 九九婷婷网五月天| 欧美激情中文字幕| 五月婷婷色影院| 五月丁香久人妻中文| 播五月开心婷婷欧美综合| AV成人在线网站| 婷婷丁香在线播放| 青青草原伊人网| 色婷婷婷婷| 激情五月天噢美| 丰满少妇猛烈A片免费看观看| 99在线精品观看99| 五月丁香影院| 五月婷婷激清网| 色色五月丁香婷婷综合| 天天干天天爽天天操| 91九色网| 日韩十国产极品久久| 日本久久99| 黄色99视频| 96自拍视频九色在线观看| 五月天激情小说婷婷| 国产97色在线 | 日韩| 久久蜜臀婷婷| 91人人网| 天天色综合色色色色色。| 超碰99在线| 日韩色色色色色| 欧美性猛交99久久久久99按摩| 九九成人精品免费视频| 婷婷欧美| 婷婷六月丁香在线| 婷婷五月综合中文字幕| 久久精彩视频99| 婷婷五月天丁香成人社区| 丁香色综合| 九九aV| 欧美韩国日本| 五月丁香六月激情欧美综合| 激情婷婷22月间| 丁香六月激情四射| 久色中文| 97电影99热| 中文字幕在线日亚洲9| 丁香五月婷婷五月天在线| 五月丁香色婷婷| 激情综合丁| 亚洲成人av在线| 五月天久久婷婷| 日本熟女一区二区| 亚洲成人综合在线| 五月天婷婷无码| 91无码视频| 蜜臀嫩草| 好好干Av| 色五月婷婷激情基地| 夜夜撸日日操| 五月婷婷m| 色色五月婷| 碰久久精品w| 亚洲综合色婷婷| 天天干一干| www.色窝| 97碰碰视频在线观看| 97福利视频| 99热在线观看免费精品| 色婷婷婷婷| 婷婷基地成人五月天| 97色色视频| 99精品无码网站| 激情婷婷五月女| 久热中文字幕| 成人国产网| 在线观看国产高清视频免费网站 | 99极品视频| 狠狠色婷婷777| 婷婷五月天伦理| 色噜噜狠狠色综合日日| 激情综合亚洲| www激情| 五月综合视频| 丁香五月天啪啪激情综合网| 婷丁香五月天| 五月天丁香看婷婷| 大地9中文在线观看免费高清| 午夜电影网VA内射| 婷婷久久免费看| WWW·色色色·COM| 丁香五月成人自拍| 午夜微拍福利| 九九9久九9国产视频| 国产成人99久久亚洲综合精品| 日韩AV片| WWW.久久久久久久| 中文字幕不卡视频| 成人视频免费观看高清完整版在线观看| 视色综合| 丁香五月欧美| 五月天激情网站| 天堂草在线看www| 色色色国产| 狠狠色婷婷丁香六月| www.seqingwuyuetian| 亚欧州精品视频| 天天日天天爽夜夜爽| 婷婷激情五月天网站| 日本黄色精品| 思思热99er| 日本高清不卡免费一区二区三区| 99这里只有精品视频| 五月激情婷婷在线| 天天色综合综合| 人人草人人视| 综合五月婷婷| 成人丁香婷婷| 婷婷无码五月天| 182TV大香蕉| 色玖玖导航| 99热精品观看| 九热视频| 婷婷亚洲天堂| 五月亚洲| 99视频网址| 99自拍视频在线观看| 五月婷婷自拍| 99热无码| 五月婷婷丁香五月婷婷丁香| 五月永久激情| 91打屁股视频网站| 91人人爽狠狠狠| 99免费成人网| 五月丁香在线国产| 久久AV电影| 月婷婷婷婷五月| 天天操无码| 少妇性按摩无码中文A片| 欧美va| 色丁香影院| 五月天激情四射网站| www,五月天激情| 天天做天天爱综合| 色综合九九| 五月丁香狠狠爱婷婷综合| 影音先锋按摩| 日韩中文欧美| 97丁香花五月天激情小说| 九月激情网| 色综合xx| 婷婷综合色播网| 超碰人人超碰| 免费观看欧美成人AA片爱我多深| 青草五月天| 日韩成人免费电影| 色婷婷亚洲婷婷| 婷婷最新地址| 成人毛片在线免费观看| 国产九月婷婷| 超碰免费成人| 久久机热这里只有 | 丰满少妇乱A片无码| 亚洲爆乳无码精品AAA片蜜桃| 夜夜爱网站| 91|疯狂丨高潮丨对白| 少妇性按摩无码中文A片| 欧美成人AAA片一区国产精品| 91精品91久久久中77777| 婷婷久久久| 婷婷99狠| 婷婷综合色色| 丁香激情合作五月| 97色色色| 国产SUV精品一区二区6| 任你躁XXXXX麻豆精品| 国产又粗又大又爽又黄| 成人国产欧美大片一区| 男女啪啪做爰高潮无遮挡| 中文字幕按摩做爰| 日本99色| 五月激情偷拍婷婷| 欧洲综合视频| 色婷婷六月| 91日本在线观看| 色青青五月| 香蕉婷婷色五月| 熟女人妻一区二区三区免费看| 激情文学 综合 色| 九九草热在线观看| 色狠狠综合| 婷婷天堂伊人| 激情五月图| 天天综合网91| www.久久久久久久久久.com| Av免费网站在线| 国产Va视频| 久久九九网| 日本三级色| 色小说婷婷五月天天天| 91狠狠综合久久| 激情伊人五月天| 狠狠色综合网| 亚洲精品成人片在线播| 激情婷婷视频在线| 欧美成人无码一区二区三区| 激情五月色综合国产精品| 五月天婷婷综合免费| 四色99久久| 亚州第一A片| 国产精品婷婷午夜在线观看| 99色色| 成人 九九九九| 九九草热在线观看| 亚洲高清在线| 婷婷丁香97| 六月丁香婷婷综合狠狠爱夜夜爱| 丁香婷婷情色五月天| 六月激情婷婷| 噜噜干日本| 综合伊人久久| 国产av天天插天天操天天爽| 青青草五月天| 色色色色色网站| 免费色婷婷| 人人干AV| 乱岳熟女50岁| 这里只有精品热| 思思久久99热| 色婷婷啪啪啪啪啪啪| 色约约视频一区二区三区四区五区 | 五月综合色| www,99热在线观看| 热99这里只有精品视频| 九九精品自拍| 久久婷婷啪啪视频| 激情另类综合| 婷婷丁香成人五月天| 激情五月色综合国产精品| 婷婷色九月| 在线观看的av| 欧美色久| 97碰在线| 九九免费视频| 丁香五月婷婷五月天在线| 97精品自拍视频| 久久色9|