久久亚洲成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
返回資訊列表
秋霞免费AV| 日韩噜噜69| 天天射夜夜| 日韩成人无码| 婷婷导航| 欧美韩日精品99综合| 26UUU欧美激情一区二区| 天美AV片| 欧美狠狠| 最新中文字幕av| 91一区二匹| 久久久婷婷| 亚洲久草AV色图| 国产一区二区精品久久99| 伊人骚琪琪亚洲天堂网站| 日日干夜夜干| 92一区二区| 免费中文在线| 久9爱精品| 视频在线中文字幕| 国产夫妻一区二区| 最新一二三区视频| 久久系列| 操人妻丝袜高跟| www亚洲欧美| 激情五月天视频| 亚洲色阁| 久久啊啊| 国产多人在线观看视频| 五月天色电影| 日人妻视频91| 久久青娱乐| 欧美亚州手机在线| 亚洲欧洲中文日韩女优乱码| 日日黄色三级网站| av一区二区三区 中文| 国产成人啪一区二区| 亚洲av影院在线观看| 欧亚韩国999| 熟妇熟女亚洲天堂网| 亚洲色图尤物视频| 欧美另类丝袜熟女| 亚洲欧美九九九| 青青操狠狠撩| 麻豆视频一区二区| 亚洲国产精品久久久男人的天堂| 国产精品呦一区二区三区| 欧美男人亚洲天堂| 亚洲婷婷五月天| 乱伦一二三区| 9久9久| 亚洲综合春色| 久久性爱网站| 日本国产欧美一区三区二区| 欧美在线综合| 久久久久骚| 精品人妻一区二区三区视频在线| 在线中文字幕视频| 亚洲高清无码AAA久久久精品| 激情五月天综合网| 偷拍综合亚洲| 玖玖97综合| 超碰免费97| 青青草日韩免费观看高清在线| www久久99| 欧美色亚洲| 国产精品suv一区| 久久一级无码精品毛片6| 一线黄色免费性爱片| 黄色网址在线免费观看| 五月天偷拍| 日本丝袜美腿人妻九九| 精品人妻伦一区二区三区久久| 九久久精品| 好爽视频在线观看视频| 日韩乱伦AⅤ| 欧美国产日韩清纯唯美| 可以在线观看的黄色网址| 四虎影视欧美| 中文字幕一区二区三区四五区| 色狠狠综合噜一二三区| 亚洲色图久久成人| 色婷婷久久| 欧美日本中字另类在线| 国产25页| 爱爱60秒免费视频| 九九色影院| 久久久久久久伊人精品| 亚洲无码电影久久久| 国产日韩美女小穴视频网站不卡| 免费成人在线熟妇网| 97操97色| 国产欧美日韩女同性恋ww喷水精品| 亚洲 一区二区 自拍| 超碰午夜| 国内伊人久久久久久网站视频| 情色五月天就去干| 福利操逼| se吧提供国产乱老熟视频胖女人| 久热这里| 一区二区亚州激情久婷婷欧美 | 超碰在线观看av不卡| 国产JDAV无码视频在线观看| 日日夜夜精品| 6080YYY午夜理论片在线观看| 亚洲欧美首页| 国产高清自拍| 国产探花日韩援交| 亚洲日韩视频二区| 欧美午夜视频免费观看| 欧美一区二区三区互相| se01国产在线视频| 久久九九国产精品| 丁香九月激情啪| 啊啊啊不要嗯嗯在线观看| 欧美夜夜骑视频| 九一综合网| 久久大精品乱码视频人妻熟女| 97se综合网| 2017超碰| AV一起草在线| 国产极品久久久| 97爱综合| 9久精品视频在线观看| 热久久91婷婷| 情色五月天久久久| 熟妇高潮一区二| oumeizonghese,www| 岛国999| 久久AV色| 色999亚洲人成色| 一级A片女人高潮叫床| 国产美女自拍AV| 久久综合国产精品国产| 99综合网| 中文字幕后石码三区四区| 开心激情婷婷| 99色网| 国产亚洲女v在线观看| 色哟哟AⅤ| 国产精品亚洲天堂网址| 啊啊啊好爽快点啊啊啊嗯嗯| 日本性感人妻91| 久草国产在线视频| 女优视频第10页| ss久久| 婷婷情色五月天| 国产乱人妻精品入口| 九九九只有精品| 九九九免费视频| 久久久99免费| 99热免费| 麻豆a'v电影| 舔人妻中文免费视频| 亚洲男人的天堂va亚洲男人社| 深夜福利黄片| 欧美99热| jiujiujiujingpin| 男人午夜天堂| 强奸乱伦av电影| 欧美成人9797| 四虎精品一区| 亚洲 小说 欧美 激情 另类| 91色综合激情| 大鸡巴久久| 人人摸.人人色| 亚洲91极品| 97网址97| 精品成人无码| 亚洲天堂,男人| 麻豆 亚洲 97| 超碰97人人cao| 99re视频在线观看这里只有精品| 60秒免费视频| 思思热在线视频在线| 中日韩欧美精品无码AⅤ一区二区| 久久这里都是精品| 欧美激情内射| 大香蕉综合| 97在线精品观看视频| 激情五月婷婷| 操熟女91| 色色婷| 亚洲熟女一区| 天天看精品动漫视频一区| 色色综合网站| 97在线日韩中文字幕| 日韩中文字幕人妻视频| 欧美日本天堂| 亚洲综合夜色| 色色色色色色色色色色色色色色综合 | 在线天堂资源亚洲| 成人日本视频人妻在线| 国产精品大屁股999| 日韩在线一区高清在线| 青青草白白色| 午夜无遮挡男女啪啪视频| 久久9久久| 中文字幕欧洲有码| 日韩成人高清一区二区| 欧美乱色| 欧美伊人电影| 激情综合五| 大香蕉92| 99热亚洲| 丰满人妻一区二区三区免费,| 亚洲激情在线一区二区| 一级A片女人高潮叫床| 色欲av一区二区三区蜜芽| 91岛国动作片| 亚洲熟女中文字幕在线| 99精品无码| 午夜男女爽爽爽在线视频| 色呦色呦色精品| 丁香五月综合| 色亚洲欧美| 麻豆久久久一区二区| 欧美性性性| 爱射综合| 影音先锋新男人| 日本一区99| 人人操人人插 - 百度 - 百度| 偷拍欧美激情| 青青草日本中文字幕| 琪琪精品免费一区二区三区| 天天综合网合集91| 这里有精品| 亚洲欧美另类图片| 久久久熟妇熟女国产| 为用户提供免费看黄网址在线观看| 久久久久亚洲精品| 久久久草成人网站久久久草成人久久久草久久久 | 亚洲成人av电影在线| 亚洲综合 欧美| 日本狠狠干| 最新亚洲黄色免费电影| 超碰9 7女人| 伊人久久婷婷| 亚洲性爱电影| 色五月av| 91丝袜在线视频| 日本道久久综合色色| 玖玖久久久| 91 国产丝袜在线放观看| 日韩99精品视频综合区| 久久久久久久久久久久色网| 99久久综合| 婷婷久草| 国产第25页在线观看| 人妻少妇无码| 亚洲男人的天堂AV| 五月婷婷六月激情| 家庭乱伦国产| 精品国产乱码久久久久久口爆网站 | 精久久久| 午夜精品五区| 欧美顶级黄色大片免费| 日韩射精| 青青草玖玖爱| 日本 免费 一区二区三区 久久香蕉| 十八禁的黄污污免费网站| 国产丁香精品露脸视频| 800zy一区二区| 色婷婷狠狠| 国产91啪| 国产无码精品无码| 老熟妇91| AV色五月| 久久只有精品一区二区三区| 激情五月婷| 人妻精品一区二区全免费| 日本理论在线| 国产熟女免费观看久久| 老熟女搡BBBB搡BBBB视频| 中国91AV| 人妻娇喘 激情视频| 91爱看| 日韩啪啪啪啪啪| 日韩av一级黄片| 情趣丝袜无码操逼视频| 91精品人妻一区二区三区蜜桃| 蜜臀一二三| 热久久九九热| 96精品久久久久中文字幕| 色婷婷基地| 欧美性生活综合| 一级性爱网| 久久婷婷亚洲| 亚洲综合第一页| 中文字幕jul-617人妻熟女| 九九视频黄色片| 农村妇女精品一二区| 在线五区| 一区二区三区无卡视频在线观看| 爱爱动态120秒| 免费黄色片子| 五月色网| 九九热AV| 98色网| 国产日韩欧美三级片| 国产亲戚伦亲在线| 日本性爱少妇| 无码自拍SM| 玖玖爱免费观看视频| 在线观看色视频| 人妻系列无码专区中文有码| 欧美强奸一区二区诱惑| 色婷亚洲五月在线观看| 日本岛国黄色网址| 中文字幕五区| 啊啊啊啊啊啊好湿好爽视频| 日韩成人在线性爱视频| 吖在线不卡一区二区国产剧情| 午夜福利一区二区影院| 国产成年精品高清在线观看91| 综合激情二| 小日子操bb在线看| 国产超碰| 欧美性猛交美女自慰91| 91人人爽人人爽| 澳门成人网站久国产日韩| 抽查国产福利主播| 国产性爱欧美性爱在线| 国产精品一区二区麻豆| 欧美一级在线观看成人| 免费av在线播放二区| 天天操天天射天天日| 日本视频一区二区三区| 综合色图区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 精品无吗久久| 91l欧美在线| 久久少妇人妻| 九九九九九九九九九国产精品| 日少妇视频| 草莓精品视频在线免费观看| 久热大香蕉| 色97| 国产视频小说| 亚洲中文丝袜美腿诱惑字幕| 亚欧高清| 激情AV| 久久久久久久少妇| 中文字幕第23区| 超碰97男女| 中文?日韩?免费?精品| 99久久久无码精品国产人| 综合色色网| 天天做天天爱天天爽AV| 久久久久女教师免费一区| 亚洲日韩人妻中文字幕一区| 激情五月天丁香社区| 色女女女导航| 精品日日人妻| 91在线超高颜值国产| 人妻22p| 97公开久久| 亚洲97精品| 一级片在线观看高清无码| 91丨九色丨东北熟女| 91精品人妻偷情| 国产乱伦性爱AV| 国产精品午夜成人福利| 99999国产精品| 404操逼福利视频| 亚洲18禁| 中文字幕一区二区三区人妻不卡 | 日本淫穴在线| 人人操欧美风骚| 中文字幕av亚洲在线| 大香蕉99热| 东京热毛片177b2viP| 福利色色| 9999久久久久| 日本1区2区不卡视频| 男人夜色天堂ss| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 欧美狠狠弄| 久久久久久九九九九九 | 性无码专区2020| 伊人久久88国产女| 亚洲色图日韩丝袜制服一区二区五月在线| 精品毛片av一区二区| 亚洲综合色男人网| 色悠久| 久久综合九九| 国产一区二区在线看| 国产精品亚洲一级av第二区| 操迟操逼在巾线Fre看| 特级大荫道BBwBBwBBW| 97在线免费看视频| 欧美综合站| 亚洲欧美另类图片| 丁香六月婷婷久久综合| 国产视频大全| 欧美黄片视频在线观看免费 | 嗯嗯嗯啊啊啊在线免费观看| 香蕉精品二区二区| 人人操人人大香蕉| 大逼色网站| 色综合久久88色综合久久天天| 男人久久精品| 性爱免费视频成人| 天天色踪合| 女人被男人桶爽视频网站| www.99热在线只有精品| 人人 操人人 操人人| 香一区二区三区| 狠狠爱大香蕉| 116美女午夜| 国产成人91一区二区三区| 欧美日韩丝袜 | 久9久精品视频| 国产精品国产自产高清AV| 久久久久久九九九九-美女久久久久久久-成人AV| av三级电影在线播放| 懂色AV一区二区三区| 欧美一级A一级a爱片久久| 亚洲色人妻综合| 91欧洲国产成人久久精品网站| 久久女人视频| 日韩操逼性鲍| 我想要啊 啊 啊| 动漫爆乳3D奶水一区在线观看 | 韩日男人的天堂| 尹人免费观看视频在线| 午夜福利视频在线一区| 精品丰满熟妇人妻一区| 日韩精品99999| 超碰97精品| 欧美少妇性乱| 日日碰狠狠添天天爽超| 精品人妻少妇| 99青青草国产视频| 五月综合婷婷久久网站| 亚洲人综合19| A啊啊在线观看| 成人免费福利在线观看| 欧美高清色| 91网亚洲| 丁香五月天堂网| 精品人妻一二三| 亚洲视频一二区| 人人爱人人操人人性| 久久久96| 亚州欧美综合| 天天综合网~69| 五码视频在线观看| 欧美综合色图片| 四虎影库国产精品免费| 国产操逼逼网| 波多野42部激情无码喷潮| 91 丝袜在线观看| 天天爽爽爽爽| 唐山老熟妇露脸啪啪叫| 91久久青青草原精品| 97bbn| 加勒比大香蕉视频在线| 国产av美女被艹的乱叫| 国产毛片毛片4p懂色| 豆1无夜无码| 美女啊啊啊啊pc| 国产精品熟女丝袜一区二区| 97人人爱人人做人人乐| 丁香五月综合| 日韩人妻 中文字幕| 97欧美视频| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 另类天堂| 太久视频| 天天躁日日躁AAAAXXXX国产| 97久久久久| 91 丝袜在线观看| 91艹逼精品| 麻豆天美国美国产AV| 日韩亚洲中文字幕在线| 亚洲日韩在线a不卡99精品 | 污啪啪啪视频| A久久| 黄色性爱网网| av绯色| 性饥渴少妇av无码毛片| 大肥女高潮bbwbbwhd视频| 久久99干一本高清| 精品白丝一区| 欧美亚洲天天| 少妇九九九九| 人妻精品一区一区三区蜜桃91| 中文字幕女同在线| 69人妻精品丰满熟女区| 日本天堂网| 少妇被玩视频二三区| 免费视频无码| 日韩精品区二区三区不卡| 国产 v乱码一区二| 天天操熟妇| 日韩欧美天堂| 久久网亚洲| aV中文麻| 99少妇| 亚州,欧美在线| 久久99久久99精品天美传媒棢·纸:.| 天天天堂影视日韩亚洲91| 欧美熟女妇同| 劲爆欧美人妖三区91| 亚洲 另类 丝袜 自拍 动漫| 日韩精品9区| 欧美少妇性乱| 欧美激情亚洲情色| 破处bbq| 美女91网| 日韩熟女精一区二区三区不卡| 殴美色网| 亚洲欧美另类激情小说| 久久久新亚洲AV| 免费精品无码一级毛片牛牛影视| 免费中文综合精品| 国产大陆天天艹| 国产欧美精选激情视频| 五月天久久久| 欧美亚洲综合色| 蜜臀精品1区2区| 中文字幕视频2区| 久久超碰98| 安微少妇操BBB| 青青草色AV| 欧美少妇色图| 日韩精品在线视频在线观看| 夜夜草网站| 国产少妇与亚洲av| 欧美亚洲涩涩| 麻豆亚洲AV成人无码久久精品| 亚州性9| 国产免费黄色一级大片| 色偷综合| 精品久久97| 大香蕉伊人网| 狠狠综合网| 精品人妻夜夜草| 久久久久斤小| 成人国产视频在线观看| 玖玖爱免费观看视频| 日韩人妻少妇 一区二区三区| 亚州综合电影| 日本高清一本二本免费不卡| 超碰97精品| 国产亚洲禁久一区二区 | 欧美黄色大片在线观看| 99热综合| 亚洲第一二区另类图| 日夜尻逼网| 9久久久久| 一级片在线观看高清无码| 激情综合亚洲| 96AV精品| 蜜桃天美传媒AV一区二区三区| jazzjazz国产精品麻豆| 333kkkk·亚洲com久久| 天天操女人| 99热99re6国产在线播放| 97伊人超碰| 萌白酱自拍视频| 91网站18在线观看| 91痴汉| 操逼日批| 爆乳免费黄网站| 97国产精品久久久久 | 97在线/亚洲| 日本一区视频在线观看| 午夜精品久久久久久久男人的天堂 | 青青草综合在线| 99视频这有这里有精品| 午夜久久无码1000合集| 老女人碰碰在线碰碰视频| 亚洲欧美日韩不卡人妻| 欧美人人AAA| 欧美亚洲宗合色性图| 日本性爱视频一级| 久久亚洲不卡| 啊啊啊啊啊啊好多水| 在线观看日韩av不卡| 国产肏屁眼视频| 国产精品午夜AV完会免费| 99在线观看| 高潮9999外国| 久久9视频| com 首页 18岁 禁区 女优 免费 精选 同城| 吖在线不卡一区二区国产剧情| 2010男人的天堂| 欧中美三级一区二区三区| 91人妻Pr| 亚洲97网站| 性爱边摸边日免费AV| 国产精品网站www| 人妻色偷色噜| 天天综合网久久ww| 精品久久无码午夜福利| 久久久久久久久久8888| 九九五月天| 亚洲强奸乱伦影视网| 啊啊啊啊啊好舒服视频| 91狼人| 久久青娱乐| 黄网色一区二区三区四区精品| 国产中午字一暮区| 久久艹逼视频| 蜜桃臀久久| 高清国产av无码| 密臀在线视频| 蜜桃久久久久久久| 91国产大片| 91丨豆花丨熟女| 99最新日韩偷拍视频| 在线观看av区| 亚洲交性| 91欧美成人色站| 亚洲日本激情| 日韩噜噜69| A 天堂在线观看视频| 免费视频观看60秒| 亚洲综合色男人网| 亚洲女人91| 狠色婷婷久久一区二区三区_| 熟女少妇一区二区三区| 内射小黄片| 99只有精品| 日韩精品操少妇| 神马久久午夜| 欧美黄片欧美黄片xxx| 亚洲日韩美国人妻| 蜜乳AV一区二区三区四| 志村玲子视频一区二区| 啊啊啊啊啊啊在线观看| 在线天堂999| 欧中美三级一区二区三区| 秋霞蝌科网日本一区| 91天天爱| 亚洲精品国产熟女| 好屌色综合| 欧美日韩99| 超碰在线一区二区| 欧美72网页| av中文在线| 精品久久久久久AV无码| 日韩专区久久久| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 亚洲精品一二牛牛| 99热99re6国产在线播放| 99无码视频| 大香蕉强奸乱伦| 激情综合色| 亚洲成人黄色在线观看| 欧洲色综合| 亚洲欧美国产中文字幕| 欧美成人都市人妻| 久久精品国产亚洲AV片多多| 亚洲无 码A片在线观看麻豆| 亚洲偷91色| 密臀在线免费观看| 五月婷婷激情网| 午夜欧美女人操逼| 国产辣妈在线视频福利| 欲色综合| 亚洲伊人青青草| 国产成人AV麻豆| 激情综合五月| 牛牛aV| 国产AAAAAABBBBB| 色妺妺AⅤ| 少好三P| 中文字日本乱码| 无码99| 9999免费精彩视频| 金莲网址| 日韩在线性爱免费视频| 你懂的在线观看区国产| 色综合 加勒比| 九九九九精品一区| 久久久久久久78| 男人的天堂激情| 国产欧美伊人| 人妻久久久久久久久久久久久久久 | 亚洲丝袜99| 亚洲色性情三级| 国产小视频91| 亚洲色图欧美视频| 377p欧洲日本亚洲大胆| 九色精品视频导航1| 亚洲日韩精品久久久久一区壹牛| 91欧美综合| 少妇熟女一区二区三区| 久久久日本电影| 嗯~啊~轻一点 视频| 蜜桃臀一区二区三区久久| 天天综合网1| 白丝在线一区| 亭亭在线资源| 久久久九九| 密臀国产在线| 超碰97极品9| 超碰人妻久久| 久久久久久久97| 麻豆成人影音在线| 亚洲欧美国产中文视频| 欧美人与动性人交a| 午夜a成v人电影| 国产 日韩 欧美高清| 男人天堂黄片| 操逼视频免费日韩无码| 日韩性爱网址| 色色婷婷丁香| 男人的天堂啪啪| 亚洲熟妇自偷自拍另欧美| 91N五十路| 超碰碰97| 欧美精品 - 91爱爱| 久草热制服丝袜在线观看| av麻豆啪啪| 久久久性少妇| 国产99热| 老熟女乱伦一区| 日韩卡一卡二卡三在线| 亚洲Av无码成人精品国产| 国产亚洲99久久精品| 久操综合在线| 国产熟妇一区二区| 久热这里只有精品9| 国产乱子伦一区二区三区在线观看| 加勒比伊人| A片A5445444| 日韩卡一卡二卡三在线| 天天天天操| 一区中文字幕二区日韩| 亚洲自拍青操视频| 国产91 丝袜在线播放00-百度| 国产9区| www.久久最新地址| 99热这里是精品| 成人A片男人的天堂| 91老熟女老女人国产老太| 精品人人| 超碰天天操| 蜜臀网址在线| 啊啊啊操死我| 91精品伊人久久久大香线蕉91| 长长久久88视频| 91天射| 亚洲丝袜少妇在线| 51久久夜色精品国产麻豆| 影音先锋少妇| 五月丁香六月婷综合成人综合| 亚洲五区熟女| 全国男人天堂网| 免费黄色片。| 五月婷婷六月激情| 天天香香欲综合| 欧美日韩不卡传媒| 99老司机精品视频在线观看| 亚洲五月丁香花狠狠干一区二区三区 | 欧美在线综合| 99久久亚洲精品无码毛片潘甜甜| av午夜影院在线播放| 九九热九九热| 综合亚洲网| xxxx网站亚洲精品| 国产人妻精品久久久一区二区三区 | 国产精品探花视频| 亚洲欧洲小说图片视频 | 亚洲福利中文字幕在线| 亚洲大色堂| 丰满人妻-区二区三区| 亚洲精品xxx| 97色色国产视频| 中文久久久| 丁香六月激情| 91精品国产91久久久久久久久久久久| 欧美福利视频啊啊啊啊| 色性综合| 91高清欧美| 成人性爱视频在线看| 91在线欧色| 巨乳特殊服务按摩| 欧美精品一区二区少妇免费A片| 亚洲综合小说另类图欧美视频激情小说色五月天| 9久精品视频在线观看| 人人操人人摸人人骑| 久久久爆乳翘臀一线天伦理视频| 亚洲文学偷乱拍啪啪啪啪| 人人做,人人操,人人摸| 夜夜狼人妻| 久操视频在线观看| 久久久艹艹艹| 热99这里有精品综合久久 | JuliaAnn丝袜熟女系列| 成人黑料社久久| 91成人亚洲色图| 首页中文字幕中文字幕免费| 在线综合 亚洲 欧美中文字幕 | 久久久久久久久女黄| 亚洲精品aa久久伊人| 国产精品久久久久久9999| 国产乱人伦AVA麻豆软件.| 麻豆 亚洲 97| 操我无码| 久久超碰天天| 色婷婷五月综合激情中文字幕| 久久国产精品视频| 久久久久久AⅤ无码免费肉站| 91模特在线观看| 欧美在线干| 精品人妻av区天天看片| 日本熟妇熟色97一本在线观看| 97国产精选| 好吊妞转入那个网| 综合久久少妇中文字幕| AV天堂男人的天堂| 天天干天天燥| 97欧美色| 开心激情站| 97亚洲综合| 后入人妻一区| 高清国产无码av| 97AV在线免费观看| 3p国产色噜噜一区| 91天天综合日韩欧美| 久久不卡一区二区 | 色阁阁AV综合网| 日本三级日本三级99| 97免费视频在线| 久久偷拍人| 艹少妇网站| 久 久无码人妻AV| 欧美综合第一| 久久久久久国产成人| 精品九九淫乱男| 思思热在线视频精品| 精品国模无码| 色大师网站www永久网站视频| 思思热国产在线视频| 国产蜜臀精品一区二区尤物| 亚熟在线| 女人喷水视频在线观看| 97在线视频网站| 日韩传媒在线| 免费综合亚洲中文| 久久综合九色综合欧洲98| 老鸭窝日丰县女人| 日本超碰在线国产一区| 欧美日本中字另类在线| 日韩十八禁| 国产丝袜美腿美女麻豆| 五月天激情小说| 国产精品视频自拍在线| 手机在线大香蕉| 久久久专区| 大鸡吧尹人在线| 婷婷激情五月天小说网| 高清国产无码av| 蜜臀久久99精品久久久久久成人小说| 99热在线不卡| www.久久| 一级啊性爱在线视频| 亚洲精品久久久久毛片A片拉屎 | 亚洲婷婷综合网| 亚洲性刺激| 磁力99AV| 天堂av2019| 欧美性爱视频免费一区一A| 精品无码欧美三级| 97亚洲综合在线| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | hd成人一区二区在线| 国产传媒午夜理伦精品| 加勒比99999| 色97国产69香蕉| 成人黄页| 色综合中文字幕不卡| 日本在线激情一区二区三区| 人人操人人舒服| 9118禁| 亚洲做性| 国产AV线| 欧美午夜视频| 绑缚麻绳人妻寝取完整版| 精品视频久久久久九九九九9999| 久久久久国产无av| 国产亚洲日韩在线三区黑人| 日本人妻中文字幕精品| 青娱乐二区免费| 国产精品懂色tv影视免费观看| JuliaAnn丝袜熟女系列| 久草精品在线| 日日躁狠狠躁天天躁精品| 欧美午夜视频| 九九拍拍精品视频在线播放 | 日韩在线地址一| 91天堂| 久热这里只有精品9| 二级毛片| 亚洲图片视频小说| 亚洲国产精品久久久久婷婷老年| 青青三级视频| 亚洲精品国产av天美传媒| 青青草久久一区网| 日本伦理一区二区| 97色诱| 91粉芽高清在线一区二区| 久久毛卡| 午夜.DJ高清在线观看免费7| av毛片aaaaa免费看| 天堂综合网| 天欧美在线| 美女上床网站| 久久婷婷苹果| 香蕉精品二区二区| 精品一级| 日本操逼视频免费| 尤物av网站免费在线播放| 1240青青草一区二区三区视频天爱| 成人草草视频| 亚洲丝袜二区在线| 日韩无码一区二区三区| 我要色综合网| 黄片视频,下载| 国产福利在线视频网站| 亚洲aV性爱| 91久久久久免| 日本加靬比网站发布页| 天综合网| 青青草视频导航官网| 超碰超碰95| 欧美 青青草| 情色五月天久久久| 呦女网站| 伊人在线大香蕉二。| 好湿好紧视频| 日韩久射综合| 欧美片第一页| 波多野结衣AV无码一区| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 五月天欧美色图| 大香久久| 少妇熟女1区2区3区| AV免费在线播放一区| 亚洲第一在线视频| 夜夜狼人妻| 岛国不卡超碰护士AV在线播放| 亚洲高清欧美总合| 国语对白露脸XXXXXX| 国产精品国产拍高清AV| 色噜噜人妻av 中文字幕| 物业黑人 AV一区| 美女爽到高潮91| 俄罗斯一区二区视频在线观看| 亚洲国产精品有声| 欧美午夜精品久久久久久超碰| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 冬京热男人的天堂| 日韩亚洲97| 香蕉视频欧美一卡二卡| 亚洲国产欧美中文永久| 欧美色图私拍91| 亚洲欧美在线丝袜| 日本不卡高清视频| 91丝袜美女| 色哟哟av| 3028国产精品| 丁香六月啪| 国产精品天干天干综合网麻豆| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产精品黑人一区二区三区| 五月丁香狠狠爱| 少妇精品久久久| 亚洲熟女乱色一区二区三区| 亚洲色综合| 麻豆区久久久久亚| 翔田千里Av在线| 精精夜夜| 东京热,男人的天堂| 免费αⅴ在线观看| 欧美日韩国产中文精品字幕自在自线,| 精品熟妇视频一区二区| 激情五月天插| 九X超碰| 91老熟妇| 日韩人妻大香蕉| 久操影视| 亚洲AV成人无码一二三久久| 国产精品爱欲| 香蕉婷婷| 精品一区二区久久| 国产性爱在线视频一区二区| 久久女人一区二区三区| 免费99精品国产自在在线| 久久亚洲AV无码专区首页| 人成午夜免费大片| 热热色综合网| 人人妻人人爽| 国产免费内射视频| 久久久久国产无av| 大香蕉国产中文自拍| 色哟哟AⅤ| 情色五月天久久久| 国产精品久久久吖| 蜜臀久久99精品久久久久免费观| 亚洲图片欧美| 久久国产精品91| 男人的午夜天堂| 亚州操操穴网| 国产9区| 日韩精品.久久精品.AV女优.天美传媒| 精品一区二区三区四区外站| 国产性爱在线视频一区二区| 精品美女久久一二三| 日逼逼免费看| 大屁股熟女一区二区三区| 亚洲乱码国产乱码精网站| 偷拍新久久| 中文字幕黄色片| 9丨久久九九九| 91人人爽人人爽| 久久久国产av美女私房| 午夜久久一区二区无码中出| 午夜福利国产欧美日韩夜夜| 美女AV一区二区| 综合五月婷婷亚洲一区| 亚洲骚男同com| 亚洲高清在线| 日韩性爱啪啪视频| 中文字幕-区二区三区四区视频中国| 国产欧美日韩一区二区三区| 久久动漫精品视频这里只有精品| 久久性爱网站| 密臀AV在线| 十八禁的黄污污免费网站| 中文字幕欧洲有码| 久久人妻精品| 亚洲成人在线高清| 一区二区视频你懂的| 囯产乱伦一区二区三女| 欧美日韩小说| 欧美黑人与女人91~| 日韩久久.一级黄色片| 91免费看中出视频| 91麻豆一二三区| 亚洲s在线观看| 精品一区二区成人动漫| 日韩AV无码网站| 精品人妻伦一区二区三区久久| 99久久久无码| 国产乱伦亚洲色图高清无码| 探花精品 一区二区| 97精品一区二区视频在线观看| 性感美女啊啊啊在线| 欧美婷婷久久| 亚洲色香| 九九国产| 精品美女少妇一区二区三区| 这里只有精品视频在线| av资源在线观看少妇| 亚洲色图殴美色图激情乱伦| 97在线视频观看| 精品人妻久久久| 精品二区三四区五电影 | 热热色AV| 久久国产视频性吧 | 丰满人妻一区二区中文| 任你艹| 9色国产精品一区粉嫩 | 2018色综合天天操| 国产欧美在线观看免费观看| 日韩精彩视频| 欧亚乱色熟一区二区三四区| 欧美一区二区三区不卡高清视频| 国产精品国产自产拍高清AV| 色噜噜精品一区二区三| 欧亚日韩中文在线| 日本一天色道久久久精品视频| 成人国产精品三级A片| 在线观看一级α片刺激高潮视频| 91综合天天看| 中文字幕在线观看网页| 精品九九国产无码| 日日夜夜精品视频| 亚洲丝袜在线观看| 成人久久精品| 好吊色一区| 青青操青娱乐| 欧美在线干| 久久无码电影| 亚洲欧美另类图片| 国产农村妇女毛片精品久久| 高清肉丝中文无码| 吉田爱美AV在线| 99视频精品| 26uuu国产日韩综合在线观看| 一区二区三区免费视频入口| 凹凸 69堂 在线播放| 91 国产丝袜在线播放-百度| 色五月婷婷久久| 中文字幕日本久久| 国产AV无码AV| 亚洲色图尤物视频| 国产无码精品无码| 色综合20p| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 骚人妻少妇视频| 性色中出| 大香蕉天天看妹子| 欧美视频在线第3页| 欧美色婷婷| 国语对白在线播放视频| 九九热久久99精品re| 第四色奇米影视777| av网站免费线看| 日韩性爱啪啪视频| 成人性爱免费播放| yiqicaoav| 亚洲色图欧美| 国产麻豆一区二三区| 欧美性天天影院| 精品一国2| 亚洲激情天堂网| 日韩无码久久熟女一级片| 中文字幕丝袜人妻| 天天香香欲综合| 青青草色情网站视频| 夂久色| 美女露胸露屁股| AND人妻系列| 小草精彩毛片| 日本一区二区三区欧美日韩中文字幕| 日韩偷拍色图| 97操97色| 偷拍伦理视频| 极品五月天噜噜| juliaann精品熟女一区| 91九九九小逼| 久湿久久 | 免费一级视频特黄色大片| 狠狠色色| 黄污污污污| 色婷婷aV一区二区三区麻豆综合 | 亚洲三级。日韩三级| 亚洲激情在线观看一区| 97超碰jingpin| 久久国产性爱| 秋霞蝌科网日本一区| 亚洲一区中文字幕一区| 亚洲超碰在线| 国产一区二区三区中文字幕| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 欧美91变态| 一区二区中文| 成全在线观看免费观看| 18禁精品网站在线看| 亚洲无线码一区国产欧美国| 久久精品人体AV| 91人妻超碰| 啊啊啊好舒服好爽啊啊啊视频|