亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

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
返回資訊列表
欧美另类综合久久| 97超碰伊人| 日本狂喷奶水在线播放212| 人妻人久久精品中文字幕| 99综合视频| 秋霞色色影院| 人妻另类| 91色射| 校园春色欧美色图| 青青11操操操操操操操操| 大香蕉免费3| 九九人妻| 久草在| 蜜臀AV一区二区三区激情综合| 免费αⅴ在线观看| 人人摸.人人色| 九九草| 综合色区偷拍| 天躁夜夜躁2021| 女人18精品一区二区三区| 欧美性爱一区| 蜜桃臀 后入 一区 二区 三区 在线| 午夜男人av| 偷拍精品一区二区三区| 老熟女91| 成全动漫视频观看免费下载| 曰韩人妻中文字幕在线| 男人午夜天堂| 国产精品免费久久久久久久久久| 97超碰欧美| 日本不卡一二区| 欧美,日韩,中文,另类| 天天享受天天看| 国产原创精品| 大香蕉日亚洲日本亚大| 久久九操在线观看| 伊人991| 国产乱婷婷精品二区三区| 天天综合色| www.色婷婷| 亚洲日韩精品在线播放| 黄片在线免费在线观看| 新婚人妻扶着粗大强行坐下| av天堂5| A 天堂在线观看视频| 强奸乱伦免费网站| 巨爆乳一区二区爆乳区| 在线播放一级无码视频| 丁香五月天社区| 日本三级久| 欧美|91色综合| 中文字幕啊啊啊在线观看视频| 色婷亚洲五月在线观看| 免费观看欧美日韩操逼视频| 中文字幕老熟妇黄色视频| AA丁香综合激情| 91人妻超碰| 亚洲大色堂| 亚洲涩涩| 天美麻豆黄色录像| 亚欧洲日韩国产精品| 亚洲视频精选| 家庭乱伦麻豆| 家庭乱伦性爱av| 每日更新AV| 99视频内射三四| 美女超碰978| 97在线欧洲| 嗯嗯啊啊操死我| 99蜜桃臀久久久欧美精品网站| 男人的天堂久久狠| 精品免费囯产一区二区三区| 国产传媒日韩| 狠狠色狠狠色狠狠五月| 亚洲成人免费在线| 熟女网站最新| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 国产探花日韩援交| 最新日韩黄片| 国产污视频麻豆传媒一区二区| 日韩中文字幕2020| 日本人妻伦在线中文字幕| 国产福利在线视频网站| 99热在线播放| 伊人四虎综合| 国产多人在线观看视频| 日本一本一区二区三区四区五区欧美日韩中文字幕| 天美欧美国产| 熟妇综合一区二区三区| 大香蕉五月天婷婷| 久久超碰av在线| 五月天伊人网| 亚洲国产欧美中文永久| 一区二区 日韩 欧美 国产 传媒| 国产强奸无码乱伦| 91在线国产后入风骚翘臀美女素人| 情色日播放AV| 啊啊啊在线看| 高潮毛片无遮挡高清免费| 久久精品国产免费观看99| 99无码精品| 天美一区在线| 13小男生GAY自慰脱裤子| 亚洲综合九九| Aa东京男人的天堂| 国产精品一二三区18| 黑人精品成人一区二区三区 | 极品粉嫩一区二区| 四虎在线视频| 久久99午夜精品一区人妻| 北条麻妃99精品青青久久| 极品一区二区三区免费| 性爱1区| 欧美 牲| 涩涩涩综合| 久99久视频精选| 九九九九九九九九九国产精品| 亚洲砖码砖专无区2023| 大香蕉日亚洲日本亚大 | 天天操狠狠日夜夜干超碰撸com视频在线观看| 欧美伦乱爱| 日韩性爱小视频| 天天做天天爱天天爽| 啊啊啊在线看| 日韩欧美字幕亚洲一区二区| 综合色久欲| 操逼啊啊啊91| 搡老女人老91妇女熟女| 亚洲最新a在线观看| 国产亚洲欧洲在线观看| 亚洲中文字幕在线视频一区二区| 蜜桃色色网站视频三区| 日韩15p| 99久久久无码| 黄色大片免费在线| 超碰免费欧美7| 一级日本牲交大片好爽在线看| 日韩中文字幕av在线播放| 日本乱人伦片中文三区| 日本99一区二区| 人妻系列无码专区中文有码| 97chaopengongkai| 在线天堂999| 激情综合网激情综合| JULIA人妻风俗店中出电影| 欧美高清色| 精品四五区| 乱伦日本中文自拍| 欧美天堂超碰97| 亚欧成人综合影院| 一区二区视频在看| 91麻豆一二三区| 国产综合永久精品日韩鬼片| dy888午夜老子影视达达兔| 欧美后进式| aaa亚无码专区| 欧美熟女妇同| 久操精品网| 日韩成人高清一区二区| 一区二区三区无卡视频在线观看| 久久精品亚洲成a人天堂| 麻豆一区二区AV天美| 青青操青娱乐| 干干干天天| 熟妇人妻一二三区免费| 成人熟女视频一区二区三区| 上海一级黄片| 黄色电影在线播放综合网站| 国产精品久久久午夜夜伦鲁鲁| 免费精品99| 操www| 麻豆色约约| 亚洲最大黄网| 国产做?爰片久久毛片?片美国| 久久岛国| 91日产桃蜜| 久久一二区四| 麻豆这里只有精品| 嫩草一区二区在线观看| 91熟女丨91老女人| 91伊人久久在线| 欧洲中文字幕| 蜜臀少妇一区二区| 另类 日韩 熟女| 一区二区中文| 超碰久超碰久| 亚洲综合射| 欧美天天插| 一区二区三区欧美激情| 欧美黑人精品在线播放| 尤物网站91| 亚州精品人妻一二三区| 久久亚码| 麻豆AV96熟妇人妻| 亚洲人在线成线成人| 国产成人精品亚洲日本| 性色av蜜臀av色欲aV| 啊啊啊啊啊啊在线观看| 精品人妻高清麻豆av| 青青青青草av在线观看| 4141514逼喷水三级片| 免费一级视频特黄色大片| 色狠狠 - 百度| 国产成人91一区二区三区| 天美传媒AV在线播放| 激情小说亚洲视频| 亚洲熟女乱综合一区二区三区| 欧美色三级片91| 婷婷五月天av| 99热精品在线观看| 屌色在线97视频| 五月婷丁香| 久久五月综合| 天天淫人人妻日日色| 香蕉婷婷| 中文字暮97| 亚洲高潮少妇| 嗯嗯嗯啊啊啊在线免费观看| 人人澡人人爽人人精品| 男人成人黄色视频在线观看免费下载| 超碰欧美在线欧美| 男人的天堂三级| www. 男人天堂成人在线| 青青草男人天堂| 91日产欧美| 91精品免费| 蜜桃狠狠色伊人亚洲综合 | 后入式999| 美女网站黄页| 久久久久久久| 欧美性爱无码一区二区三区| 国产精品探花视频| 开心激情婷婷| 欧美日韩国产中文精品字幕自在自线,| 九九热最新| 欧美日韩超碰在线| 欧美日韩青操| 天天干人妻视频| 爱爱啊啊啊| 亚洲电影中字一区二区| 中文字幕一区二区日韩网| 日韩精品碰碰| 激情综合五| 极品白嫩福利在线| 中文字幕精品三级久久久| 女人天堂网| 欧美亚洲丝袜人妻制服中文99| 九九九网站| 蜜臀AV秘一区翔田千里| 蜜桃无码AV一区二区| 色五月首页| 歐美一級亂黃99在綫精品| 成人在线视频一区| 日韩本不卡视频在线观看 | 欧美亚洲20p| 少妇色综合| 男人综合网| 女同女同恋久久级三级| 97久久精品亚洲| 黑人天8A∨高清网站| 亚洲区限制级 99| 9Ⅰ超碰| 精品国产91av一区二区三区| 欧美躁死她一区二区| 日日橹狠狠爱欧美超碰| 成人五月天丁香激情综合| 老司机天天操| 男人的天堂亚洲| 超碰97最新人妻| 夜夜夜夜久久久久| 少妇xx精品| 肥臀熟女福利视频一区二区| 久久九九热| 欧美亚洲自拍另类人妻| 久久亚洲影院一区二区| 果冻传媒一区二区三区| 播播亚洲小说亚洲| 91美女在线视频| 日韩精品啪啪啪| 天天激情综合站| 久久精品一区二区三区不卡| 天天情欲宗合网| 东北毛片| 女同亚洲欧美一二三区久久电影| 欧美黑人日韩少妇色情| 日韩中文字幕人妻视频| 91激情综合| 亚洲少妇综合在线播放| 五月天春色激情网| 国产日韩久久| 9+1视频网址| 欧洲自拍第一页| 亚洲国产精品无码AV在线| 丰满翘臀美女影院视频| 成人国产二区三区在线,男女精品。| 日韩av免费一级电影| 男人亚洲91首页在线| 国产熟女自拍| 在线99热| 欧美成人精品一区| 久久伊人网视频一区二区三区| 伊人麻豆传媒| 99自拍B亚洲| 精品一级毛片在线观看| 嗯啊啊啊轻点视频 | 亚洲不卡av在线| 91 丝袜在线播放| 超碰人人乐97| 日韩一级欧美一级国产一级台湾| 亚洲人成色9999精品久久 | 丁香五月激情网| 亚洲毛片久久| 中文字幕丝袜人妻| 眼镜人妻101.com| 日日夜夜草草草| 亚欧视频在线| 亚洲激情深爱文学小说网站| 天天影视综合网欧美精品| 天天综合网~91| 日本亚洲vr欧美不卡高清专区| 成人怡红院| 青青草原人妻| 被男人添B超爽视频| 青青草乱入乱欲视频在线观看| 欧美性爱无码一区二区三区| 日本精品加勒比海一区| 亚码激情| 国产精品自在自拍视频| 香蕉综合网| 极品白嫩福利在线| 欧美亚洲色图另类国产| 大干人妻| 精品久一区免费| 天天激情综合站| 啊啊啊啊好大好硬啊啊啊啊啊 | 60秒免费小视频| 国产小视频91| 国产精品com| 大香蕉宅男伊人| 99色天堂| 在线A日本| 日本二三四区| 九九热在线精品视频| 人人插人人搞人人操| 可免费观看的av毛片中日美韩| 国产精品。| 狠狠色综合网| 狠狠色伊人亚洲综合网站色| 九九九九97| 开心五月婷婷| 国产AV无码AV| 岛国片在线播放| 亚洲美腿丝袜香蕉影视欧美成人| 清清一区二区三区四区不卡视频| 国精精品无码一二三区水多多| 亚洲欧美91| 日韩ab网 | 亚州综合色| 欧美日韩精品青青| 9ⅰ久久久天天| ′ !γ}丶。。久久精品欧美一区二区三区| 尤物网址| 波多野结衣AV无码一区| 亚洲精品97| 五月天AV资源| 精品九九九九九九九九九| 超碰97起碰| 亚洲成人一区二区精品| 国产91亚洲精品一区二区三区| 91痴汉| 青青青青草av在线观看| 夜夜一区二区| 色色五月婷婷| 欧美综合区| 懂色av色欲av蜜臀av| 91处女在线观看| 色欧美在线| 蜜桃精品一区二区三区久在线| 江都AV在线| 国产成人亚洲精品自产在线 | 老鸭窝成人| 国产日韩欧美| 色香伊人| 综合性视频99| 嗯嗯啊啊日韩精品| 九九人妻| 亚洲少妇自拍中文字幕懂色| 久久久久久久久久久久欧美日| 人妻人人澡人人爽人人| 75大香蕉| 中文字幕-区二区三区四区视频中国| 亚洲国产精品乱码在线观看| 亚州色图第三区| 狠狠色综合网| 亚州伊人色综台| 久久婷婷五月天| 免费精品99| 欧美色棕合| 偷拍欧美综合| 国产婷婷一区| 色制服丝袜夫妻av一区| 99福利社| 亚洲综合嫩| 后入国产| 亚洲欧美国产中文视频| 无套内射人妻在线播放| 青青伊人这里只有精品| 国产树林里野战在线看| 国产亚洲99久久精品| 99精品久久| 大香交伊人网| 色婷婷成人综合| 午夜精品久久久久久久99热影院| 日本男人插女人的逼黄色| 1024手机看片欧美日韩| 97国产中文| 成人性交免费视频| 92性色国产午夜福利在线661| 又粗又长又爽在线观看| 综合色99| 欧美狠狠弄| 天天拍天| 91在线视频国产网站| 午夜.DJ高清在线观看免费7| 国产做?爰片久久毛片?片美国| 91日本在线观看| 91人妻视频在线| 97超碰久久色| 无码精品久久久久久亚洲| 色欲无码人妻日韩欧美精品| 日本天天操| 男生女生啊啊啊啊| 超碰美国| 日韩色| 丰满人妻一区二区三区免费,| 成人综合网 欧美| 色色青青久久| 久久久久久人妻一区精品色欧美| 9l视频自拍9l九色成人| 久久久18禁| 综合欧美色图| 青青久久手机线视频| 五月丁香久久| 亚洲久草AV色图| 天天日天天干天天色| 日本亚洲熟女视频| 加勒比av中文| 精品人妻一二三| 狠狠色噜噜狠狠狠狠狠色综合久久| 日本在线一二 | 久久伊人最新网址视频| 婷婷五月天AV| 丝袜色综合| 欧美伊人久久综合网| 九九这里只有精品| 97超碰中文字幕| 成人五级久久| 91丝袜在线观看视频在线观看| 成人情色综合网| 国产绿奴视频在线观看| 久久综合精品一区二区三区| 91色婷婷综合久久中文字幕二区| 久久性爱大全| 久久 久久国内精品亚洲| 国产亚洲精品一区二区三区| 麻豆 欧美 日韩| 超碰天天去日穴| 国产真实野战在线视频| 日本中文字幕一区| 国产一进一出视频网站| 欧美性爱一区| 国产精品 久久久精品一牛| 亚洲……91| 久久久久久久唑| 九九成人| 97干色| 熟妇女人妻呻吟久久AV| 伊人影院日本| 天天综合有色网| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 五月天黄色激情视频| 天天干人妻| 思思热国产在线视频| 亚爽爽爽爽爽爽爽爽| 黄页av| 欧美熟爽综合| 日本一级特级毛片视频| 亚洲情色一区三区| 黑人美精品 A片| 久偷拍欧美日韩三区| 黄色AAAAA欧美| 九九九九九九九| 久久老子无码午夜伦不卡| 亚洲成人帖图| 神马精品视频| 黄片qw| 走光一区92下载| 国产午夜无码片在线观看影视 | 国产精品久久久久无码AV会牛| 大香蕉92| Julia在线播放亚洲久久| 青青草福利视频| 青青草吊丝| 萌白酱自拍视频| 欧美第五页| 欧美性爱97超碰| 国产乱色国产精品免费视| 国产外初女出血视频| 屌色在线97视频| 五十路六十路素人熟女| 美女上床网站| 色老汉色| 99这里只有精品| 一级日本牲交大片好爽在线看| 欧洲亚洲人人爽爽视频| 校园春色制服丝袜中文字亚洲| 一级做a爰片性色毛片久久| Aa东京男人的天堂| 久久女人一区二区三区| 麻豆国产视频精品观看| 清纯唯美综合亚洲| xxx亚洲午夜天堂| 精品在线观看视频在线| 看全色黄大色大片免费视频| 老女人老91妇女老热女| 97中文超碰| 约操熟妇| 日韩性爱小视频| 男人天堂无码| 无码视频一区二区| 国产亚洲 中文欧美久久| 免费精品中文字幕| 日本αv| 97久久超碰日韩精品| 五十路熟女工口 | 免费视频无码| 亚洲最大的综合性av| 精品视频一区二区| 操一对老熟妇爽上天视频| 亚洲综合图色在线| 艾草av| 色五月婷婷网| 操人91| 郑州宾馆老熟女露脸啪啪| 秋霞怕怕片| 日本 情色 1区| 夜夜夜夜爽| 欧美色图下一页| 岛国小电影| 亚州色交| 五月婷婷影院| 九九色热| 翔田千里av一区二区三区| 日本成人A片免费看| 精品免费视频国产一区| 欧美综合另类| 久久超碰97| 日韩9区| AV女优男人的天堂| 久操免费观看| 亚洲精品人体| 亚洲欧美日韩偷拍色图| 精品九九九九九| 97超碰超碰| 青青草国产欧美非洲黑人| 加勒比综合88| 综合夜夜| 国产黄色视频久久| 91色人妻| 国产传媒操逼视频| 国产精品无码在线| 这里都是精品在线观看| 99色在线| 国产久久久9999| 中文字幕在在线观看网站| 午夜福利久久久噜久噜久久综合| 怡红院怡春院| 91强在线播放| 久久噜噜噜精品国产亚洲综合| 97精品人妻一二三四| 综合五月天| 青青草国产欧美非洲黑人| 成人毛片免费| 亚洲一级性爱视频免费看| 口爆吞精在线观看| 爱射综合| 欧美成人精品一区二区三区| 天天看高清麻豆| 青青操视频在线| 好涩综合| 操操吧亚洲乱伦视频| 囯产操逼片| 120分钟婬片免费看| 日本 欧美 亚中文字幕| 蜜桃不卡一区二区| 天天综合网~91| 久久精品一区二区一8| 八戒无码国产午夜福利| 搡老熟女老女人老熟妇免费视频| 啊啊啊好爽快点啊啊啊嗯嗯| 欧美日韩国产电影| 密臀在线视频| 国产精品爱欲| 亚洲操操操| 欧美视频第二页| 麻豆色99999| 久草精品国产99| 牛黄色久午久| 日韩啪啪啪视频| 国产91美女视频| 99久久久无码精品国产人| 人人操人人狠狠操| 妇女视频网站| 伊人久久AV诱惑悠悠| 一区二区三区成人高清视频| 综合色图亚洲欧美| 国产熟码AV| 日韩强奸av| 97天堂| 亚洲欲| w w w.久久精品| 90后性网国产欧美| 99re这里| 午夜福利国产欧美日韩夜夜| 婷婷久久网| 欧美在线 亚洲| 五月丁香黄色网| 依人大香蕉| julia ann久久| 日本熟女免费視颖| 婷婷综合在线观看| 91色香| 六十路日本| 老司机午夜福利视频一区二区| 91中出| 九九色色| 久久粉色| 色婷婷久久| 在线电影亚洲色图| 欧美成人AⅤ大片在线观看| 蜜臀AV一区二区三区激情综合| 97久久久网站| 国产成人网址| 日日躁夜夜躁狠狠躁超爽| 无遮挡猛进视频免费无限观看| 日韩丝袜高跟制服在线观看| 亚洲av综合伊人久久| 色性荡荡荡荡视频| 91精品人| 欧美欲色| 日韩无码精品综合久久| 宗合情欲网| 熟女激情综合网| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 成人精品久久久午夜福利| 日韩在线视频1234| 国产91福利小视频在线观看| 亚洲免费精品一区| 99久久亚洲精品无码毛片潘甜甜| 伊人五月天青青草婷婷| 插入逼91| 四虎视频在线观看| 欧美天天干| 久久美国毛片| 国产三级电影免费观看| 97超级久久| 国产丝袜视频| 永久电影三级在线观看| 久久九七| 永久免费发布性爱网| 欧美在线|亚洲| 亚洲高清在线| 中文字幕欧美日韩三级| 日韩99神马视频播放| 家庭乱伦国产| 操逼无毒无码免费视频| 九九热AV| 日本黄大片在线观看视频| 亚洲视频一二区| 日韩人成网站在线播放| 风韵犹存大大大大香蕉 | 啊啊啊免费| 97 超碰 人人做 人人爱| 99精品欧美一区二区三区桃色| 久久精品男人的天堂| 99自拍视频| 国产无码三级视频在线观看| 欧洲自拍色图gif在线| www.色综合| 国产精品白领在线观看| 学生妹天天看| 天天色综合图片| 成人性爱av| 天天躁日日躁狠狠狠躁| 午夜福利久久久噜久噜久久综合| 日韩久久.一级黄色片| 老司机香蕉久久久久| 久久av网| 九九碰九九爱97| 免费αV在线视频| 中文字幕av片| 91久久久视| 开心激情婷婷| 日本操逼二区| 日韩综合无码一区久久92| 亚洲熟女乱色一区二区三区久久久| 久久九九99| 亚洲精品xxx| 99精品人妻| 超碰在线综合97| 超碰97色色| 亚洲欧洲偷拍一区| 中文自拍欧美影视| 啪啪啪东京| 亚洲男人电影天堂| 97在线公开视频| 国产一区二区三区,在线观看观看| 长长久久88视频| 黄片直播三级黄片两女一男| 久久欲| 久久精品熟妇丰满人妻99| 精人妻无码一区二区三区伊人直播 | 啊啊啊好大好湿| 亚洲AV免费在线观看| 九九热AV| 国产欧美亚洲精品a第2页| 久久性爱精品一区| 激情五月天中文字幕色| AV色女综合| 天天热精品| 91天美传媒在线观看| 动漫片子网站3黄| 久久久久成人蜜桃精品| 丁香五月久久| 免費黃色視頻觀看一| www.黄色在线| 亚洲91在线播放影院| 国产精品一二三区18| 欧美91精品国产自产| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 熟妇精品juliaannAV| 91N五十路| www.欧精品| 你操综合| 亚洲情色1区| 久久久久久久久久久人妻| 美女尤物福利视频| 熟妇熟女亚洲天堂网| 天天流夜夜操| 青青11操操操操操操操操| 免费看毛片操穴| 欧插网站| 97色爱| 超碰 av 女人天堂| 中文字幕女同在线| 亚州高清av| 亚州精品人妻一二三区| 一卡二卡三卡| 超碰九7免费| 久久精品一区二区一8| 国内精品嫩模A∨私拍小视频| 亚欧免费观看视频| 青青免费在线视频一区| 秋霞成人一级在线观看| 亚洲成人一区二区精品| 99色天堂| 素人美腿视频网站| 美腿丝袜高跟网免费视频免费视频| 麻豆性爱视频在线播放| 91男人天堂网| 色综合大香蕉| 免费操逼91| 黄色片一区二区三区四区五区 | 97欧美资源| 91少妇| 欧美日韩亚洲一区二区在线观看| 久久精品国产亚洲AV片多多 | 美女淫穴| 久久精品91| 草草草草视频| 日本熟女免费視颖| 日韩精品中文字幕二区| 久操B网| 国内97干免费看| 男人的天堂Va| 日本高清视频xxxx| 99激情视频| 无码人妻丰满熟妇奶水区毛片| 国产久久久久影院老熟女| 婷婷国产精品一区二区| 久久久久久网址| 国产精品香蕉热久久新品| 人人乐大香蕉| 国产女人9999| 日本人妻最新在线中| 操逼操网| 欧美在线伊人色| 成人精品水蜜桃久久久久久久| 久草新在线| 国产成人手机视频激情| 大香蕉碰| AV天黑人| 人人 操人人 操人人| 天天干,天天日| 久草精品一区| 男女性无套 免费九一| 欧美性爱精品一区二区| 91成人国产综合久久精品蜜月| 嗯嗯嗯啊啊在线观看| 在线有码中文字幕| 超91综合网| 玖玖综合视频| 天天综合网日韩7799| 日本在线不卡123| 国产后入式在线观看| 亚洲欧美在线观看无码| 女同在线视频一区| 精品少妇高潮久久| 国产探花精品在线| 曰本精品久久久| 99re在线| 熟女精品一区二区三区| 国产丝袜高跟美女av免费观看| 欧美熟妇成人一区二区| 久久精品人体AV| 偷拍亚洲视频一区二区三区四区| 黄片视频,下载| 99国产在线绯色一区| 午夜精品久久久久久久久久久久久 | 欧美v亚洲v日韩v最新在线二区 | 午夜成人爽爽爽爽A片李冰冰| 自偷自拍的亚洲视频| 欧美91久久久久| 2018天天干在线视频| 欧美少妇第一页| 国产精品人妻免费精品| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美国产欧美在线观看| 麻豆伊人网| 亚洲h片在线免费观看| 久久水蜜臀亚洲AV无码精品| 91欧洲国产成人久久精品网站| 国模91| 欧 美 自 拍 偷 拍| 91久久午夜无码鲁丝片久久人妻| 中文字幕丰满人妻日本| 后入内射蜜桃臀| 日韩在线国产字幕| 日本九九久久99播| 伊人网免费视频| 欧亚久久偷拍视频| 亚洲av综合色区图片亚洲| 四虎免费看黄| 精品人妻av在线播放| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 欧美色图人妻| 日韩成人大片一区二区| 超碰4A| 精品一区二区啪啪啪| 中文字幕后石码三区四区| 天天肏美女| 亚洲日韩精品久久久久一区壹牛 | 99人妻| 国产超碰在线一区| 伦伦成年午夜免费视频| 色婷婷一区二区三区久久午夜成人不| 自拍偷拍2025在线观看| 欧洲亚洲人妻无码高清久久三区四区| 狠狠狠狠狠狠| 欧洲黄色网| 超碰日韩美妻| 色久综合| 国产无码精品高清| 99色在线| 九九精品美女高溯喷水| 91人妻最真实刺激绿帽| WWW美腿丝袜香蕉中文| 丰满人妻一区二区三区| av爱爱爱| 综合网亚洲1| 男人兔费天堂| 尤物网址| 国产又粗又长视频| 亚洲三级网址久久最新| 色青青久久影视| 少妇被c 黄 免费观看| 少妇色综合| 天天添天天干电影| 欧亚乱色熟女一区二区| 啊啊啊啊网站| 老鸭窝日丰县女人| 有码人妻系列| 亚洲色诱惑| 尤物视频一区| 欧美 亚洲 第一页| 久久偷偷色综合蜜桃| 超碰久久中文| 日本韩欧美在线播放a| 国产无码精品久久久久久| 亚洲人久久久网| 97人肏| 免费一级毛片在线视频观看| 国产精品无码成人精品| 91国产丝袜白虎| 妇人噜噜| 在线啊啊啊啊| 色狠狠色| 精品v日韩欧美国产| 国产在线视频午夜精华在| 日本国产二线女色| 国产精品久久久777| 美女黄色一级A视频| 黄色小视频日本txt| 99亚洲国产精品色一区二区三区| 99精品无码| 欧美日韩国产人人| 啊啊啊啊啊啊好湿好爽视频| www.婷婷六月天| 激情啪啪拍91| 一本一道波多野毛片中文在线| 伊人影院日本| 欧洲综合色图| 久久精品电影在线| 五十路熟女,国产欧美精品区一区二区三区| 桃色六月天| 久久久久久性爱片| 大香蕉免费中文| 丁香五月久久| 爽 好舒服 无码刺激久久| 一级黄色视频网| 国产多人在线观看视频| 2024年最新色情网站在线观看| 国产精品白丝www| 久久宗合97| 欧美亚洲清纯| 日韩电影免费网站麻豆视频| 龙兴卡官方查询| 亚洲成人色情五月天丁香花| 欧美图片色综合| 亚洲AO在线| 暖暖精品二区三区观看| 天天透伊人| 日韩97视频!在线| 成人AV素股で擦久久| 亚洲图片欧美91N| 国产欧美伊人| 黄色大片一区二区密桃丝袜| 欧美熟爽综合| 日本不卡三级网在线播放| 顶级少妇BT天堂| 欧美se亚洲| 中国小夫妻勾搭露脸淫荡对白 | 国产又黄又粗的视频| 亚洲另类小说卡通动漫| 香蕉久久AⅤ...| 精品一区二区综合熟妇| 亚洲 国产 精品一区| 午夜福利免费精品视频| 亚洲欧洲国产综合av| 超碰在线成人| 96精品在线| 色好看av| 日日噜噜夜夜久久亚洲一区二区 | 呦女网站| 九t超碰| 日韩精品在线视频,日韩精品……| 亚欧高清| 奇米狠999| 99热啪啪| 欧美亚综合色图| 91欧美综合在线| 久久久久女教师免费一区| 久草加勒比一区在线| 人妻一区二区三区视频| h无码动漫在线观看| 大香蕉av在线| 九月AV| 色综合1991| 风月影院十八禁| 黄色电影在线播放综合网站| 凸凹视频在线观看| 男人的天堂网免费| 狠综合网| 97欧美日韩综合| 日韩一级欧美一级国产一级台湾 | 试看福利| 亚洲图片91| 欧美偷拍区| 亚洲欧美日韩综合在线尤物 | 乱伦日本中文自拍| 亚洲AV无码黄色强奸| 又黄又爽在线观看视频| 青娱乐手机日韩在线视频| 亚洲欧美综合网| 蜜乳AV.COM| 激情六月婷婷| 亚洲男人的天堂网| 日夜伊人网| 美女一区二区国产精品| 九九九九九九亚洲| 亚州,欧美在线| 人妻献身系列第54部| 99欧美| 久久久久国产| 色99999| 欧美中出1| 久久久久久久久久久999| 超碰99在线| 无码精品蜜桃一区二区三区ww| 香一区二区三区| 强乱老妇中文字幕| 激情网色| 热久久九九热| 啊啊啊啊啊啊在线观看| 天天躁日日躁AAA片李宗瑞| 亚洲91网。| 久久人| 亚洲综合成人网| 操淫穴亚洲五月丁香 | 曰韩精品视频一区二区| 久久本道| 色97干| 亚洲av乱伦色图网站| 中出后入| 日韩性爱视频在线免费观看| 狠狠狠一区二区三区| 伊人性在线视频| 久久高清欧美国产| 亚洲精品蜜桃久久久久久久| 搡老熟女免费视频| caopeng97| 久久男人的天堂| 天天欧美欧美亚洲网| 欧美天堂在线| 丁香五月激情啪啪| 超碰人人干天天射| 天天干人妇| 97在线观看免费| 免费人成?大片在线播放| 日韩精品国模| 亚洲一卡2卡3卡4卡乱码网站| 国产精品电影推荐| 强奸乱伦Av网| 9997se| 十八禁视频网站| 97国产|免费| 久操操| 91美女网站| 快点操死我| 日韩黄色av中文字幕| 亚洲污一污二| 人妻人人做人人澡人人爽欧美一区| 亚洲素人网| 爽 好舒服 无码刺激久久| 青青草在线视频美女| 桃花色涩综合影院| 亚洲久9| 97青青操视频| 性爱综合一区二区| 亚洲熟女乱综合一区二区三区 | 呦女网站| 成人AV在线电影| 试看60秒 爽| 亚洲五区熟女| 欧美性爱日韩性爱| 舔人妻中文免费视频| www.色婷婷.com| 久久大黄片| 97超碰亚洲| 国产成人无码高清| 欧美色院| 有码色中文字幕在线观看| 人妻 丝袜美腿 中文字幕| 日夜尻逼网| 成人五月香网在线| 丁香九月 婷婷| 综合色久欲| 久久久久精| 国产对白刺激视频| 99视频自拍区| 色综合中文字幕不卡| 天天摸夜夜添无码小视频| 伊人宅男大香蕉| 日韩久久超碰色| 免费在线观看国内色片网站网址| 日韩欧美女求操每天更新| 欧美九九99久久精品| 免费在线黄片视频| 国产精品夜夜| 玖玖爱一区在线| 婷色五月天| 国产精品黄色三级av| 极品人妻少妇综合| 性色国产东北露脸精品视频| 人妻少妇av在线观看| 国产精品点击进入在线影院高清 | 亚洲欧洲日韩国产自在线| 超碰九7免费| 久久久久久久六六| 久久久999网站| 女人午夜视频777| 天堂69亚洲精品中文字| 色九九九九九九| 曰本熟女视频| 中文字幕在线观看丝袜| 欧美 日韩 亚洲 春色| 九久精品| 中日992视频| 国产亚洲色婷婷99精品91| 激情五月天综合网| 老司机老司机午夜影院| 一级性爱网| 久久久久久久久久久久97| 六月婷婷一区二区三区| 91亚州日韩高清| 我要看免费韩日黄片| 自拍偷拍亚洲熟女妇人精品| 国产三级片在线观看| 区自美91| 一级黄碟在线看| 麻豆久久久久久久久丝袜| 国产亚洲在线| 亚洲操逼视频网站| 国产自产自拍| 欧美一区二区一级岛国大片| 超碰九区| 日韩一卡二卡三卡| 密臀国产在线| 亭亭在线资源| 国产乱码精品久久久久久| 蜜桃中文字日产乱幕4区| 熟妇在线视频一区二区| 国产精品一区二区黄片| 国产成年免费大片黄在线观看| 天堂v无码免费视频| 香蕉综合网| 天天干18禁| 色综合大香蕉| 78m啪啪啪| 久久久一区二区三区麻豆| 97在线免费观看视频| www.狠狠干.coom| 无码99| 激情五月婷婷| 激情婷婷| 五月大香蕉| 天天干人妇| 国产一区二区三区影片| 岛园激情| 牛牛aV| 少妇高潮特黄A片| 国产一区二区精品久久99| 亚洲三区视频| 亚洲精品国产无码高清| 秋霞怕怕片| 伊人热综合| 久久伊人亚洲AV无码网站| 99久国产精品午夜性色福利| 欧美亚洲韩国视频十五区|