日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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
返回資訊列表
国产丝袜美女诱惑| 思思热免费视频观看| 男人的天堂 在线一区| 欧美性爱第1 页| 麻豆国产97在线| 18禁在线视频| 青女在线| 操逼无毒无码免费视频| 天天夜夜rb| 四虎免费视频| 国产性爱强奸乱伦大全| 麻豆国产免费影片| 午夜精品久久久久久久99热影院| 欧美亚洲综合999| 色悠久| 在线a v| 男人天堂站| 亚洲综人网| 98久久| 日本熟妇人妻中出视频| 天天干,天天日| 偷拍亚洲高清图片| 中文乱码字幕观看| 在线综合 亚洲 欧美中文字幕| 91亚洲最新在线| 永久免费av无码网站国产app| 欧美在线播放aaaa| 亚洲蜜臀精品视频久久| 国产乱伦亚洲| 综合 青草 伊久久 影院 综合 | 亚洲AV秘无码一区..| 在线观看色视频| 精品人妻一区二区免费蜜桃| 乱伦熟妇一区二区| 91亚州欧美| 国产 无码 一区二区| 2010男人的天堂| 亚欧操逼片在线观看| 亚洲一卡2卡3卡4卡乱码网站 | 国产97/欧美| 免费在线观看AV无码网站| 西西美女视频网| 女人与公拘交酡2020视频| 操91| 国产久久久久久| 久操高青| 乱伦AVxx| 成人无码欧美一级A片狼牙直播| 日韩av不卡在线看| 91视频综合在线| 久久久久国产一区二| 乱子伦一区二区三区国产精品| 国产精品午夜AV完会免费| 亚洲。日韩。欧美| 日韩乱伦影音先锋| 欧美色性情| 91九色丰满高潮| 婷婷激情五月| 免费看片黄| 情色五月天网| 啪一啪免费视频| 久久久久夜夜夜夜| 18禁久极品美女久久哦哟呀!| 一级片在线观看高清无码| 黄页网站成人免费| 天天综合欧美综合| 亚洲网污污污污| 91久久| 91 国产丝袜在线放观看 | 亚洲 欧美 手机在线观看| 蜜臀视频网站| 五月天欧美色图| 午夜精品99久久久久传媒| 精品国模无码| 蜜臀AV午夜精品久| 欧美后入式| 大香蕉色网| 在线观看国产黄色| 日韩性爱毛片操骚逼| 亚洲高清自拍| 97超碰9| 日韩99999色| 久久精品 六十路 熟女 欧美| 丝袜加勒比| 在线综合 亚洲 欧美中文字幕 | 做爱A级亚欧| 中文字幕青青草| 亚洲欧美综合色| 色婷婷丁香五月天| 91日本在线观看| 午夜无遮挡男女啪啪视频| 97欧美视频| 精品久久97| 欧美亚洲清纯| 亚洲九九视频| 国产AB视频| 日日日大屁股骚女人精品| 在线天堂999| 国产日韩精品一区二区三区| 少妇高潮99p| 丝袜AV一二三区| 韩国一级婬片A片AAAAA| 十八禁啪啦拍视频无遮挡| 99精品欧美一区二区三区桃色| 97超碰这里只有精品| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 久久熟女久| 色爱欲亚洲| 日韩伦理久 久久 清纯| 精品久久一区二区三区四区五区| 婷婷四五区| 96精品在线| 九九九九免费视频| 99国内熟女露脸视频| 综合欧美日本三级| 91n处女在线观看| 亚洲老熟妇xxx| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 久久精品72| 97色干| 色婷婷久久综合超碰| 在线观看高清AV| 好爽,再快点啊哈嗯嗯嗯嗯| 99精品国产户外露出| 亚洲情色在线| 欧美视频在线视频免费va| 啊啊啊啊啊啊啊在线| 26UUU欧美激情一区二区| 福利大香蕉| 骚逼高潮久久精品| 国产日韩欧美中文在线播放| 婷婷激情丁香| 99999精品成人| 欧成人精品H无码| 极品少妇99| 日韩中文字幕视频在线观看| 欧美综合天天| 亚洲图片欧美制度| 久久曰曰| 日本人妻中文字幕精品| 欧美综合色图片| 超碰性爱97| 开心五月婷婷| 亚洲乱码国产乱码精网站| 99热日| 国产二区视频在线观看电影| 91麻豆天美| 330Dv国产女人终合视频极品人与兽| 先锋色眉乱伦资源| 四虎午夜影院| 91无遮挡| 色婷婷丁香五月| 久久久久久久少妇| 日韩无码人妻中字久久三区四区| 另类小说五月天| 国产精品69久久久久久久| 久久久久久久91| 亚洲一二三四区| 国产亚洲精品A在线观看下载| 羞涩视频| 国产精品久久久久无码Av网曝门 | 超碰 另类 欧美| 黄色片A级一区二区三区| 天天操美美| 欧美综合娱乐久久| 亚洲精品乱码线路中文字幕| 亚欧美综合网。| 亚欧高清| 欧美色亚洲色| 人妻久久久久久久久久久久久久久 | 欧美草草| 麻豆AV96熟妇人妻| 九九九九久久久| 东京热男人的天堂精品| 东京太热男人的天堂久久久| 欧美熟妇人体| 欧美亚洲丝袜美女电影| 久久天堂婷婷网| 国产精品久久久久无码AV会牛| 日韩性爱一级片| 亚洲熟女av日韩熟女| 亚洲精品电影| 人妻少妇精品久久久| 热天堂一区二区| 国产av又色又爽又黄| 久久日韩肥臀| 蜜桃午夜视频一区二区| 久久色一区二区| 欧美性爱97超碰| 精品国产一区二区三区香蕉欧美| 91综合站| 日韩97| 亚洲一区二区三区春色| 精品人妻一区二区三区四区不卡在| 久艹99| 色五月69夫妻| 精品96久久| 打av高清| 人人噜夜夜操| 国产美女口爆吞精| 嗯嗯啊啊好大好爽| 色www精品视频在线观看| 夜夜狼人妻| 性色高清在线| 九九碰九九爱97超碰| 九九热精品| 乱伦1色页| 日本激情免费大片| 欧美精品23| 天天综合中文字幕 91| 翔田千里无码一区| 日韩无码极品| 97亚洲色图| 日韩视频中文字幕| 日韩人人精品| 人妻精品一区二区| 在线观看啊啊啊啊啊| 欧美五区| 亚洲欧美日韩电影网站一区| 神马精品视频| 偷拍在线观看视频| h色99999| 精品午夜福利导航| AV不卡在线| 亚洲精品第一| 中亚av| 亚洲精品熟妇1区2区3区。| 亚洲一区中文精品| 色婷婷在线视频| 黑操B| 黑人精品久久97| 超碰这里只有精品| 中文一区在线日| 4虎在线观看| 青青操狠狠撩| 欧美丝袜激情| 91天天综合在线观看| 精品999999| 蜜乳AV网址| 国产尤物AV尤物在线观看不卡| 91欧美| 日韩精品国模| 日韩在线一区高清在线| 大香蕉AV丝袜| 青青草原av| 一级黄色性爱A级片| 99色综合| www.男人的天堂| 国产亚洲日本精品在线| 大香蕉久久| 97人肏| 国产精品日日摸天天碰| 国产做?爰片久久毛片?片美国| 在线综合 亚洲 欧美中文字幕| 超碰无码五月97| 欧美高清18A片| 情侣开房子拍 日韩无码 女的很漂亮| 97色操| HEYZO高无码国产精品227| 天天添天天干电影| 97青娱乐超碰久久| 三级色综合| 天美AV片| 熟妇国产免费一区| 韩国午夜理伦三级好看| 欧美日本视频一区| 丁香六月激情| 超碰人妻久久| 最新AVzaixian| 男人成人黄色视频在线观看免费下载| 黄色操人| 中文字幕欧美精品亚洲日韩蜜臀| 五月天综合| 校园春色AV天堂| 欧美性爱97超碰 | 欧美日韩亚洲电影| 国产操操日韩三级黄| 夜夜青青无码影院| 日韩人妻资源在线看| 青草成人免费视频一com| 欧美 亚洲 综合 制服| 日本大香蕉| 久久久久久九九九| 99热97| 免费福利视频中文字幕| 激情欧美日韩女同久久| 操逼免费视频无码国产| 熟妇一区,二区,三区。| 欧美精品四区| 3028国产精品| 人人操,人人液| 热的中文 热的有码 热的国产| 丁香五月天啪啪| 午夜激情成人在线观看| 色图综合| 在线播放中文字幕| 91亚州日韩高清| 十八禁的黄污污免费网站| 欧美精品三区| 91第一页| 伊人伊人LD| 成人97人人超碰人人| 亚洲,欧美,综合网| 欧美综合在线91| 日日夜夜天天| 全免费a敌肛交毛片免费| 97Ai亚洲| 91色射| 曰本91情色| 国产亚洲 中文欧美久久| 无码日韩网站| 在线欧美69V免费观看视频| 久久精品熟妇丰满人妻99| 久草精品一区| 欧美另类自拍 | 欧美拳交在线播放| caoni国产亚洲av| 天美麻花大全视频| 国产毛片毛片4p懂色| 九九九精品| 国产精品久久久久久亚洲色欲| 亚洲av无码成电影在线播放| 黄色激情电影在线观看| 日本欧美国内在线| 97九色人妻| 好看的久久不射无码影视影院| 少妇99| 超碰九7免费| 亚洲图片激情综合另类| 激情久久久| 蜜臀久久99精品久久久久免费观| 日韩精品系列| 99人妻碰碰碰久久久久禁片| 在线中文字幕极品av| 亚洲日韩肥臀视频在线观看| 久热99999| 欧美性爱精品七区| 天天色播| 一区二区三区色综合| 日日黄色三级网站| 96麻豆精品一区二区三区| 一区二区三区探花在线观看| 啊啊啊啊一区| 中日韩欧美精品无码AⅤ一区二区| 夜夜嗨老熟女AV一区二区三区| 亚洲天堂精品日韩电影| 麻豆精品三区视频| 欧美国产伊人久久久久| 激情网色| 婷婷激情综合网| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 欧美综合区| 日韩另类| 禁十八久久| 色综九九九一区| 国产在线观看一区二区三区| 91午夜无码| 亚洲国产av中文字幕久久| 日韩国产乱子伦App| 国产女人高潮视频| 久久精品高清无码一区| 免费人成毛片乱码| www.91逼逼.com| 色色色网站| 九九热九九热| 国产搭汕a级片| 懂色av色欲av蜜臀av| 性爱久久| 亚洲天堂一区二区| 91天堂色男人的天堂| 久久久久骚| 亚洲天堂另类| 综合夜夜| 亚洲av综合色区无码一| 天天色,天天干,天天干| 51久久夜色精品国产麻豆| 日韩福利综合一区| 2018天天干在线视频| 久久久久久久伊人精品| 天天干,夜夜爽| 亚洲av热热色| AV中文字幕三四五| 国产毛片久久久久久久| 97超碰欧美| 99久久久无码精品国产人| 亚洲成熟国产精品美女| 九月婷婷久久| 欧美性色欧美| 伊人网高清| 天天综合网视频91| 国产中文字幕在线点播| 亚洲色综合| 欧洲天天在线| 大香蕉草草| 国产美女自拍AV| 亚洲色偷偷色噜噜狠狠99网| 亚洲精品97中文字幕| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 国产一区免费午夜视频| 久久亚洲影院一区二区| 18岁禁 茉莉成人久久| 一区二区偷拍拍视频| 淮穴色AV| 中文子幕一二三| 亚洲国产一区二区日韩专区| 国产欧美日韩女同性恋ww喷水精品| 亚洲 综合 第一页| 日本一级特级毛片视频| 九九黄色视频在线观看| 九九九九免费视频| 激情丁香五月婷婷| 日韩电影在线观看网址| 嗯嗯啊操我| 欧美综合第一页| 水野优香在线观看| 国产资源中文字幕在线| 成人精品无码| 成人av影院在线观看| 国产怡红院| 日韩av影片在线观看| 人人操人人肉久久精品| 看看小穴| 成人片在线播放| 亚欧美色图| 老熟妇一区二区三区…| 日本新免费二区三区| 三四中文字幕| 60秒免费视频| 成年女人一区| 久久五月丁香| 99操视频| 蜜乳AV色欲AVAV无码| 午夜啪啪片| 视频一区二区三区精品| 久久视频,这里只有精品| 亚熟hd视频在线| 亚州操逼网| 欧美综合天天| 91高潮| 精品妇操一区二区三区| 婷婷五月天久久久| jizzjizz欧美| 国产无码久久高清| 国产精品久久久亚洲第一牛牛_在线观看 | 欧美偷拍区| 国产精品久久久久久久久久久久久久久久 | 日韩99999| 久久亚洲一区女同性恋中文字幕 | 日本午夜久久电影| 色情成人五月天| 91精品综合久久久久久五月丁香| A V少妇特黄三级| 成人色女网| 日本孕妇孕交| 亚洲高清综合网| 曰韩中文人妻视频| 中文日本免费高清| 色一情一乱一乱一区91Av| 玖玖视频在线资源一区二区三区| 天天碰操中国年青熟妇| 欧美第一页| 欧美91精品国产自产| 人人操人人干网页| 国产欧美岛国精品一区| 91无码中出人妻视频| 欧美日本天堂| 中文字幕乱妇免费视频| 亚洲欧洲av影音| 国产成人综合在线播放| 精品成人无码| 中文字幕在线观看丝袜| 亚洲怡春院| av网站在线看| 操美女高潮抽搐白浆| 丝袜综合| 日韩97P| 色99视频| 久久久99999久网站| 亚洲人久久久久日| 久久一区二区三区入口| 色哟哟-国产专区| 偷拍亚洲情色| 天天操天天射天天日| 狠狠操狠狠操操| 伊人91| 成人无码在线视频网站| 色欲久久99精品久久| 欧美亚洲激情一二三| 东北女人操比视频| 嫩草黄页| 日本午夜福利视频| 亚洲日韩电影| 亚洲有薄码区日本系列中文字幕| 99婷婷一区二区| 免费人人搞97| 蜜臀99精品国产高清在线观看| 五月天激情视频| 精品视频97| 深夜激情| 亚洲av强奸乱伦| 久久日韩肥臀| 精品亚洲一区在线观看| 日本黄色大片一级视频免费麻豆| 91制服丝袜中文字幕| 夜夜国自区| 99re国产中文字幕| 99色在线观看| 高清视频一区| 综合自拍| 超碰午夜| 99国内精品| 天天操天天插| 久久九七| 欧美资源| 欧美麻豆成人同性GⅤ在线| 99色色网| 亚洲综合射| 久久这里只有精品9| 综合久久久久久久久91| 国产九九九九九九九九| 久久这里精品国产99丫e6| 97 国产一区| 九九国产| 偷拍导航视频网站| 丰满人妻无码一区二区三区 | 69少妇一区二区| 国产高清无码一区三区二区| 久久久穴999| 蜜桃AV天堂| 亚洲精品一区二区免费在线观看| 我想要啊 啊 啊| 日韩黄色av中文字幕| 亚洲各类熟们中文字幕| 日日骚网站| 色五月激情综合网| 久操影视| 99re在线观看| 精品国产乱码久久久久久网站入口| 91操人| 激情小说亚洲图片| www.夜夜| 欧美性爱综合,免费| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 91成人在线免费视频| 97 九色| 久操不卡视频| 蜜臀久久99精品久久久久| 日韩伦理视频| 亚洲国产成人精品999| 人妻超碰青青草98| 国产日韩欧美三级片| 香蕉免费一区二区三区不读 | 日韩av免费一级电影| 中文字幕日韩综合| 欧美一级二级三级| 国产99999久久精品| 欧美不卡在线美女| 国产亚洲色婷婷久久99精品91| 麻豆美女丝袜人妻中文| 久久精品一区二区三区不卡| 一个人免费视频观看在线WWW| 伊人一区二区三区| 性爱乱伦视频免费| 操一对老熟妇爽上天视频| 色哟哟1区2区| 欧美日韩国第一区| 少妇高潮99p| 久久性爱视频99| 免费人成毛片乱码| 免费99精品国产自在在线| 亚洲不卡不卡中文字幕不卡 | 亚洲国产精品成人无码久久久 | 天天天操天天天爱| 男人的天堂网免费| 五月婷婷激情综合| 一区二区三区免费岛国片| 骚熟女吞| 亚洲国产剧情少妇激情| 神马视频久久久久久| 成年女人18级毛片毛片免费观看| 天天做日日做| 成人a大片在线观看| 日本加勒比无码专区| 欧美一二三| 国产精品另类| 日本亚洲嫩草影院啪啪| 综合亚洲网| 精品无码产区一区二| 天天躁日日躁AAA片李宗瑞| 色黄色美女大长腿午夜视频| 欧美成人一级麻豆| 欧美v日韩v亚洲v最新在线| 99热在线播放| 96久久久久久久| 国内一级精品| 亚洲 欧美 精品专区 极品| 久久性爱视频免费看| 久久一区二区高清免费| 亚洲最新av无码成人精品区| 人人插人人摸人人| 欧美一区二区三区日韩| 国产亚洲一黄| 色av中文字幕| 久久久成人免费av电影| 色妺妺AⅤ| A级国产欧美激情在线| 日韩激情电影中文字幕| 人妻少妇精品视频一区二区三区| 超碰色综合| 日本成人免费一区二区三区 | 五月亭亭六月丁香| 高潮毛片无遮挡高清免费| 秋霞蝌科网日本一区| 免费在线观看国内色片网站网址| 9久热| 婷色五月天| 美女91在线观看| 久久国产视频专区一二三 | 色综合美国| 人人污日韩一区二区| 亚洲棕合电彰| 日本道人妻久久久在线不卡色视频| 午夜精品久久久久久久99蜜桃一| 五月天婷婷欧美三区| 先锋音影AV| 超碰偷拍| 亚洲欧美一区二区网址| 噜噜噜无码AV一级一级久久影院| 老鸭窝黄色视频网站| 久久精品 六十路 熟女 欧美| 在线观看十八禁| 亚洲久热| 九九人妻| 99精品久久久久久久婷婷| 日本一区二区三区精品| 99re6在线视频播放免费精品| 日韩中文字幕宗合在线| 久久精品国产亚洲粉嫩| 色综合久| 久久久555| 超碰人人超在线观看| 打av高清| 999久久久国产精品| 99九九精品| 国产精品3| 一本一道波多野毛片中文在线| 色噜噜人妻av 中文字幕| 亚洲熟女av中文字幕| 丁香五月婷婷基地| 一本色道人妻久久| 成年人性爱日韩| 男人的天堂在线| 日韩性爱免费观看视频| 福利视频一区二区微拍| 免费国产电影一区二区| 国产精品com| 丁香五月激情综合国产| 日韩欧美偷拍美女视频| 人妻天堂网| 国内精品999| 97久久精品| 午夜情侣自拍网站| 欧美日韩一区二区三区四区蜜桃| 久草精品在线| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 国产成人精品无码久久| 亚码人妻| 欧美黄色片AAAAA| 97超碰9| 91老司机在线视频免费观看| 久久精品国产AV一区二区三区| 中文字幕AV片| 亚洲精品影视老司机| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 九九热九九热| 中文字幕丰满人妻日本| 亚洲欧洲久久天堂| 婷婷亚洲五月***久久| 综合色欧美| 男女激情中文字幕| 亚洲九区| 日韩精品中文字幕人妻| 肉丝网站91| 熟女六十路| 日韩性爱一级片| 18禁看网站一区| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亚洲超碰97| 欧美制服网站美腿丝袜| 久久久久久久亚洲Av无码| 天美麻豆一区二区三区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 色偷综合| 91新在线欧美| 精品少妇人妻av久久免费| 精品一区二区三区蜜桃臀www| 久久久中文| 亚洲人妻在线一区| 99婷婷一区二区| 日韩精品-原创伙伴| 最新9久久久9免费视频| 亚洲熟女综合| 丝袜狠狠草尤物人妻av91| 一本一道vs波多野结衣| 操逼视频色| 超碰午夜| 亚洲国产青青| 欧美大片一区二区三区| 中文字幕av久久爽Av| 久久久啊啊| 久久精品亚洲成a人天堂| www.av在线视频| 国产精品区在线12p| 丰满少妇一区二区三区免费看| 欧美女同在线| 久久亚州大香蕉| 欧美最婬乱婬爆婬牲视频| 九9热伊人| 国产suv精品一区二六| 99re6在线视频精品免费完整版安卓版| 亚洲码和欧洲精品激情系列| 无码一区二区三区四区五区六区七区八区九区十区视频 | 思思热在线观看| 嗯嗯啊啊视频在线看 | 大色综合| 欧美日韩国产另类综合| 日韩性爱视频在线免费观看| 欧美性爱日韩性爱| 国产精品黑人一区二区三区| 无码不卡八戒| 国产粉嫩出水在线播放| 99操视频| 激情图片亚洲色图| 熟妇高潮精品一区二区三区下载| 久久9 9 9精品| 国内操逼视频二区| 伊人在线大香蕉视频久久| 有码色中文字幕在线观看| 国产精品天干天干综合网麻豆| 久久欧美按摩999| 九九九久久久久| 亚洲少妇综合| 中文字幕av亚洲精品| 中日韩熟女| 国产熟女少妇一区| 欧洲与亚洲欧美精品中文字幕| 久久精品国产97欧美精品亚洲 | 天天看综合网| 97超碰精品成| 亚洲无码 国产无码| 中文字幕乱码人妻二区三区| 强奸抽插av| 以及麻豆国产入口在线观看免费| 亚洲一区二区三区在线激情| 尤物av网站免费在线播放| 午夜120视频在线观看| 999日韩中文精品观看视频。| 中文三一区| 发朗少妇买婬全视频中文| 久久婷婷苹果| 91人妻中文| 国产熟妇一区二区| 色成人Www精品永久观看| 精品二区三四区五电影 | 天天色怡春院| 亚洲天堂五月天国产| 高清肉丝中文无码| 岛国精品视频在线观看| 日韩有码专区| 色色99| 综合操逼| 五十路一区无码| www激情| 99久久婷婷丁香| 探花精品视频| 东北女人性交| 加勒比性爱成人在线| 国产伦精品| 日韩乱伦影音先锋| 97超碰逼| 国产精品午夜精品| 国产成人综合在线播放| 欧美日韩国产人人| 333kkkk·亚洲com久久| dy888午夜老子影视达达兔| 精品久久久九九九孕妇| 大香蕉国产中文自拍| 东京热双插| 成人精品一区二区91毛片不卡| 二区熟妇韩日| 青青草成人视频在线观看二区 | 内射日韩大臀美女| 亚洲欧洲自拍图片专区满春格| 国产suv精品一区二区四| 久久有码视频| 大香蕉操久久| 1级午夜影院费免区| 国产精品国产| 亚洲欧洲偷拍一区| 精品久久久久久AV无码| 呦女网站| 婷婷五月天激情四射| 操逼A∨| 天天日B狠狠操| 日韩国产不卡在线视频| 男人天堂新在线| 啊啊啊啊啊啊好湿好爽视频| 午夜理论片在线观看免费| 日日操夜夜操天天操免费观看麻豆| 欧美18禁91| 超碰99在线| 欧美人妻少妇| 男人的亚洲天堂| 国产av白丝| 新婚人妻扶着粗大强行坐下| 91美女网站| 自拍第一页| 蜜臀色乳| 日韩亚洲美女一区久久| 不卡啪啪视频| 亚洲国产精品成人综合| 97鸡把在线视频| 国产精品丝袜久久亚洲不卡| 天天干,天天日| 日本色色色色色视频| 亚洲欧美日韩制服另类| 变态综合色| 97这里只精品| 歐美一級亂黃99在綫精品| 久久国产乱子伦精品免费女人| 91综合色噜噜| 97免费视频在线| 97色香蕉| 女生看匆91网站| 超碰久超碰久| 98福利在线视频| 爱欲AV| 综合色99| 天天爽天天| 中国女人内射6XXXXX| 人人人人插| 在线国产福利网址导航| 午夜亚洲国产理论秋霞| 91久久免费视频互動交流| 很很操在线| 被男人吃奶很爽的毛片| A 天堂| 久久久国产av美女私房| 国产精品九九九| 亚洲 暴爽 AV人人爽日日碰| 成人一二| 自拍偷拍第26| 强奸乱伦AV网站| 日美免费黄片| 玖玖玖玖精品国产剧情| 日婷婷| 日韩精品在线观看网站| 色婷婷网| 黄色成品网站| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 屁股久久久久久| 91一区二区三区蜜桃| 自拍偷拍 高清无码| 亚洲色图尤物视频| 日韩熟女精品无码专区一区二区| 色五91| 久久久久9999精品九九九| 中文字幕午夜精品久久久| 久久97超碰| 99国产在线 精品 视频| 亚洲最大无码中文字幕网站| 亚洲αv一区二区三区| 国产11页| 加勒比综合a∨| 亚洲欧美另类激情小说| 久久露脸国产老熟女| 黑人精品成人一区二区三区| 激激五月| 亚州色站 日韩电影| 超碰在线97国产| 精品一区二区三区蜜桃| 91碰超| 岛国AV一区二区电影| 麻豆伊人网| 五十路三区在线| 五月天婷婷在线看| 国产亚洲99久久精品| www.一本大99| 成人国产二区三区在线,男女精品。| 精品午夜福利国产一区二区在线观看| 99热精品在线| 夜夜高潮夜夜爽国产伦精品| 三级AV入口| 9久久9综合| 丰满人妻一区二区三区在线| 96麻豆精品一区二区三区| 国产福利精品最新在线| 亚洲drav色图| 这里只有精品视频在线观看麻豆 | 99在线视频播放| 91久久国产精品| aⅴ日韩成人电影av在线免费看av大全| 亚洲天堂,男人| www.91视频网| 激情四射婷婷四五月天| 啊啊啊网站| 超碰亚洲欧美日韩无| 欧美天天综合网版| 欧美嗯啊……在线观看视频免费| 超碰九区| 亚洲国产一区二区三区在线| 日韩性爱小视频| 韩国轻伦国内自拍一区| 2017,超碰| 亚洲有薄码区日本系列中文字幕| 91亚洲情色| 97se综合网| 色欲天天综合久久久无码网中文| 精品四五区| 国产午夜福利专区综合| 国产精品suv一区| 人妻乱仑一区二区三区| 情色大香蕉| 丰满欧美少妇| 一二三四视频中文字幕在线看| 无码视频一区二区| 国产成人91一区二区三区| 亚洲综合贴图91| 国产福利精品最新在线| 91w欧美| 久久久精品一区二区| 五月激情视频| 精品日韩人妻视频| 日欧毛片久久| 日本色色色| 多毛小伙内射老太婆 | 欧美另类综合久久| 999精品久久久久久久| 91网18| 亚洲nv男人的天堂网| 国产久久久久久| 久久人体一区二区| 欧美超碰9798| 国产成人精品亚洲日本| av网站在线观看了| 国产97在线视频| 在线97在线| 日韩精品区二区三区不卡| 99老司机精品视频在线观看| 美女黄站| 精品久久久一本一道| 久久久婷婷| 欧插网站| 超碰av在线| 在线强奷到舒服的无码视频 | 亚洲美腿丝袜香蕉影视欧美成人| 美腿色图| 熟妇熟女一区二三区| 久久久艹艹艹| 区日韩亚洲乱码av电影| 亚洲啪啪性视频| 欧美呦呦性爱| 色网站导航大全| 亚洲性爱成人| 84YTCOM性无码| 精品无码久久久久久久杏吧| 97在线免费视频观看| www.91视频网| 91亚洲黄色网| rion磁力链接| 少妇久久久久久| 国产精品高潮久久久无码| 岛国毛片手机在线观看| 午夜超爽| 超碰超碰95| 91视频综合在线| 天天综合97| 高潮的A片激情扒开一区| 黄色操人| 久久性爱视频| 亚洲日韩av专区无码| 无码精品人妻一区二区三区妖精 | 久操B网| 色拍偷亚洲| 免费a v| av资源在线播放天堂| 殴美日韩m| 丰满人妻-区二区三区| 丰满岳乱妇一区二区三区| 999久久久久久久精| 亚洲不卡一| 探花熟女,姿勢到位,體驗感也到位| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 欧美激情久久久久| J?P?NESEHD熟女熟妇伦| 午夜免费福利视频一区| 91精品国久久久久久无码| 黄片www视频免费| 97人人射| 国产自偷| 欧美精品久久| 国产一区自拍欧美日韩| 天天综合网在线| 69一区二区三区 | 日韩欧亚中文在线| 国产一区二区成人av在线播放| 亚卅熟女乱色| 久久久精| 国产精品自产拍在线观看社区| 国产性爱欧美性爱在线| 久思思热视频在线观看| 躁躁日曰躁2020| 日韩福利综合一区| 久久做97| 免费无码国产精品v片在线观看| 在线 亚洲 网爆 自拍| 欧美大香蕉久| 日本伦理一区二区| AV乱伦专区| 亚洲吊色| 丝袜剧情| 欧美综合中文| 91亚洲在线| 射丝袜高跟鞋99| 美女诱惑久久| 99re不伦| 精品午夜福利导航| caopeng97人妻| 日逼视频日本| 国产97av| 一色网男人的天堂| 五月天婷婷在线看| 是还免费视频1727我| 亚欧国产无码精品在线| 久久久久99999| 又黄又爽在线观看视频| 在线播放成人高清免费视频| 久久少妇人妻| 色色婷婷五月天| 久久 国产 无码| 蜜臀va69| 青青草国产亚洲精品久久| 亚欧无码在线| 女人天堂av在线播放| 国产99999久久精品| 久久精视频美日韩在线视频| 99少妇| 91男女啊啊啊| 一级黄色牲爱A级片| 91蜜桃传媒精品久久久一区二区| 色av中文字| 日韩av乱伦| 九九精品99| 国产精品视频91久久| 97国产精品一区| 亚洲综合贴图91 | 久久成年精品| 五月丁香综合网| 成 人 A V免费视频在线观看| 久草毛片| 超碰97资源大奶| 五月综合视频| 青青免费在线视频一区| 天天干电影| 亚洲日韩乱码中文无码蜜桃臀网站| 中文字幕在线免费观看视频| 国产Aα| 久艾草在线精品视频在线观看| 日本大香蕉综合网| 97色操| 中文字幕成人乱码熟女精品国50 | 欧美丝袜91| 一本大道综合伊人精品热热| 激情五月天网| 日韩一区二区精彩视频| 影音先锋日本一区二区| 国产 日韩 另类 视频一区爱| 超碰在线在公开超碰在线在公开| 亚洲 欧美 中文 日韩超碰| 秋霞影音一区二区三区| 国产精品不卡av免费在线观看| rivers-china.com| 1956日韩精品| 欧美激情五月天| www.五月天| 偷窥自拍亚洲天堂网爆| 综合久久六月久久婷婷| 欧美日韩*字幕一区| 欧美日韩人妻精品一区二区三区| 久久免费精品96| 黄aaaaaaaaaaaaaaaaaa色网站| 制度丝袜99| 欧美色999| 欧美97爱| 久久中出| 最新亚洲黄色免费电影| 精品91| 热热色中文无码| 天天久久| 疯操AV| 日本高清视频在线观看黄已三辽| 日韩/97| 中文字幕av久久爽Av| 精品v1区| 成人五月天色网| 久久久久ab| 91男人天堂网| 国厂麻豆77q4| 色网在线| 狠狠做深爱婷婷久久二区| 精品视频久久区| 黄日韩| 欧美亚洲成人在线一区二区三区| 欧亚日韩三区| 色97综合中文字幕| 日夜精品| 免费观看日本操逼视频| 懂色中文一区二区三区| 亚洲最新a在线观看| 中字乱伦AV| 天天肏美女| 极品色电影院| 欧美日韩一二三| 亚洲97成人在线观看| 国产精品视频一区二区三区八戒| 欧美特大黄一级片片免费| 四色永久成人网站| 九久久九精品视频| 东北女人操比视频| 欧洲精品一级二级精品综合视频综合| 国产精品久久久久久久久久梁医生| 欧州一区二区三区四区| 爱射综合| 97天天操| 色色五月天婷婷| chaopen97久久| av绯色| 玖玖综合.com| 久久夜精品一区二区三区| 韩美日操逼| 亚洲熟妇丝袜在线观看| 欧美色综合网| 五月天婷婷久久| 伦理日韩国产久久| 无码免费在线观看黄色片| 噜噜噜无码AV一级一级久久影院| 国产丰满少妇久久久精品影院| 超碰97久| 久久av一级av少妇av高潮| 伊人久久国产免费观看视频| 中文字幕视频二区| 91啪啪视频| 亚洲天在线| 99久久9| 激情小说亚洲视频| 亚洲图片激情小说| 欧美综合97www| 国产在线视频午夜精华在| 97亚洲综合电影| 欧洲特黄毛片免费看欧洲毛片|