久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Canvas粒子系統(tǒng)實(shí)現(xiàn)動(dòng)態(tài)星空:前端動(dòng)畫原理與性能優(yōu)化實(shí)戰(zhàn)

Canvas粒子系統(tǒng)實(shí)現(xiàn)動(dòng)態(tài)星空:前端動(dòng)畫原理與性能優(yōu)化實(shí)戰(zhàn) 1. 項(xiàng)目概述用代碼繪制一片會(huì)呼吸的星空最近在整理一些前端小項(xiàng)目時(shí)又翻出了這個(gè)經(jīng)典的“動(dòng)態(tài)星空”效果。它不是什么復(fù)雜的3D引擎只用最基礎(chǔ)的HTML、CSS和JavaScript就能在瀏覽器里創(chuàng)造出一片深邃、閃爍、緩緩移動(dòng)的星空。這幾乎是每個(gè)前端開發(fā)者入門Canvas或?qū)W習(xí)動(dòng)畫原理時(shí)都會(huì)嘗試的“浪漫”項(xiàng)目。它看起來(lái)簡(jiǎn)單但背后涉及到的知識(shí)點(diǎn)卻非常扎實(shí)Canvas繪圖、隨機(jī)數(shù)生成、粒子系統(tǒng)、動(dòng)畫循環(huán)、性能優(yōu)化甚至一點(diǎn)點(diǎn)物理模擬。無(wú)論是用來(lái)裝飾個(gè)人博客的背景還是作為學(xué)習(xí)動(dòng)畫原理的絕佳案例這個(gè)項(xiàng)目都極具價(jià)值。今天我就來(lái)詳細(xì)拆解一下如何從零開始實(shí)現(xiàn)一個(gè)既美觀又流暢的動(dòng)態(tài)星空并分享一些我在實(shí)現(xiàn)過(guò)程中積累的、教科書上不會(huì)寫的實(shí)戰(zhàn)技巧和避坑心得。2. 核心思路與架構(gòu)設(shè)計(jì)2.1 粒子系統(tǒng)星空的本質(zhì)動(dòng)態(tài)星空的本質(zhì)就是一個(gè)簡(jiǎn)化版的粒子系統(tǒng)Particle System。我們把屏幕上的每一個(gè)星星看作一個(gè)獨(dú)立的“粒子”。每個(gè)粒子都有自己的一套屬性比如位置 (x, y)在Canvas畫布上的坐標(biāo)。速度 (vx, vy)決定星星移動(dòng)的方向和快慢。半徑 (radius)星星的大小。亮度/透明度 (alpha)用于實(shí)現(xiàn)星星的閃爍效果。顏色 (color)通常是白色或淡黃色但也可以加入一些藍(lán)色或紫色的星云色調(diào)。我們的核心任務(wù)就是初始化幾百上千個(gè)這樣的粒子然后在每一幀動(dòng)畫中更新每個(gè)粒子的屬性主要是位置和亮度并重新繪制它們。當(dāng)所有粒子協(xié)同運(yùn)動(dòng)時(shí)就形成了星空流動(dòng)和閃爍的視覺效果。2.2 技術(shù)選型為什么是Canvas實(shí)現(xiàn)這類動(dòng)態(tài)圖形主要有三種前端技術(shù)純CSS動(dòng)畫、SVG和Canvas。純CSS動(dòng)畫對(duì)于數(shù)量少、規(guī)律性強(qiáng)的動(dòng)畫比如幾個(gè)元素的平移、旋轉(zhuǎn)很高效但難以管理成百上千個(gè)獨(dú)立運(yùn)動(dòng)的元素性能開銷大控制粒度不夠細(xì)。SVG作為矢量圖形縮放不失真適合圖標(biāo)和交互式圖表。但同樣當(dāng)DOM節(jié)點(diǎn)每個(gè)SVG圖形都是一個(gè)DOM元素?cái)?shù)量激增時(shí)性能會(huì)急劇下降。HTML5 Canvas這是我們的最佳選擇。Canvas提供了一個(gè)位圖畫布我們通過(guò)JavaScript API直接在上面進(jìn)行像素級(jí)繪制。它的優(yōu)勢(shì)在于高性能所有繪制操作都由瀏覽器底層圖形API如OpenGL處理對(duì)于大量圖形的重繪效率極高。精細(xì)控制可以精確控制每個(gè)像素的顏色、位置和混合模式實(shí)現(xiàn)閃爍、拖尾、光暈等復(fù)雜效果。無(wú)DOM負(fù)擔(dān)無(wú)論繪制多少星星都不會(huì)增加DOM樹的節(jié)點(diǎn)數(shù)避免了重排和重繪的性能瓶頸。因此基于Canvas的粒子系統(tǒng)是實(shí)現(xiàn)動(dòng)態(tài)星空在性能和靈活性上的最優(yōu)解。2.3 整體架構(gòu)設(shè)計(jì)整個(gè)項(xiàng)目的代碼結(jié)構(gòu)非常清晰主要分為三個(gè)部分HTML結(jié)構(gòu)一個(gè)簡(jiǎn)單的canvas元素作為我們的“宇宙畫布”。CSS樣式讓Canvas畫布充滿整個(gè)瀏覽器視窗并設(shè)置一個(gè)深邃的深空背景色如#0a0a2a。JavaScript邏輯這是核心包含以下模塊初始化模塊獲取Canvas上下文設(shè)置畫布尺寸創(chuàng)建粒子數(shù)組并初始化所有星星粒子。粒子類/構(gòu)造函數(shù)定義星星的屬性和基礎(chǔ)方法如繪制自身、更新狀態(tài)。動(dòng)畫循環(huán)模塊使用requestAnimationFrame驅(qū)動(dòng)動(dòng)畫在每一幀中清空畫布、更新所有粒子、重繪所有粒子。交互模塊可選監(jiān)聽窗口大小變化resize事件以自適應(yīng)或監(jiān)聽鼠標(biāo)移動(dòng)實(shí)現(xiàn)星空隨鼠標(biāo)流動(dòng)的交互效果。這個(gè)架構(gòu)確保了邏輯的分離使得代碼易于閱讀、維護(hù)和擴(kuò)展。3. 核心代碼實(shí)現(xiàn)與逐行解析接下來(lái)我們進(jìn)入實(shí)戰(zhàn)環(huán)節(jié)。我會(huì)提供一個(gè)完整的、注釋詳細(xì)的代碼實(shí)現(xiàn)并解釋每一段關(guān)鍵代碼的意圖和原理。3.1 搭建基礎(chǔ)HTML與CSS結(jié)構(gòu)首先創(chuàng)建我們的畫布和基礎(chǔ)樣式。!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title動(dòng)態(tài)星空 | HTMLJS實(shí)現(xiàn)/title style /* 關(guān)鍵樣式去除默認(rèn)邊距讓畫布充滿全屏 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { overflow: hidden; /* 隱藏滾動(dòng)條營(yíng)造沉浸感 */ background-color: #0a0a2a; /* 深藍(lán)色背景模擬夜空底色 */ height: 100vh; /* 確保body高度為整個(gè)視口 */ display: flex; justify-content: center; align-items: center; } #starCanvas { display: block; /* 消除canvas底部的默認(rèn)間隙 */ /* width和height在JS中動(dòng)態(tài)設(shè)置這里可以留空或設(shè)一個(gè)默認(rèn)值 */ } /style /head body !-- 星空繪制的舞臺(tái) -- canvas idstarCanvas/canvas script srcstarfield.js/script !-- 引入核心JS邏輯 -- /body /html注意這里將CSS的background-color設(shè)置在body上而不是canvas上。因?yàn)镃anvas默認(rèn)是透明的這樣我們既能通過(guò)Canvas繪制星星又能透過(guò)Canvas看到背景色。另一種做法是每幀在Canvas上繪制一個(gè)巨大的矩形作為背景但那樣會(huì)多一次繪制調(diào)用。當(dāng)前做法更高效。3.2 JavaScript核心實(shí)現(xiàn) (starfield.js)這是整個(gè)項(xiàng)目的靈魂所在。我們將代碼分塊講解。3.2.1 初始化與全局變量// 獲取Canvas元素和2D繪圖上下文 const canvas document.getElementById(starCanvas); const ctx canvas.getContext(2d); // 星星粒子數(shù)組 let stars []; // 星星總數(shù)根據(jù)性能調(diào)整。1000-2000在普通電腦上通常很流暢。 const STAR_COUNT 800; // 動(dòng)畫幀ID用于取消動(dòng)畫循環(huán) let animationId null; // 初始化畫布尺寸 function initCanvasSize() { // 將畫布尺寸設(shè)置為窗口的內(nèi)部尺寸實(shí)現(xiàn)全屏 canvas.width window.innerWidth; canvas.height window.innerHeight; } // 立即執(zhí)行一次初始化 initCanvasSize();ctx這是我們?cè)贑anvas上作畫的“畫筆”所有繪制方法如fillRect,arc,fillStyle都通過(guò)它調(diào)用。stars用于存儲(chǔ)所有星星粒子對(duì)象的數(shù)組。initCanvasSize這個(gè)函數(shù)至關(guān)重要。Canvas的width和height屬性不是CSS的width和height決定了其繪圖表面drawing buffer的分辨率。如果只通過(guò)CSS縮放會(huì)導(dǎo)致繪制內(nèi)容模糊。因此我們必須讓繪圖表面的分辨率與Canvas元素顯示的實(shí)際像素尺寸一致。3.2.2 定義星星粒子類使用ES6的類語(yǔ)法來(lái)組織每個(gè)星星的屬性和行為代碼更清晰。class Star { constructor() { // 重置粒子到初始狀態(tài) this.reset(true); } // 重置星星屬性。參數(shù)init用于區(qū)分首次創(chuàng)建和飛出邊界后的重生。 reset(init false) { // 位置隨機(jī)分布在畫布上。如果是初始化y坐標(biāo)也隨機(jī)否則從頂部外重生。 this.x Math.random() * canvas.width; this.y init ? Math.random() * canvas.height : -10; // 速度x方向基本不動(dòng)或微動(dòng)y方向向下模擬星空緩慢下移或漂浮感。 // 乘以一個(gè)隨機(jī)因子讓速度有細(xì)微差別更自然。 this.vx (Math.random() - 0.5) * 0.2; this.vy Math.random() * 0.7 0.3; // 半徑隨機(jī)大小大部分是小星星偶爾有大星星 this.radius Math.random() * 1.2 0.3; // 顏色基礎(chǔ)是白色可以混合一點(diǎn)藍(lán)色或黃色 const colorVariation Math.random(); if (colorVariation 0.95) { this.color rgba(255, 220, 150, ; // 暖黃色 } else if (colorVariation 0.8) { this.color rgba(200, 220, 255, ; // 冷藍(lán)色 } else { this.color rgba(255, 255, 255, ; // 純白色 } // 閃爍相關(guān)屬性 this.alpha Math.random() * 0.5 0.5; // 初始透明度 0.5-1.0 this.flickerSpeed Math.random() * 0.05 0.02; // 閃爍速度 this.flickerDirection Math.random() 0.5 ? 1 : -1; // 閃爍方向增亮或變暗 this.flickerDelta 0; // 用于正弦波計(jì)算的增量 } // 更新星星狀態(tài)位置、透明度 update() { // 更新位置 this.x this.vx; this.y this.vy; // 邊界檢查如果星星移出畫布底部則重置它從頂部重新出現(xiàn) if (this.y canvas.height 10) { this.reset(); } // 可選左右邊界穿墻 if (this.x canvas.width 10) this.x -10; if (this.x -10) this.x canvas.width 10; // 更新閃爍效果使用正弦函數(shù)產(chǎn)生平滑的周期性閃爍 this.flickerDelta this.flickerSpeed; // 正弦值范圍[-1, 1]映射到透明度變化幅度 let flicker Math.sin(this.flickerDelta) * 0.3; // 計(jì)算當(dāng)前透明度并限制在合理范圍[0.2, 1.0] this.currentAlpha Math.max(0.2, Math.min(1.0, this.alpha flicker)); } // 在畫布上繪制星星 draw() { ctx.beginPath(); // 開始一條新的繪制路徑 // 繪制圓形星星。參數(shù)x, y, 半徑, 起始角, 結(jié)束角2π為一整圓 ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2); // 設(shè)置填充樣式使用計(jì)算出的當(dāng)前透明度 ctx.fillStyle this.color this.currentAlpha ); ctx.fill(); // 執(zhí)行填充 // 進(jìn)階為較大的星星添加光暈效果提升視覺質(zhì)感 if (this.radius 0.8) { // 創(chuàng)建一個(gè)徑向漸變作為光暈 const gradient ctx.createRadialGradient( this.x, this.y, 0, // 內(nèi)圓圓心和半徑 this.x, this.y, this.radius * 3 // 外圓圓心和半徑 ); gradient.addColorStop(0, this.color 0.3)); // 中心較實(shí) gradient.addColorStop(1, this.color 0)); // 邊緣完全透明 ctx.fillStyle gradient; // 繪制一個(gè)更大的圓作為光暈 ctx.beginPath(); ctx.arc(this.x, this.y, this.radius * 3, 0, Math.PI * 2); ctx.fill(); } } }關(guān)鍵點(diǎn)解析reset方法這是粒子系統(tǒng)的常見模式。粒子飛出邊界后不是被銷毀而是“重置”屬性后復(fù)用避免了頻繁創(chuàng)建和銷毀對(duì)象的垃圾回收壓力是重要的性能優(yōu)化點(diǎn)。速度設(shè)置vy垂直速度設(shè)置為正數(shù)所以星星整體向下移動(dòng)。通過(guò)給vx一個(gè)很小的隨機(jī)正負(fù)值可以讓星空有輕微的橫向流動(dòng)感更生動(dòng)。閃爍算法沒有使用簡(jiǎn)單的隨機(jī)數(shù)切換而是用Math.sin正弦函數(shù)。正弦波的平滑性使得星星的明暗變化是連續(xù)的、自然的避免了生硬的跳變。flickerDelta的累加實(shí)現(xiàn)了動(dòng)畫的推進(jìn)。光暈效果使用createRadialGradient創(chuàng)建徑向漸變來(lái)模擬星星的光芒。這是提升視覺效果的關(guān)鍵一步讓星星看起來(lái)不是生硬的圓點(diǎn)而是有發(fā)光的感覺。注意光暈的繪制要在星星本體之后并且其透明度漸變要設(shè)置正確。3.2.3 初始化粒子數(shù)組與動(dòng)畫循環(huán)// 初始化創(chuàng)建所有星星粒子 function initStars() { stars []; // 清空數(shù)組 for (let i 0; i STAR_COUNT; i) { stars.push(new Star()); } } // 動(dòng)畫循環(huán)函數(shù) function animate() { // 1. 清空畫布用透明色清除整個(gè)區(qū)域露出body的深色背景 // 注意如果每幀繪制背景矩形則用 fillRect ctx.clearRect(0, 0, canvas.width, canvas.height); // 2. 更新并繪制每一個(gè)星星 for (let star of stars) { star.update(); // 計(jì)算新位置和透明度 star.draw(); // 繪制到畫布上 } // 3. 請(qǐng)求下一幀動(dòng)畫形成循環(huán) animationId requestAnimationFrame(animate); } // 啟動(dòng)動(dòng)畫 function startAnimation() { if (!animationId) { // 防止重復(fù)啟動(dòng) initStars(); animate(); } } // 停止動(dòng)畫用于頁(yè)面隱藏時(shí)節(jié)省資源 function stopAnimation() { if (animationId) { cancelAnimationFrame(animationId); animationId null; } }requestAnimationFrame(animate)這是實(shí)現(xiàn)瀏覽器動(dòng)畫的標(biāo)準(zhǔn)方法。它告訴瀏覽器“在下次重繪之前執(zhí)行animate函數(shù)”。相比舊的setInterval它能與瀏覽器的刷新率同步通常是60fps確保動(dòng)畫平滑并且在頁(yè)面不可見時(shí)自動(dòng)暫停節(jié)省CPU和GPU資源。ctx.clearRect(0, 0, canvas.width, canvas.height)這是清除畫布的標(biāo)準(zhǔn)做法。它把指定矩形區(qū)域內(nèi)的像素設(shè)置為透明。因?yàn)槲覀冇猩钌尘八钥雌饋?lái)就是“擦除”了上一幀的畫面。3.2.4 處理窗口大小變化與頁(yè)面可見性一個(gè)健壯的項(xiàng)目必須考慮響應(yīng)式和資源管理。// 監(jiān)聽窗口大小變化自適應(yīng)畫布尺寸 window.addEventListener(resize, () { // 防抖處理避免resize事件觸發(fā)過(guò)于頻繁 if (this.resizeTimeout) clearTimeout(this.resizeTimeout); this.resizeTimeout setTimeout(() { initCanvasSize(); // 重置畫布分辨率 // 注意星星位置是基于舊畫布坐標(biāo)的重置后坐標(biāo)會(huì)錯(cuò)亂。 // 方案一簡(jiǎn)單重新初始化所有星星星空會(huì)“重置”。 initStars(); // 方案二復(fù)雜根據(jù)新舊畫布比例重新計(jì)算每個(gè)星星的位置。這里采用方案一。 }, 200); }); // 利用 Page Visibility API 優(yōu)化性能 document.addEventListener(visibilitychange, () { if (document.hidden) { // 頁(yè)面不可見如切換標(biāo)簽頁(yè)、最小化停止動(dòng)畫 stopAnimation(); } else { // 頁(yè)面再次可見重啟動(dòng)畫 startAnimation(); } }); // 頁(yè)面加載完成后啟動(dòng) window.addEventListener(load, startAnimation);實(shí)操心得resize事件處理中的“星星位置錯(cuò)亂”問題是一個(gè)經(jīng)典坑點(diǎn)。簡(jiǎn)單地重新初始化initStars()是最快最安全的方案用戶體驗(yàn)是星空會(huì)突然“刷新”一次。如果你希望星星位置能平滑過(guò)渡就需要記錄比例并重新計(jì)算每個(gè)星星的x和y坐標(biāo)邏輯會(huì)復(fù)雜很多。對(duì)于星空背景這種非精確交互的場(chǎng)景我通常選擇簡(jiǎn)單重置影響不大。4. 性能優(yōu)化與高級(jí)效果拓展基礎(chǔ)版本已經(jīng)能運(yùn)行得很好。但如果你想打造一個(gè)更驚艷、更專業(yè)的星空或者面對(duì)粒子數(shù)更多2000的場(chǎng)景就需要考慮以下優(yōu)化和拓展。4.1 性能優(yōu)化技巧離屏CanvasOffscreen Canvas場(chǎng)景如果星星形狀固定且復(fù)雜比如不是簡(jiǎn)單的圓而是星形圖片每幀重繪上千次drawImage開銷很大。做法將每個(gè)星星預(yù)先繪制到一個(gè)離屏的小Canvas上。在主動(dòng)畫循環(huán)中不再調(diào)用arc和fill而是直接使用drawImage將離屏的星星“圖章”復(fù)制到主畫布上。這能大幅減少繪制指令。代碼示意const offscreenCanvas document.createElement(canvas); const offscreenCtx offscreenCanvas.getContext(2d); // 在offscreenCanvas上繪制好一個(gè)星星 offscreenCtx.arc(5,5,2,0,Math.PI*2); offscreenCtx.fill(); // 在animate循環(huán)中 ctx.drawImage(offscreenCanvas, star.x, star.y);對(duì)象池Object Pool我們的reset方法已經(jīng)體現(xiàn)了對(duì)象池的思想復(fù)用對(duì)象避免垃圾回收。確保stars數(shù)組大小固定而不是不斷push和splice。減少繪制狀態(tài)變更Canvas的fillStyle、strokeStyle、globalAlpha等狀態(tài)設(shè)置是有開銷的。如果所有星星顏色和透明度差異不大可以嘗試按屬性分批繪制減少狀態(tài)切換。但在我們這個(gè)閃爍、顏色微變的場(chǎng)景下收益可能不明顯且代碼會(huì)變復(fù)雜。使用Web Workers將粒子位置、速度等數(shù)據(jù)的計(jì)算即update邏輯放到Web Worker線程中與UI渲染線程分離。這對(duì)于粒子數(shù)量極多數(shù)萬(wàn)的復(fù)雜物理模擬有奇效。但對(duì)于千量級(jí)的星空可能引入的通信開銷得不償失。4.2 視覺增強(qiáng)效果添加流星創(chuàng)建一種特殊的“Meteor”粒子類擁有更快的速度、更長(zhǎng)的尾巴。尾巴可以用繪制一條漸隱的線段或者連續(xù)繪制幾個(gè)透明度遞減的圓點(diǎn)來(lái)實(shí)現(xiàn)。每隔幾秒隨機(jī)生成一顆流星賦予其隨機(jī)的起始位置和方向。星空分層與視差滾動(dòng)創(chuàng)建2-3個(gè)stars數(shù)組分別代表“遠(yuǎn)景慢星”、“中景中速星”、“近景快星”。賦予它們不同的速度(vy)和大小(radius)。在更新時(shí)近景星移動(dòng)快遠(yuǎn)景星移動(dòng)慢從而產(chǎn)生強(qiáng)烈的3D縱深感和沉浸感。這是讓星空“活過(guò)來(lái)”最有效的一招。交互式星空監(jiān)聽mousemove事件根據(jù)鼠標(biāo)位置計(jì)算一個(gè)“力場(chǎng)”影響附近星星的速度(vx, vy)讓星星像被鼠標(biāo)吸引或推開一樣流動(dòng)。這需要為Star類增加一個(gè)applyForce(vx, vy)方法。背景星云在Canvas最底層用createRadialGradient或createLinearGradient繪制幾片半透明的、顏色柔和的色塊如深藍(lán)、紫色、暗紅作為星云的背景。注意要設(shè)置globalAlpha為很低的值如0.1并且只在初始化或窗口重置時(shí)繪制一次不要放在動(dòng)畫循環(huán)里否則性能堪憂。5. 常見問題與調(diào)試實(shí)錄在實(shí)現(xiàn)過(guò)程中你幾乎一定會(huì)遇到下面這些問題。這里是我的排查記錄和解決方案。5.1 問題星星閃爍生硬像在“跳動(dòng)”而不是“呼吸”。排查檢查閃爍算法。如果用的是Math.random()直接設(shè)置alpha變化就會(huì)不連續(xù)。解決如前所述改用基于Math.sin()或Math.cos()的周期性函數(shù)??梢哉{(diào)整flickerSpeed改變閃爍頻率調(diào)整正弦波的振幅改變明暗變化幅度。5.2 問題動(dòng)畫卡頓幀率FPS很低。排查步驟打開瀏覽器開發(fā)者工具F12的“性能Performance”面板錄制幾秒動(dòng)畫查看主要耗時(shí)在“腳本Scripting”還是“渲染Rendering”。減少粒子數(shù)量將STAR_COUNT從1500降到800看是否立即流暢。這是最直接的驗(yàn)證。檢查循環(huán)內(nèi)的操作是否在animate函數(shù)或Star.draw中執(zhí)行了昂貴的操作比如console.log、復(fù)雜的數(shù)學(xué)計(jì)算、DOM操作等。解決方案確保console.log不在動(dòng)畫循環(huán)中。使用上節(jié)提到的離屏Canvas優(yōu)化繪制??紤]使用requestAnimationFrame的回調(diào)參數(shù)timestamp來(lái)實(shí)現(xiàn)時(shí)間差deltaTime動(dòng)畫讓動(dòng)畫速度與幀率解耦避免在高刷新率屏幕如144Hz上運(yùn)行過(guò)快。let lastTime 0; function animate(timestamp) { const deltaTime timestamp - lastTime; lastTime timestamp; // 更新星星時(shí)使用 deltaTime * 0.001 來(lái)調(diào)節(jié)速度使其與時(shí)間相關(guān)而非幀數(shù)相關(guān) // this.x this.vx * (deltaTime * 0.001); }5.3 問題畫布在高分辨率屏幕如Retina屏上模糊。原因Canvas的CSS寬高和其width/height屬性不一致。在Retina屏上1個(gè)CSS像素可能對(duì)應(yīng)2個(gè)物理像素。如果我們只設(shè)置CSS為全屏而canvas.width等于window.innerWidth那么繪圖表面分辨率不足就會(huì)被拉伸導(dǎo)致模糊。解決獲取設(shè)備的設(shè)備像素比devicePixelRatio并依此放大Canvas的繪圖表面。function initCanvasSize() { const dpr window.devicePixelRatio || 1; const rect canvas.getBoundingClientRect(); // 設(shè)置Canvas元素的實(shí)際顯示尺寸CSS像素 canvas.style.width ${rect.width}px; canvas.style.height ${rect.height}px; // 設(shè)置繪圖表面的分辨率物理像素 canvas.width rect.width * dpr; canvas.height rect.height * dpr; // 縮放繪圖上下文讓后續(xù)所有繪制坐標(biāo)自動(dòng)適配高分辨率 ctx.scale(dpr, dpr); }經(jīng)過(guò)這樣處理繪制出的星星邊緣會(huì)非常銳利清晰。5.4 問題窗口改變大小時(shí)星星位置錯(cuò)亂或聚集。原因如3.2.4節(jié)所述星星的坐標(biāo)(x, y)是基于舊畫布尺寸的。畫布突然變大所有星星仍集中在左上角原始區(qū)域畫布變小部分星星會(huì)跑到畫布外。解決如前所述在resize事件中重新初始化initStars()是最簡(jiǎn)單的方法。如果要求高就需要做坐標(biāo)映射。5.5 問題想用圖片代替圓形作為星星。解決在Star類中加載圖片并在draw方法中使用ctx.drawImage。class Star { constructor() { this.img new Image(); this.img.src star.png; // 小星星圖片 this.reset(true); } draw() { if (this.img.complete) { // 繪制圖片注意坐標(biāo)要減去寬高的一半以居中 ctx.drawImage(this.img, this.x - this.radius, this.y - this.radius, this.radius*2, this.radius*2); } else { // 圖片未加載完用圓形兜底 ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2); ctx.fill(); } } }注意加載數(shù)百?gòu)埾嗤膱D片是巨大的浪費(fèi)。應(yīng)該只創(chuàng)建一個(gè)Image對(duì)象然后在所有星星的draw方法中共享引用。同時(shí)務(wù)必做好加載狀態(tài)判斷否則會(huì)繪制空白。這個(gè)項(xiàng)目從簡(jiǎn)單的圓點(diǎn)開始通過(guò)逐步添加速度、閃爍、光暈、分層、交互最終可以演變出一個(gè)極具視覺沖擊力和趣味性的動(dòng)態(tài)星空。它不僅是前端動(dòng)畫的入門石更是理解計(jì)算機(jī)圖形學(xué)中粒子系統(tǒng)、動(dòng)畫循環(huán)、性能優(yōu)化等核心概念的絕佳實(shí)踐。希望這份詳細(xì)的拆解和實(shí)錄能幫助你不僅實(shí)現(xiàn)效果更能理解背后的每一行代碼為何如此書寫。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久操大香蕉手机视频在线看| 亚洲限制级| 欧美综合网在线| 91美女小视频| 91小视频| 欧美亚洲成人在线一区二区三区| se吧提供国产乱老熟视频胖女人| 五月丁香| 日日骚AV| 欧美一二三区四五区| 综合网亚洲在线| 人人色人人操在线| 综合激情一一91| 亚洲另类小说卡通动漫| 黑人天8A∨高清网站| 日韩兔费看黄片| 免费啪啪一级视频| 美女黄页网站| 婷婷色一区| 成人资源中文字幕在线观看| 搡老熟女老女人老熟妇免费视频| 日本熟妇自慰性高潮一区二区三区| 国产亚洲精品av一区| 色综和网| 国产综合永久精品日韩鬼片| 亚洲图片 欧美电影| 97人人干人人操| 91综合色噜噜| 日日干日日摸| 96AV久久久| 国产操操日韩三级黄| 大香蕉狠狠爱| 久久久久久中文| 91五月天| 黄片直播三级黄片两女一男| 国产精品人妻无码久久久互動交流| 色噜噜国产在线| 日本人妻最新在线中| 亚洲人久久久网| av国产无码| 欧美BT 亚洲色图| 午夜精品久久久久久久男人的天堂 | 性色高清..……| 九九久久精品| 国产乱码精品一区二区三区四川| 外站AV在线| 欧美性爱网97| 欧美日韩天堂| 国产乱人妻精品入口| 综合激情五月丁香| 97色色网| 久久精品国产精品亚洲艾通辽熟妇 | 百度百度日本操逼| 久久大香蕉97| 亚洲AV在线资源| 欧美性天天影视| 韩国一级婬片A片AAAAA| 亚洲无线码一区国产欧美国| 五月丁香在线| 久久夜夜| 欧美97视频| 色天天野狼综合社区| 丁香九月婷婷| 久操99| 91N欧美| 中文字幕 国产区| 日本久久网| 激情综合婷婷| 蜜臀国产AV中文字幕| 欧美性爱系列| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 亚洲区限制级| 久久9久久| 久久69| 久久加勒比| 亚洲欧美伦综合| 亚洲色人| 成年人黄色小视频网站| av天堂手机版追回 | 97中文字幕一区| 综合97| 91露脸熟女专区| 99热亚洲| 色偷偷综合91久久噜噜| 日熟女| 激情综合婷婷| 国产在线激情| 亚洲?V无码专区在线电影| 国产亚洲精品激情| 少好三P| 97色视频在线| 日韩欧洲操屄视频| 好吊色一区| 亚洲色91| 97视频620| 五十路三区在线| 色情婷婷| www.亚洲黄色| 超碰97欧美日韩| 国产AV久久野战精品| 亚洲综合性网址| 狠日操| 超碰综合色| 影视综合无码少妇| 青草地一本线一区二区三区| 9久综合网| 亚洲另类欧美精品| 亚洲性刺激| 中文字幕在线日亚洲9| 天天操天天7| 免费A V在线播放| 久久久久久人| 免费看污网站| 色色99| 无码久久国产 | 天天看精品动漫视频一区| 一道本东京热加勒比一区二区三区| 极品白嫩美少妇在地板上位骑射淫水泛滥| 4141514逼喷水三级片| 综合免费无码中文| 好属操| 久久超碰com| 久久男人| 无卡一区=区| 99色热| 亚洲欧洲精品视频发布| 国产999精品久久久久久| 东北操逼| 操逼逼福利视频| 色爽爽文学| 久久人妻一区二区三区高清| 成人八戒网站| 亚洲综合伊人| 爽 好舒服 无码刺激久久| 成人三级片一区二区三区视频| 日韩99神马视频播放| 午夜传煤十二区精品| 夜夜影视四色| 综合大香蕉美。| 色激情综合网站| 9久9久| 天天色欧美| 性久久| 最新av在线| 中日韩免费看男女操逼大全| 人人操人人摸人| 91精品久久久久久久久久| 91精品国产日韩欧美综合| 一本大道综合伊人精品热热| 免费精品人妻一区二区三| 色天欧美| 成功精品影院| 岛国福利在线精品播放| 超碰 欧美| 人人操AV| 精品一区二区综合熟妇| www.成人无码| 男人天堂久久日韩| 99久久婷婷国产综合精品草原| 久久人妇| 国产精品 久久久精品一牛| 无码免费一区二区三区啪啪| 国产日韩手机视频在线| 国产精品久久久| 99热超碰在线| 亚洲制服欧美另类内射| 91色人妻| 高清国产无码av| 99re在线视频这里只有精品| 男女激情黄色网址| 污色区网站| 青女在线| 麻豆2区1区天美| 人人考人人摸人人干| 色综合一区二区三区| 麻豆亚洲Av成人无码一区精品| 丰满人妻一区二区中文| 欧美成人精品一区二区三区| 亚洲无码偷拍| 日韩97| 天天干人妻视频| 色超碰综合| 人人色人人射人人妻| 欧美综合自拍成人自拍第二十页| 天堂中文日本在线观看| 思思热国产在线视频| 亚洲久久久久| 国产品精品自在在线午夜免费| 亚洲色婷婷综合久久一区二区三区| 亚洲综合在线高清| 爽爽爽免费视频| 99精品无码| 好湿好紧好爽 视频| 秋霞曰韩R级| 一区二区影院| 大香蕉啪啪啪| 水澄无码AV| 亚洲美女自拍偷拍视频| 久久久免费的精品| 久久久精品国产亚洲AV无码| 丁香五月社区| 亚州久久9| 国产女主播视频在线观看| 久久精品综合| 青娱乐999| 久操网无码在线| 91超级碰碰碰| 东京热av男人的天堂| 四虎884| 九九九久久久W精品| 亚州一区二区成人片免费| 无码heyzo高清一区| 久草久热| 色欧美在线| 天天操天天射天天日| 五月丁香啪| 国产精品密臀网在线观看| 色欲三区| 亚洲av热热色| 久久久久久性爱免费视频| 人人操人人摸avav| 99久久e免费热视| 九九热免费国产视频婷婷伊人| 色阁阁AV综合网| 富女玩鸭子一级毛片| 97国产色综合| 日韩性爱1级片视频| 少妇超碰在线| 俞拍自拍| 国产精品黑人一区二区三区| 先锋音影AV| 五月丁香啪啪啪| 极品另类| 中文字幕在线观看网页| 欧美激情在线观看视频| 立川理惠加勒比无码| 亚洲综合大片| 国产强奸乱伦第1页| 粉嫩国产精品久久粉嫩| 校园春色第一页| 亚洲高清无码免费观看视频| 日本五区不卡| 亚洲日本男人天堂网| 免费啪啪av| 国产精品对白自产拍| 五月天激情婷婷| 99热大香蕉伊在线| 日韩欧美被操黄免费观看| 中文字幕精品免费一区二区| 精品亚洲俞拍视频一区| 久久精品色欧美aⅴ一区二区| 久草电影网| 成视频在线观看免费看| 毛片一区二区| 欧美激情片一区二区| 尤物视频视频官网| 欧美 中文字幕 一区| 翔田千里爆乳巨臀无码| 综合网欧| 亚洲熟妇自偷自拍另欧美| 亚州免费啪啪视频| 亚洲丝袜少妇在线| 91久久18禁| 91日本在线观看| 呦呦影院| 国产一级内射高清视频| 日韩91网站| 夜夜高潮夜夜爽国产伦精品| 成人在线午夜视频一区| 嫩草影院永久在线制服丝袜| 中文字幕AV片| 941超碰| 大香蕉2017| 成人日本精品九区| 91在线|亚| 热无码中文亚洲H一道本一区二区| 国产蜜臀精品一区二区尤物| 天天天操天天天爱| 啊啊啊爽爽| 男人天堂网址 | 国精综合一二三区影视| 日本不卡一区二区三区| 欧美精品亚洲精品日韩传电影| 少妇精品久久久| 中文字幕精品丝袜| 超碰 欧美| 国产精品免费久久久久久久久久| 欧美高清91| 天天插天天操天天摸天天射天天看| 国产小u女在线观看| 2020中文在线一区二区三区| 久操视频资源站公开| 日韩熟女操逼| 91香蕉视频在线观看免费| 性爱视频免费网址| 国产亚洲精品玖玖玖在线观看| 亚洲1区2区三区高清中文字幕| 婷婷综合伊人一区| 国产视频人人网| 日本免费中文字幕在线| 国产精品视频精品一二| 日韩在线人妻网站| 欧美在线干| 97伊人网| 粉嫩不卡一区二区性爱| 日韩成人精品中文字幕| 大鸡吧尹人在线| 午夜九九| 亚洲av成人精品一区| 熟妇综合一区二区三区| 大香樵伊人网| 天天综合网91| 国产偷拍自拍在线视频| 亚洲精品1区| av爱爱爱| 男人 天堂 日 亚洲| 懂色av中文字幕一区二区三区天美 | 激情综合亚洲| 美欧色综合| 亚洲精品国产日韩无码AV永久免| 激情干在线| 噜噜噜久久亚洲精品色情| 欧美综合网在线| 国产亚洲精品农村妇女| 国产成人AV麻豆| 激情接吻视频久久久久久| 亚洲中文字幕97久久精品少妇| 久久AV无码1区2区3区| 好爽要喷了| 久久精品日韩| 日本97久久久精品| 性videos欧美熟妇hdx| 99青草| 天天影视色香欲综合网小说| 97干色天堂| 激情黄色片在线观看| 欧美丝袜激情| 无色无码| 黄色交缠性感爆操91国产精品免费一区二区三区| 亚洲精品久久久久毛片A片拉屎 | 国产精品一区午夜福利| 欧美综合色图网| 国产成人免费观看在线视频| 夜夜 中文视频rt| 一级婬片120分钟试看| 日日夜夜国产综合| 91爆操视频| 超碰人人乐97| 久久久久亚洲熟妇熟女| 色悠久久久av| 91站街按摩店老熟女熟女| 91天天爽| 99色综合| 日本超碰在线国产一区| 中文字幕天堂在线| 国产精品欧美在线观看| 学生妹天天看| 嗯嗯啊啊啊好舒服| 日本日逼视频网| 九九AV| 久草综合视频| 五月综合久久| 国产精品久久aV| 清纯唯美综合亚洲| 香蕉大久久久| 男人的亚洲天堂| 丝袜狠狠草尤物人妻av91| 国产乱色国产精品免费视| 亚洲高清91| 1区2区3区中文字幕日韩| 国产一级久久久| 99免费在线视频| 性爱乱伦视频免费| 精品人妻一区二区三区在| 北条麻妃性愛视频| 曰韩精品九九无码| 色婷婷丁香五月| 久久久精品无码亚免费| 九九热三级片| 狠狠超| 久久精品一区二区三区蜜桃臀| 久婷婷一区| 热久久九九热| 日韩美女久久一区二区三区| 打av高清| 就去色综合| 蜜臀久久99精品久久久| 国产操操日韩三级黄| 永久免费发布性爱网| 欧美性爱第一区| 欧美日韩操操操| 精品日韩人妻精品一二三区| 亚洲人妻在线精品| 51久久夜色精品国产麻豆| 艹比视频国产精品| 色成人Www精品永久观看| 高清成年美女黄网站免费大全| 无码操逼网| 影音先锋乱| 超碰色中文| 亚洲精品黑丝| 中文字幕奈奈美被公侵犯| 黄骗免费网站| 91超级碰| 91精品久久久久久77777| 九九热只有精品| 日日操夜夜操天天操免费观看麻豆| 亚洲天天操| 亚洲最新Av| 人妻熟女av国产网站| 欧美久久草熟女| 久久久久921| 日本精品五区| 天天操天天干一区二区 | 欧美黄片视频在线观看免费| 五月色综合| 亚洲精品九九九九九九| 亚洲日韩美女丝袜美腿人妻视频| 免费家庭乱伦视频| 婷婷中文字幕| 情色五月天就去干| 欧美啪啪色吧在线| 国产精品久久久久综合| 日日摸日日碰| 岛国片在线播放| 97 国产一区| 亚洲天堂精品日韩电影| 五月婷久久| 亚洲一二三四区在线免费看视频 | 天天色天天干天天射| 日本性爰一道本| 91色女| 91欧美巨乳| 操逼操逼逼操操逼91| 97综合在线观看| 欧洲特黄毛片免费看欧洲毛片| 亚洲天堂99| 99热免费| {男男暴菊gay无套网站| 91视频综合在线| 色婷婷综合网站| 搡老女人老熟女91老熟女综合网| 旡码电影特区| 岛园激情| 色色色色日本| 欧亚日韩中文在线| 亚洲情色婷婷五月天| 色欧洲| 玖玖蜜臀资源网| 久久久久亚洲AV无码专区少妇| 美女毛片999| 99热99在线| 日本αv| 情色大香蕉| 亚洲情色1区| 欧美人妻一区| 欧美性爱免费短视频| 男人的天堂VA| 亚洲午夜精品久久久中文影院| 夜夜嗨AV蜜臀av| 欧美色五月| 色婷婷五月天| 欧美的性爱网站免费| 白嫩91在线亚洲| 国产黄色动态精品| 人妻精品综合中文字幕在线| 国产精品懂色tv影视免费观看| 日韩视频小说在线观看| 东京太热久久久| 精品超碰国产| 26uuu国产日韩综合在线观看| 日本一区二区三区四区五区六区七区八区九区| 超碰伊人在线| 插插综合网天天影视网| 桑老女人九区| 亚洲情色欧美| 日本潮催一卡操| 91亚洲综合在线| 91天天爱| 97精品综合久久网| 粘花网06av视频| 好看的91视频| 欧美日韩美女精品久草一区二区三区| 亚洲图片 91| 免费看日产一区二区三区| 伊人久久大香线蕉无码| 干婷婷综合网| AV九九| 成人日本视频人妻在线| 色欧美天天| 国产成人资源| 一级婬片120分钟试看| 国产精品婬乱一级毛片彝族| www.婷婷五月天| 精品人妻美妇91job| 乱精品一区字幕二区| 欧美人人天天网| 大色网久久| 97ai亚洲| 日韩无码精品综合久久| 色色色欧美| 大地资源在线观看中文第二页| 色九九综合| 97亚洲资源| 香蕉大久久久| 国产91影院| 亚洲性爱无码乱伦av| 日韩天堂av电影在线观看| 色网综合网| 精品欧美不卡在线播放| 天天爽天天操| 大茄子熟女AV导航| 中文字幕乱在线伦视频中文字幕乱码在线 | 91女日逼| 97自拍视频在线| 国产精品97超碰| 日韩无码精品综合久久| 99久久网站| 久久久一区二区三区四曲免费听 | 97 亚洲 日韩 欧美 在线| 久久久久久欧美精品se一二三四| 日本一区二区中文字幕久久| 亚洲自拍天堂| 东北女人的毛片| 凸凹视频在线观看| 国产丰满少妇久久久精品影院| 男人的天堂com| 夜夜操中文字幕| 夜夜操av亚洲一区二区| 日韩欧美一级特黄大片| 337p大胆噜噜噜噜噜91Av| 91殴美| 99青草| 天堂中文日本在线观看| 亚洲人成在线放东京热| 亚洲综合伊人| AV老汉| 欧美的性爱网站免费| 久艹99| 97干天天| 亚洲av热热色| 女同在线视频一区| 精品少妇一区二区三区在线视频| 九九热精品| 亚洲国产亚洲天堂| 欧美页片| 97精品综合久久网| 中文字幕精品人妻丝袜| 狂操嫩妻视频一区二区三区| 巨爆乳肉感一区二区三区竹菊影视 | 91丝袜美女| 亚洲97在线观看| 久久香蕉国产线看观看亚洲女人 | 日韩在线电影| 国产超碰在线一区| 日本在线一二| 蜜桃视频精品一区二区| 综合熟女| 九九视品黄色| 青青草精品| 亚洲综合影院| 精品久久艹| 国产日韩在线播放| 亚欧性爱无码| 99少妇| 精品久久久久久中文字幕三区 | 超碰在线人妻| 亚洲欧美色图片| 好吊色在线观看| 欧美日韩性爱视屏免费看了| 极品欧美一区二区三区| 国产97色在线 | 亚洲| 天天综合,91综合永久| 中文字幕精品码亚洲| 亚洲情色第一页| 久9久| 五月综合激情| 操狠狠| 91校园春色长篇| 日本三级大片| 人妻丝袜日本| 啊啊啊好多水| V A在线| 91综合熟女| 日韩特级毛片免费观看全集| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 国产性感骚丝袜在线| 91麻豆天美国产欧美| 一中国女人毛片水真多| 五月天婷婷在线看 | 亚洲熟女av中文字幕| 日日骚av| 日逼五月天| 99色在线视频| 亚洲天堂男人天堂网| 欧美特黄视频网站| 国产视频三区四区| 成人免费不卡在线视频| 日韩猛交| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 欧美亚洲20p| 久久婷婷五月天| 精品区国产区一区二区三区| 桑老女人九区| 97 亚洲 日韩 欧美 在线| 天天躁日日躁成人字幕aⅴ| 亚洲国产综合图区中文字幕 | 啊啊嗯嗯好爽| 91亚洲影院综合| 人人透人人操| 狠狠操狠狠插| renqi久久久久久久久久久久| 3P乱轮视频| 欧美精品自慰系列寂寞少妇| 伊人专区一区二区三区| 天天欧美| 亚洲av无码成电影在线播放| 一级性爱视频免费观看| 九九九九一级| 久久久久久裸体| 天天干夜夜| 就去色综合| 伦理日韩国产久久| 成人情色综合网| 日韩猛交| 91被操| 亚洲第2页| 九九精品无码专区免费| 美女写真| 久久久免费的精品| 人妻嗯啊啊在线播放| 超碰碰碰碰| 好吊色一区| 清纯唯美综合| 国产精品青草综合久久| 深夜激情无码| 天堂岛av| 制服丝袜第二页| 100啪啪视频大全| 亚洲国产高清福利视频| 男人的天堂.com| 国产盗摄美女如厕大神作品在线观看| 天天干天天中出av| 久久狠狠色噜噜狠狠狠狠97| 特级毛片特黄久久免费看| 97高清啪啪| 亚洲丝袜少妇在线| 日日骚 av| 国产精品欧美在线观看| 十八禁的黄污污免费网站| 99re6久热只有精品6在线直播| chaopen97久久| 99精品欧美一区二区三区桃色| 日韩人妻播放| 国产精品久久久蜜臀| 99re超碰| 久久这里精品国产99丫e6| 蜜桃久久一区二区| 美日韩一卡二卡三卡免费人妻精品| 蜜桃传媒视频第一区入口在线看| 国产精品ww久久| 盗摄 精品 另类 一区| 亚洲区 欧美区| 国产成人综合在线播放| 亚洲淫色网中文| 久久首页| 五月天加勒比啪| 91久久久亚洲| 日韩ab网| 中文字幕成人理论在线| 无套后入双马尾| 青娱乐亚洲自拍| 97超碰免费人人性爱| 天天干干天天干干| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 欧美情色贴图| 国产一区二区精品久久99| 青青草视频导航官网| 3d成人精品一区二区| 日日日骚女人精品| 久久久久国产精品片区无码直播| 9超碰免费| 天美精品原创av片国产| 夜夜操中文字幕| 国产精品一区二区手机看片| 91欧美偷拍| 亚洲情色中文字幕一区| 麻豆成人AV| 日韩亚洲美女一区久久| 久久亚洲国产成人| 蜜臀va69| 欧美天天插| 淫荡熟女乱伦网| 久久久久久人体| 男人的天堂在线| 色青青久久影视| 四虎午夜影院| 日韩三级av片| 精品久久艹| 成人性爱全视频观看| 啪啪啪综合| 97超碰超欧美。| 欧美少妇第一页| 夜色五月天| 国产精品自在线发布| 曰韩人妻中文字幕在线| 国产欧美成人精品| 操操操操操操| 久久9 9 9精品| 亚洲熟女中文字幕在线| wwwxxx日本爽| 亚洲女人91| 91人人操| 亚洲欧美日韩不卡人妻| 97 国产精品| 精品久久艹| 久久久久9999精品九九九| 97视频观看| 草草影院在线视频| 欧美有码激情视频一区二区三区| 色欧洲| 日韩在线国产字幕| 视频国产欧美在线播放| 国产精品人妻免费精品| 国际精品久久久| 大香蕉99999| 少妇综合| 尤物网站91| 日韩欧美女求操每天更新| 日本不卡一区二区三区| 熟女精品日韩一区二区三区| 国产99999久久精品| 伊人一区二区三区| 97精品97久久| 伊人宅男大香蕉| 日本 情色 1区| 无遮挡男女激烈动态图| 试看日韩黄片| 国产在线综合福利网站| 国产日韩区| 国产超碰人人爽人人做| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 超碰亚洲欧美日韩无| 午夜欧美神马久久久久| 躁躁日曰躁2020| 91路www| 久久久性爱| 亚洲精品白浆高清久久久久久| 乱伦一区二区三区‘| 五月激情视频| 国产丸一视频| 日本高清免费一本视频在线观看| 开心五月婷婷激情| 乱伦熟女区| 亚洲一二三| 2021国产成人精品久久| av天堂天堂av日韩| 青青草九九九九九| 97国产中文| 操操操日本的逼| 蜜臀AV一区二区三区激情综合| 日韩精品操少妇| 日韩黄片影院| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 久草网站免费在线观看| 人妻中文在线| 夜夜性| 啊啊啊操死我| 欧美性爱第一页久久| 色噜噜人妻av 中文字幕| 欧美自拍网| 91精品国产麻豆国产自产在| 日本国产二线女色| 99热这里只有精品地址| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 色色色色色色色色色色色色色色综合| 青青草在线视频欧美| 操操操五月天婷婷丁香影院| 少妇蜜汁| 亚洲系列第一页| 亚洲天堂另类| 亚洲丝袜天堂| 天天综合网日韩7799| 久久亚洲天堂| 韩国一区二区精品亚洲| 另类亚洲一区二区三区| 青青草精品| 久久久97| 在线αⅴ| 中文有码9| 亚洲视频,小说| 99久久9| 亚洲日本激情| 精品99999久久久久久| 午夜福利一区二区影院| 久久久91福利姬| 又黑又大又粗| 日本国产欧美高清在线| 久操免费在线| 97伊人超碰| 无遮挡h肉动漫在线观看| 大香蕉综合网| 久久久蜜桃一区二区三区| 乱操乱伦AV| 亚洲熟久久| 天美一二三在线观看Av| 国产精品一区二区亚洲人成毛片| 日日夜夜草草草| 嗯嗯啊啊视频在线看| 国内偷自视频区视频综合| 91处女视频在线观看| 亚洲欧综合另类无码一区| 黄色工厂这里只有精品| www.男人天堂| 国产精品 午夜福利| 久久怡红院| 丰满人妻av一区二区三区| 国产特级毛片AAAAAA高潮流水 | 国产亚洲精品美女久久久久久2021| 大二网站亚洲| 久久久久久久性爱| 欧美的精品的视频| 亚洲激情在线观看一区| 中文色综合| 国产一区自拍欧美日韩| 久久精品 六十路 熟女 欧美| 亚洲无 码A片在线观看麻豆| 99精品人妻| 激情小说亚洲| 超碰国产精品无码| 超碰色图| a片偷拍视频| 国产人妖视频一区在线观看| 蜜乳AV网址| 国产精品无套内谢| 九九色图| 欧美老妇综合网| 欧美猛交黑寡妇中文字幕| av在线人气| 人妻天天夜夜爽一区二区| 国产精品视频精品一二| 四虎影院成年人片| 亚洲欧美国产中文视频| 激情熟女12P| 99色网| 人人妻人人澡人人爽人人精品浪潮| 日本幼女18+| 清纯唯美亚洲| 亚洲欧美日韩偷拍色图| 亚洲国产一区二区日韩专区| 国产嫩草精品A88AV| …亚洲黄色厕厕女女在线播…| 鸥美中出| 国产亚洲99久久精品熟| 超97在线精品视频| 亚洲精品成人激情在线| 蜜乳av首页| 亚洲五区熟女| 97伊人超碰| 黄色视频60分钟| 五月婷婷综合网| 97综合国产精品高潮久久| 91黄射| 欧亚性爱视频免费看| 亚洲中文字幕噜噜噜久久久| 青青草精品| 九久9精品| 久久超碰爱| 久久黄黄黄| 操人91| 欧美综合网1| 人妻无一区二区三区| 国产AV无码AV| 综合日韩激情另类图片| 日日夜夜精品视频| 超91综合网| 蜜臀99久久国产| 欧美黄色手机在线观看| 97人人草| 中文字幕三四五区| 男人天堂.AB| 人妻夜爽夜夜爽| 欧美成人9797| av中亚| 很很干很很操| 天天干天天操天天拍| 97综合网| 中文字幕片| 成人a v在线播放免费| 麻豆久久久久久久久丝袜 | 色综合20p| 日本亚洲熟女视频| 久久免费看高潮毛片韩国| 天天操福利视频综合网站| 日韩三级视频一区二区三区| 91夜色| 国产熟女精品区| 亚洲激情在线一区二区| 91美女片在线| 日本美女性生活久久久久久久| 一级片视频啪啪| 啊啊啊啊啊好舒服视频| 久草综合京东| 熟妇操花| 欧美黄色手机在线观看| 9999免费精彩视频| 99re久久| 久久久性爱视频| 91欧美| 久久久久久国产无码精品| 亚洲极品| 女同亚洲欧美一二三区久久电影| 91肉片| 超碰免费欧美7| 99热在线播放| AV乱伦专区| 97在线欧洲| 五月激情小说| 怡红院一区二区熟女人妻| 第四色奇米影视777| 青春草莓视频在线观看网址| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产一区二区三区白丝| 91亚洲网站| 乱老熟女一区二区三区| 一级性爱网| 亚洲91在线| 97亚洲综合影院| 蜜臀一二三区| 四虎免费视频| 成人天天看站长推荐| 加勒比无码一区二区三区| 国产av美女被艹的乱叫| 黄色小视频日本txt| 伊人五月天激情| 在线观看AV片| 人妻日日干| 啊啊啊好想要| 欧美高清无码免费视频高清版| 97伊人网| 日韩欧美亚洲自拍偷拍| 欧洲黄色网| 九九九九精品九九九九| 日本黄色大片一级视频免费麻豆| 久久偷拍人| 亚洲美女精品| 亚洲一二三四区机械| 2020国产精品| 青青草视频导航官网| 啊啊啊啊啊啊啊啊要喷了| 久久久91| 久久一二三四五六七八九区| 色99视频| 99热97| 91丝袜激情在线| 日韩九九九| 校园春色综合色| 99热在线不卡| 999热这里只有精品| 精品国产乱码久久久久久久久久毛片 | 国产91精品在线免费| 国产精品诱惑| 无码人妻精品一区二区中文| 五月色网| 97啪啪| 91精产一区二区三区| 国产v亚洲v日韩v欧美v片另类| 青娱乐淫乱1314| 欧美亚洲色图另类国产| 欧美在线官网| 亚洲国产综合久久久性感熟妇| 中文字幕狠狠玩| 欧美激情总合网| 日本精品国产视频| 五十路熟女人妻一区二区在线观看| 色在线亚洲视频www| 天天综合日韩网| 激情五月丁香五月| 午夜综合在线| 国产一级137片内射麻豆| 色蜜AV| 熟妇一区,二区,三区。| 欧美亚洲日韩16色| 日韩精品字幕| 97久久精品亚洲中六字幕| 欧美春色| 国产精品呦一区二区三区| 久久乐| 大干人妻| 再深点灬舒服灬太大了好硬好爽| 中文字幕一二三区| 九七超碰人人乐| 亚洲五月天激情| 欧美日韩国产成人高清| 三级三久久线久久99久目本WW| 久久熟女久| 成人5码视频| 亚洲色图在线视频| 久久性爱视频免费看| 国精综合一二三区影视| 亚洲电影中字一区二区| 啊啊啊不要啊啊受不了了视频在线| 欧美日韩欧美| 久操黄色视频| aaaa少妇高潮大片| 超碰偷拍| 久久女人视频| 无码国产精品久久久久| 四虎精品一区二区| 日韩精品熟妇| 国语对白在线播放视频| 日韩 女同 综合| 亚洲少妇喷视频看| 国产又黄又粗的视频| 日本久久久精品电影| 成人综合网 欧美| 狠狠色噜噜狠狠狠狠狠色综合久久 | 欧洲射精91| 8050午夜少妇无码| 亚洲男人天堂AV| 屁股久久久久久久久| 久久手机好看网站| 婷婷视频网| 国产高清成人mv在线观看| 久久99深爱久久99精品| 草草影院最新网址| 精品91日日夜夜超清资源| 天天热精品| 天天日夜夜| 新版天堂中文资源8在线| 一级性爱视频免费在线| 好屌色综合| 2019天天操天天爽天天拍| 国产精品激情久久久久久久| 中日韩免费看男女操逼大全| 欧美激情 一区| 欧美青青视频| 久超超碰| 最新9久久久9免费视频| 精品人妻一区二区三区夜夜| 欧美性猛交美女自慰91| 综合欧美日本三级| 丝袜剧情| 国产超碰AV在线精品| 精品无av| 欧美桃色网| 香蕉综合网| 青娱乐福利99| 波多野结衣先锋影音| 欧美黄片视频在线观看免费| 最新无码国产| 探花一区二区三| 国内毛片欧美香蕉精品| 99热婷婷一区二区三| 精人妻无码一区二区三区伊人直播| 国产精品乱码久久久久久久久久久久| 草久久久| 久久免费中文字幕在线观看| 欧美一二三区四五区| 啊嗯嗯啊好大好爽| 国产午夜精品理论片a大结局| 校园春色宗合网| 九九热精品视频六| 91高清欧美| 国产高清自拍| 在线观看中文av字幕| 国产乱码久久| 色婷婷一区二区三区久久午夜| 国产97亚洲| 亚洲导航深夜福利| 综合色图,成人综合网| 国产精品久久久久久久久久久久久久久久久久 | 999久久久免费精品国产牛牛| 日韩欧美大力操| 亚洲AV免费在线观看| 久久久久久久一级黄色打同平台| 精品少妇后入一区二区三区四区人妻巨乳| 成人短视频在线观看| 蜜桃色色网站视频三区| 天天躁夜夜躁狠狠躁AV| 91天美免费| 色色色欧美| 熟妇亚洲一区二区三区| 久热伊人99re| 天天看天天综合成人网| 玖玖久久久| 天天看,天天做| 亚洲黄色网址| 亚洲人成网站7777| 亚欧高清v| 性欧美第一页| 精品人体无圣光凹凸| 久久熟女人| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 免费伦费视频在线观看| 91色图片| 日本国产欧美一区三区二区| A一区片| 久久女同性恋一二区| 精品午夜福利| 95人妻爽爽人人做人人澡| 九九九不卡| 色妹子A V| 加勒比综合在线| www.夜夜| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 天天操天天舔| 婷婷精品| 天天射日日干| 久综合网| 男人的天堂 在线一区| 青草香蕉网| 26uuu欧美日韩| 果冻传媒A片一二三区| 思思热er精品视频| 超碰诱惑| 天天日夜夜| 欧美真人抽搐一进一出gif| 99热日| 亚洲av无码成人精品国产| 欧美性91| 91伊人久久在线| 国产日本熟女顶级一区二区三区视频 | 亚洲有薄码区日本系列中文字幕| 超碰色综合| 97操97干| 传媒免费一区二区三区| 天天干天天爽| 日韩欧美国产高清视频| 男人午夜天堂| 久久久99999久网站| 在线午夜成人无码视频| 亚洲AV成人无码一区二区三区在线观看| 9久9久9久9久视频网站| 丁香五月天激情综合| 国产av又色又爽又黄| 操屄日韩| 欧美色图 色综合图| 夜夜 中文视频rt| 成人看片网站| 无色无码| 青娱乐国产精品| 亚洲欧美999| 尤物视频新赏网鲜网色诱网| 亚洲男人天堂网久久| 欧美日韩国内不卡| 亚洲麻豆av一区二区| 4虎在线视频| 人妻熟女一区二区三区在线| 狠狠中文字幕| 亚洲人成网站7777| 欧成人在线| 人妻精品一区二区| 97人人色| 91碰碰| 东京热,男人的天堂| 天天日夜干| 成 人 A V免费视频在线观看| 免费人成毛片乱码| 欧美特大AA级黄片|