色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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| 九九九热| 精品人妻一区二区三区-国产| 亚洲涩图欧美| 中文操嬖片。| 日韩欧美中文字| 国产一国产一级毛片古装| 亚欧高清在线| 2017,超碰| www成人啪啪18秘 免费| 色天欧美| 天天操夜夜嗨| 亚洲欲| 伊人性在线视频| 91成人久久 | 久久精品国产精品亚洲艾通辽熟妇 | 亚洲av影院在线观看| 精品久久久久瑟瑟| 女优视频第10页| 国产精品久久久久久久久久久久久久吹| 91国产操逼视频| 国产91美女高潮| 国产成人无码啪| 97人人射| 久久亚洲一区女同性恋中文字幕| 国产精品亚洲免费| 另类欧美| 5278欧美一区二区三区| 国产精品一区二区在钱播放| 岛国视频免费在线观看| 白嫩91在线亚洲| 人妻81p| 60秒试看最爽10分钟网站| 呦呦影院| 91影视亚洲| 免费一级精品啪啪视频| 亚洲精品电影| 99热免费精品| 91快色色色色色| oumeizonghese,www| 天天夜躁日日躁狠狠2002| 日本九九久久99播| 少妇精品久久久| 思思热久久成人| 九九热精彩视频| 丰满人妻无码一区二区三区| 国产精品久久久久久久久久二区三区| 五月婷婷爱六月丁香色| 啪啪综合网| 一区麻豆 高清中文字幕| 在线97视频| 亚洲天堂女优在线| 国产视频不卡在线观看| 91成人精品| 妇女视频网站| 激情深爱五月天| 久九色| 91女在线观看| 3p国产欧美99热| 亚洲天天操| 亚洲欧洲久久天堂| 欧美久久九九| 美女极品一区二区三区| 欧美精品另类人妖xxxx| 欧美一区二区三区不卡高清视频| 亚洲不卡不卡中文字幕不卡| av日韩国产一区二区| 精品少妇一区二区| 屌妞视频久久久久久久久久久久| 天天天天天干夜夜夜夜夜操| 翔田千里AⅤHD无码| 亚洲色图 综合| 日韩操人| 亚欧国产无码精品在线| 亚洲人成在线放东京热| 久久9精品网站| 亚洲91网| 另类老少妇| 天天综和| 天天摸夜夜摸| 99热久| 久久黄片国产一区二区| 国偷自 一区二区| 天天日日舔舔| 盗摄 精品 另类 一区| 精品国产无码中文| 天堂69亚洲精品中文字| 91色插| 色天欧美| www.男人天堂| 天美精品一区二区三区四区在线观看| 天天操夜夜操| 午夜国产成人福利视频| 免费无码国产精品v片在线观看| 91制服丝袜| 老熟女中文字幕高清| 口爆综合网| 欧美日本中字另类在线| 成人小说视频在线精品欧美| 91免费看一区二区三区| 色哟哟 日韩精品| 日日操夜夜操天天操免费观看麻豆| av亚洲天堂资源网站| 98色网| 人妻-91porn| 制度丝袜99| 国产乱伦性爱区| 精品免费1| 五月色网| 日本 欧美 亚中文字幕| 人妻熟女字幕一区二区| 国产久久一区二区午夜| 无码又爽又硬又激情免费视频| 日韩欧美亚洲一区二区三区影院| 激情五月天插| 东京热视频网| 91精品女厕偷拍视频| 成人一道本免费视频| 久久久一区二区三区四区五区| 9 1果冻精品视频| 黑人干亚洲| AV色五月| 蜜臀va69| 人妻久久| 91在线视频国产网站| 久久久久久久97| 亚洲国产综合图区中文字幕 | 欧美黄片视频在线观看免费 | 日欧毛片久久| 婷婷精品国产欧美精品亚洲人人爽| 中文字幕久久精品一区| 色情亚洲日本成人| 蜜桃丰满熟妇av无码区不卡| 97在线亚洲| 亚欧美无遮挡| 久久婷婷电影网| 五月丁香黄色网| 无码外流操逼视频| 日本熟女中文| 亚洲 中文 女同| 日本精品国产视频| 综合激情一一91| 亚洲欧美综合网 | 女色综合| 人人操人人射人人干| 99在线无码精品秘 入口黑人| 大色综合| 一本大道不卡一二三区| 黄色在线网站| 国产精品一区二区黄片| 不卡超碰护士AV在线免费播放| 亚洲天堂人妻一区二区| 老熟妇综合| 乱码人妻一区二区三区| 视频二区美腿制服人妻欧美| 麻豆91熟妇人妻中文字幕茄子| 208天天久久九九九| 国产美女激情| 中文字幕一区二区无码成人| 操逼逼一区视频| 亚洲国产精品9999在线观看| 久久久久国产无av| 天天草AV| 91久久青青草原精品| 狠狠久久手机视频精品| 在线观看中文av字幕| 亚洲色五月| 91黑丝美女| 欧亚日本情色| 一二三四视频中文字幕在线看| 蜜乳AV一区二区三区四| 欧美视频在线第3页| 麻豆 亚洲 97| 偷拍偷窥与盗摄视频专区| 最新的亚洲无吗| 一本道综合色图| 日日噜噜夜夜久久亚洲一区二区| 天天亚洲| 午夜超爽| 啊啊啊啊啊好大好舒服想要| 波多野结衣AV无码一区| 亚洲国产激情国产av| 久视频在线观看| 久久9精品网站| 人妻偷拍一区二区三区| 久久综合激情| 青娱乐 青青青操 日逼| 操婢日韩| 九九玖玖精品| 97国产综合欧美| 综合色好色| 亚洲欧洲中文日韩女优乱码| 久久精品小视频| 素人无码中文字幕| 国产美女口爆吞精视频| 天天色悠悠激情| 夜夜夜爽www精品视频| WWW啪啪的com| 免费自拍三级综合| 人人操人人插人人摸人人干| 一级性爱网| 亚洲古典另类欧美在线| 久久久久久久久久久久黄色| 伊人一区二区在线播放| 亚洲限制级在线| 日韩97P| 久草网站免费在线观看| 人妻无码视频一区二区三区久久| 中文字幕一区二区日韩网| 精品v日韩欧美国产| 亚洲人妻中文在线视频| 欧美日韩性感| 日韩av乱伦| 久久人妻无码毛片A片麻豆| 日本高清加勒比| 欧美亚洲情色| 欧州色图区| 后入人妻无码| 中文字幕 国产区| 美女丝袜激情小说| 欧美人人AAA| 伊人991| 中文字幕一区二区日韩网| 美国人人操人人操| 久久精品老司| 亚洲AV无码国产精品久久久久| 97超碰人人操人人操| 亚洲日韩视频二区| 亚洲性感丝袜诱惑在线观看| 成人八戒网站| 91男女| 26uuu国产免费观看| 校园春色综合香蕉| 秋霞视频一区二区 | 欧美日本成人一区二区| 蜜桃中文字日产乱幕4区| av网站免费看| 加勒比伊人综合| 久久精品中文字幕无码l| 日本免费一区二区不卡| 亚州操逼网| 本道在线| 日韩人妻资源在线看| 天天日天天干少妇日| 国产精品视频电影| 亚州免费啪啪视频| 91美女视频。| 久艹伊人精品综合在线| 人人摸人人摸人人干| 久草老司机| 久久久人体| 国产黄色在线播放观看| 无码操逼视频一下| 欧美aa一级片| 97精品视频在线播放| 91碰碰碰| 日夜精品| 久欲AV| 日韩成人网址| 婷婷av在线中文字幕| 亚洲色情在线影视| 防屏蔽在线视频| 久久性爱视频99| 玖玖综合视频| 欧美亚洲丝袜美女电影| 亚洲国产美女久久久久| 亚洲视频,小说| 日韩免费性爱视频在线观看| 亚洲无码超碰免费| 丝袜美腿91| 日韩丝袜二区| 欧美夜夜骑视频| 国产精品老师| 级做a爱无码性色永久免费| 日韩av情韩国爱禁区av一区二区| 97一区二区蜜臀| 国产激情视频在线观看| 人、人、摸,人、人、草| 人人操 欧美| 东京热av影院| 青娱乐亚洲热| 欧美色图亚洲激情| A啊啊在线观看| 电影69乱码96| 美女91色黄18| 久久婷婷综合国际产色怕| 99re这里只有精品2| 五月天婷婷影院| 乱伦3P视频| 麻豆国产精品午夜视频| 欧美黑人日韩少妇色情| av一区二区三区四区五区久草臀| 亚洲人精品久久久喷水| www超碰| 日本人人操人人操| 立川理惠被中出无码 | 老熟女乱子伦中文字幕一区二区 | 亚洲天堂自拍| 五月丁香啪啪网| 亚洲成人美女无吗| 欧美日韩亚洲一区二区在线观看| 欧美综合另类| 日韩有码专区| 天堂成人网| 亚洲色欧| 91亚洲人| 亚洲天天操| 操一对老熟妇爽上天视频| 国产精品午夜福利| 视频在线97| 久久久久久免费电影| 一级毛片电影免费看| JuliaAnnXXX888| 五月天AV资源| 亚洲久久天堂| 欧美综合91| 亚洲同性aV综合| 精品久久久久综合无码| 日本欧美不卡| 亚洲AV无码乱码| 超碰在线人人射| 超碰色综合| 精品无码久久久久久久杏吧| 久久国产免费激情视频| 黑人精品成人一区二区三区 | 玖玖草久草99蜜月一区二区三区| 无码男人天堂| 色色97爱| 亚欧高清| 国产精品自在自拍视频| av日韩在线观看电影| 777奇米影视777四色| 无遮挡h肉动漫在线观看| 99热在线只有精品| 精品少妇人妻一区二区三区| 校园春色AV天堂| 欧美天天弄| 影音先锋每日最新资源在线观看| 中文字幕AV乱伦| 最新中文字幕在线亚洲| 五月色综合| 久久国产99精品72福利| 美女主播色欲91抠b在线播放| 欲射影视| 国产精品诱惑| 中文字幕亚洲热播人妻| 99色色网| 日韩pv中文| 日日橹狠狠爱欧美超碰| 超碰 欧美| 91麻豆天美| 国产乱伦视频污| 久久精品国产亚洲AV高级北京| 婷婷91| 中文字幕av久久爽Av| 亚洲Av噜噜一区二区三区妖精| 欧美色图片色哟哟| 国产精品国产自产高清AV| 一级免费啪啪片| 国产不卡精品91| 九九国产| 久久av无码| 五月丁香激情啪啪| 久久久久ab| 天天干人人乐| 天堂中文资源在线bt| 综合网欧美在线| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 国产精品肉丝自拍| 把腿张开老子CAO烂你| 这里只有精品视频| 日韩人妻丝袜美腿中文| AV麻豆免费一区| 又大又长又粗又爽又黄| 日本91白丝| 中文字幕精品三级久久久| 97国产精品视频| 激情五月天社区| 韩国黄色片精品久久久 | 乱子伦一区二区三区国产精品| 久久久久久久91| 欧美日韩国产高清在线一二三区| 日逼五月天| 九九热九九| 中文字幕成人理论在线| 久草精品视频| 99色热国产视频精品| 亚洲AV无码| 2017,超碰| 欧美强奸乱| www.99热在线只有精品| 免费A片三p视频| 美女刺激久久国产欧美| 91九色丰满高潮| 亚洲一卡2卡3卡4卡乱码网站 | 亚洲中文日韩欧美大香蕉视频| 水澄无码AV| 91N欧美| 亚洲天天自拍| 欧美精品999| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 99热这里都是精品| 狠狠操狠狠| 99色热| 国产亚洲精品自在线亚洲情侣| 台湾佬中文娱乐网久久久久久久久久com | 久久五月天婷婷| 精品一二三区久久AAA片| 在线中文字幕| 精品人妻视频一区二区三区蜜桃视频| 午夜男女爽爽大片免费观看| 丰满少妇高潮无码| 曰韩精品视频一区二区| 性爱AV天堂| 在线岛| 91日本在线观看| 九九九九日本| 亚洲国产ⅴ高清在线观看| 久久一二三四不卡 | 亚洲资源网| 国产精品蜜臀久久久久无码AV| 超碰午夜在线| 国产绿奴视频在线观看| 男人的天堂2000| 操逼逼无码| 久久97视频| 天美麻花大全视频| 精品久久久久久中文字幕视频免费| 欧美日韩国产传媒在线精品| 亚洲欧美成人网站AAA| AV一二区| 婷婷中文网| 国产精选视频| 人妻密肉在线观看| 啪啪啪精品视频| 色综合超碰超| www.99热| 岛国视频一二三区| 亚春色色| 顶级少妇BT天堂| 欧美日韩日产免费网站看| 成人久久久精品| h在线看免费版在线看| 夜夜嗨视频| 日韩国产十八禁| 天天干夜夜一操| 中文久久久| 国产污视频麻豆传媒一区二区| 婷婷激情五月天小说网| 亚洲欧美日韩偷拍色图| 午夜AV污污污| 久久人妻视频网| 久久久96| 熟女久久| 嗯嗯啊啊啊好舒服| 97综合在线| 亚洲一二三四区| 91爱看| 长长久久88视频| 一区不卡在线观看av| 加勒比综合在线| 福利天堂| 久操 高清| 欧美精品另类人妖xxxx| 欧美一区二区亚洲天堂| 99re免费视频精品全部| 亚洲欧美日韩偷拍色图| 婷婷人妻激情| 欧美综合 站| 人妻出轨一区二区三区| 青草视频在线看看看看看看看看看| 性爱Av免费| 欧美综合另类| 26uuu国产免费观看| 九九九九热| 婷婷探花久久精品一区| 高清肉丝中文无码| 久久女同性恋一二区| 亚洲天堂另类小说男人| 97精品综合| 亚洲高清男人天堂| 青青草原综合久久大伊人精品| 无色无码| 午夜理论片在线观看免费| 欧美不卡在线一区二区| 少妇被c 黄 免费观看| 91美| 91爱啪| 97se亚洲综合自| 亚洲激情欧美色图| 青青草综合在线| 久伊人网78| 国产青青综合伊人| 好色美女九七第一页| 91视频女生| 夜夜久久久| 欧美中日韩XXXX| 97久操| 国产精品农村妇女| 啊啊啊爽爽| 风月影院十八禁| 成人久久久| 日韩成年人性爱视频| 日韩免费在线观看不卡| 国产精品 久久久精品一牛| 亚洲精品成人动漫在线| 综合操逼| 日本免费中文一区二区三区四区| 国产一区二区三区中文字幕| 久久97资源 网| 亚洲淫色网中文| 青青草玖玖爱| 日韩图色| 呦呦影院| 国产呦精品一区二区三区下载| 天天操天天舔| 久久久无码国精品无码三区三区| 中文一区二区婷婷视频| 在线观看视频91| 亚洲欧美校园| 伊人一级免费黄片| 夜嗨影院| 中文字幕一区二区三区人妻少妇在线| 91精品婷婷国产综合久久竹菊| 激情文学小说一区二区| 亚洲色人| 国产91精品福利在线| 亚洲欧美天| 欧美中文字幕精品人妻| 欧美五十路熟| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 欧美性爱超碰97| 欧美一级黄色免费专区| 中国一区二区亚洲人妻| 插入综合网| 嗯嗯嗯啊啊啊干死我吧| 亚洲91在线| 欧美性巨大╳╳╳╳╳高跟鞋| 日韩人妻资源在线看| 综合天天网| 91精品人妻| 岛国大片在线观看网站入口| 天美国产精品| 九九久精品| 久久性爱视频99| 婷婷色网| 日本97久久| 色在线综合| 99精品在线观看| 国产欧美成人精品| 欧美v亚洲v综合v国产v妖精| 婷婷五月天社区| 都市激情人妻一区二区青青操视频 | 亚州成人A√| 久久超碰天天| 色婷婷激一区二区三区 | 99精品久久| 欧美亚洲激情一二三| 操国产逼| 久久久一热在线播放| 男女一进一出视频久久| 久久久久亚洲| 后入国产| 婷婷色色五月天福利| 精品久久久av无码免费| 日韩人人精品| 18精品一区| 久久久青青草| 人人操人人狠狠操| 97国产精品久久久久| 日本一区视频在线观看| 欧美日韩222| 中欧人妻丝袜中文字幕 | 精品无av| 日本污ww视频网站| 国产91丝袜 在线播放| 亚洲欧美中文日韩视频中国语| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 天天综合站| 无色无码| 久久97视频| 久久综合激情| 精品天堂| 91亚洲黑人| 69麻豆天美| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 老熟妇综合| 青草草免费网站av| 18禁久极品美女久久哦哟呀!| 欧美αv.com| 久久久久无码一妻区| 国产精品自拍xxxx| 青青青草伊人精品| 一级免费啪啪片| 三四中文字幕| 97二区四区| 欧美日韩插逼视频| 99精品人人爽| 岛国精品视频在线观看| 啊啊啊免费| 熟女在线视频| 熟女乱伦A| 蜜桃午夜视频一区二区| 青青网三级视频| 亚洲欧洲成人在线电影| 啊啊啊好大好湿| 亚欧Av| 78操B| 欧亚乱色熟一区二区三四区| 日韩人妻一二三区视频| 天堂av最新电影网| 久青草影院| 超碰在线人人射| 亚洲网污污污污| 女人爽到高潮潮喷18禁网站| 天天澡天天狠天天天做| 加勒比海成人视频网| 在线看免费无码AV天堂的| 丰满人妻一区二区三区免费| 香港成人一级视频在线青青草| 午夜120视频在线观看| 亚春色色| 青青草男人天堂| 国产67194| www久久国产精品| 粉嫩久久久极品| 国产原创精品| 免费强奸av| 亚洲综合另类| 日本 情色 1区2区3区| 人妻啊啊人妻啊啊| 超97在线精品视频| 神马九九| 99超碰网| 欧美91丝袜| 黄页18禁| 乱老女人一区二区视频| a片在线播放| 性欧美999| 色偷综合| 欧美一区二区传媒| 天天日天天插| 亚洲国产一级精品毛一级精品看免费视频 | 插入粉嫩少妇视频| 亚州高清av| 99热66| 日日操丁香五月天| yw尤物av无码点击进入麻豆| 日夜尻逼网| 少妇500双飞99| 人妻久久久久久久久久久久久久久| 国产自产自拍| 日本潮催一卡操| 午夜精品久久99蜜桃的功能章节| 欧美日日人人天天| 综合欧美日韩在线| 色女99一级片在线观看| 狠狠 91| 99久久99久久综合| 青青操狠狠撩| 色婷婷视频| 91精品久久久| 性色av大全| 白丝av| 啊啊啊啊啊啊啊啊视频| 大粗鳼巴久久久久| 少妇激情AV| 无码九九| 蜜桃臀AV在线| 久久噜噜噜精品国产亚洲综合| 国产乱人妻精品入口| 中文字幕88av在线| 亚洲另类色图片| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久热精品在线| 人妻丰满熟妇av无码区蜜桃| 精品二区三四区五电影 | 亚洲熟女诱惑| 91熟女丨老女人| 国产精品在线免费| 99热这里只有精品18| 清纯唯美综合| 欧美美女视频| 中文字幕乱亚洲美女精品一区| 中文字幕一区二区无码成人| 97久久国产精品| 亚洲性刺激| 99热精品在线观看| 9丨久久九九九| 熟女人妻精品一区二区视频 | 5252色欧美在线男人的天堂| 亚洲同性aV综合| 色五月婷婷五月天| 欧美三级中文字幕hd| 岛园激情| 五月婷在线| 婷婷四五区| 久久久久久久九九九九九九| 电家庭影院午夜69久久夜色精品国产69乱| 欧美东京热青青草| 岛国A V在线免费看| 超碰人人操97碰| 亚洲毛片一级带毛片基地| 国产欧美岛国精品一区| 欧洲亚洲国产综合在线| 四虎精品永久在线播放| 精品亚洲成人免费在线| 人人操人人搞人人草| 网页导航五月天免费一二三区| 国模少妇一区二区三区| 婷婷五月天福利| 韩日男人的天堂| 日韩精品人妻中文字有码在线| 超碰97久久国| 亚洲熟女一区二区| 超碰碰小说97| 亚洲天堂另类| 情趣丝袜无码操逼视频| 国产黄色影片在线观看| 91人妻素女| 国产精品一二三区福利| 人人爽夜夜玩视频| 亚洲操操操无码| 综合夜夜| 精品性爱| 0755午夜福利视频| 亚洲色图欧美一区二区不卡| 久久精品人人做人人看| 亚洲成a人在线观看久| 五月丁香久久| 嗯嗯啊啊视频一区二区三区| 日夜尻逼网| 熟妇综合一区二区三区| 国产女人成人精品视频| 操狠狠| 性色av一区二区| 久久综合久久综合人久久夜精品| 懂色AV中文| 理论久久婷婷网8| 美国日韩黄片| 色综合99| 久久久久久波多野吉衣高潮| 97Ai亚洲| 岛国视频免费在线观看| 亚洲天堂,男人| 黑人与人妻| 欧美性夜| 熟妇操花| 97国产色图 | 麻豆天美久久91| 激情四射婷婷六月天| 久久只有精品| www色色色com| 亚洲色图 图片| 一级做受视频免费是看美女| 在线观看日韩av不卡| 欧美国产视频| 日本不卡一二区| 欧美特大黄一级片片免费| 日日日啊啊啊| 九九九精品| 国产精品交换一区二区| 久久超碰av在线| 乱伦色图网址是多少| 亚洲国产91精品一区二区久久| 牛黄色久午久| 亚洲精品少妇| 你草精品在线视频| 懂色AV蜜臀无码精品APP| 色综合一本| 国产熟妇一区二区| 欧洲精品二区| 美国日韩黄色片| 成人在线视频一区| 午夜视频久久久久一区| 国产AV色黄看到爽| 天天综合-91入口| 操逼操2| AV乱伦专区| 久久社区一区二区三区| AV污污污污| 日韩精品亚洲专区在线影视| 亚洲超碰AV| 久久激情五月| 91精品久久久久久77777| 日韩精品在线放| 神马视频久久久久久| 亚洲欧美碰碰| 伊人成人中文字幕久久网| 四虎av在线| 麻豆精品久久久久久久| 嗯嗯不要视频| 99精品丰满人妻无| 欧美传媒| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 天天做日日爱夜夜爽| 亚州色图欧美| 久草免费福利在线播放| 亚洲熟女乱色一区二区三区久久久 | 国产一区96在线| 波多野42部激情无码喷潮| 你草精品在线视频| 亚洲精品一区二区三区在线播放| 九9热伊人| 人人操AV| 人人贴人人摸| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 大吊色| 九九无码视频| 丰满人妻一区二区三区色-百度| 九九热男人天堂| 欧美老妇曰批的视频| 亚洲深夜福利| 屌妞视频久久久久久久久久久久| 另类小色呦| yiqicaoav| 亚洲国产中文字幕| 久九干| 国产又色又爽又舒服的三级视频| 久久大| 啊啊啊啊好疼| Av色五月| 玖玖97综合| 成人亚欧免费视频| 大色综合| 天堂亚洲欧美| 97中文字幕一区| 91亚洲欧美色图| 天天欧美色| 色爱综合网| 国产丝袜欧美在线视频| 五月天亚洲色图| 日本女人久久久| 蜜桃传媒视频第一区入口在线看| 激情欧美日韩女同久久| 亚洲中文人妻色| 91美女视屏| 伊人97超碰| 中文字幕在线观看丝袜| 国产亚洲女v在线观看| 99国产精品视频尤物| 国产9 9在线 | 亚洲| 囯产精品久久久久久久久久梁医生 | 久操大香蕉| 91人人| 毛片麻豆91糖心精品毛情片| 久都青青视频| 亚洲啪啪性视频| 亚洲日韩视频二区| 一区二区三区高清天码| 91久久国产综合精品| 婷婷色网| 91丨熟女丨丰满熟女| 国产家庭乱伦表演| 国产精品白丝www| 欧美成人综合| 特级丰满少妇一级AAAA爱毛片| 尤物黄色在线观看网站| 日本不卡一区二区| 九九九网站| 熟女一区二区三区四区| 亚洲区限制级| 热热热热日日漂亮永久永久国产日| 五月婷色| 五月天激情视频| 十八禁啪啦拍视频无遮挡| 午夜国产成人精品视频| 五十路六十路七十路熟婆| 97免费在线观看| 黄页av| 俞拍久久国应视频| 国产又粗又长又大的视频| 中文字幕久久精品一区| 97超碰热线| 好爽,再快点啊哈嗯嗯嗯嗯| 国产67194| 亚洲成人免费在线| 狠狠色色| 九九无码| 国产精品 亚洲情色| 中文字幕视频2区| 成人黄页| 97伊人超碰| 校园春色亚洲色图| 美女久久久久久久久久久| 日韩欧美~中文字| 亚洲精品97久久| 1区2区3区在线视频| 国产亚洲日本| 怡红院怡春院| 成人九九| 国产 日韩 另类 视频一区爱| 久久本道| 美女啊啊啊啊啊| 亚洲毛片一级带毛片基地| 97亚洲综合电影| 999久久芭蕾| 日韩人妻有码免费视频| 屌逼传媒| 精品夜夜澡人妻无码AV| 国产精品久久久久久久毛片1| 大香蕉手机在线视频| 成人情色综合网| 玖玖资源综合在线视频| 天天色怡春院| 17c嫩草51久久91嫩草| www.色婷婷.com| 九九热av| 夂久色| 欧美九九九| 丁香九月激情啪| 91亚洲黄色网| 成人性爱电影网| 伊人96在线| 久热超碰| 日日爱99| 亚av顶级裸体一区二区三区四区五区| 99re免费视频精品全部| 动漫区日韩区欧美区| 三级色综合| 欧美丝袜中文字幕07在线| 精品一区96| 大香蕉黄色一级片免费看| 久久中文字幕女同性恋一区| 91色色色| 亚洲天堂在线怕怕视频 | 久操97| 九九十八精品| 天天日少妇逼AV| 久草福利在线资源站| 亚洲精品一卡二卡三卡福利视频网站 | 骚货 中文字幕 av| 日本成人电影资源网| 97在线观看免费| 久久发布国产伦子伦精品| 人人操人人爽人人操人人| 蜜臀亚洲综合一二三四区| 艹精品| 天天激清| 深夜激情| 青青草在线视频人人想人人上| 久久九九国产精品| 91春色| 国产精品在线一区二区| 成人精品视频一区二区| 色情综合| 国产AV久久久蜜爱影集| 操逼天美3区| 精品无码久久久久久久杏吧| 新91视频.cmp| 丰满少妇高潮无码| 男人亚洲91首页在线| 欧美日本中字另类在线| 婷婷丁香激情| 啊啊啊好想要| 国产超碰AV在线精品| 亚洲三区视频| 五月丁香| 午夜欧美神马久久久久| 日本中文字幕一区| 永久免费观看的毛片的网站| 人人操人人操人人操人人操人人操人人人11.CM | 嗯嗯嗯,草死我| 九色在线熟女国产黑人| 日韩欧美一级特黄大片| 欧美日本中字另类在线| 欧美黑人精品一区二区| 亚洲 日本 一 二 三| 992这里有精品| 亚洲综合另类欧美久久久| 九九九久久久久| 久久久久久免费电影| 亚洲成人ab| 在线αⅴ| 爆操无码| 高清不卡国产| daxiangjiao你懂的| 香蕉99秘 一区精品蜜桃臀| 亚洲男人天堂av| 日韩丰满熟妇| 国产怡红院| 综合一区二区影视| 国产精品不卡av免费在线观看| 亚洲国产精品V?在线播放| 亚州熟女乱伦| 91九九| 蜜臀99999| 亚洲精品黑丝| 亚洲日产专区婷婷| 久久久久久久综合,国产| 激情欧美97| 无码精品蜜桃一区二区三区ww| 丁香久久| 日日夜夜模| 日韩黄片影院| 亚洲丁香花色| 亚洲系列欧美| 中文字幕精品一区二区精| 天天干天天拍| 色哟哟av| 国产日韩区| 91狠狠综合久久久久久| 99热精品在线观看| 黄片免费看黄片免费看| 熟女网站最新| 日本性交操一区二区不卡系列| 激情五月丁香五月| 色老大| 免费公开人人操| 高潮综合网| 草草影院最新网址| 青青草视频在线观看一区二区| 怡红院久久老司机| 人人爱人人操人人性| 国产乱人妻精品入口| 一级性爱视频免费在线| 国产 日韩 欧美 人妻 熟女 中文| 久久成人午夜狠狠| A片 AV一级在线播放观看免费| 精品一区二区三区四区外站| 强奸乱伦中文字幕AV| 久久视频,这里只有精品| 芊芊操逼视频无码| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲无码太久| 美女毛片999| 色婷婷九月| 国产自偷| 无码国产精品久久久久| 五十路熟女人妻一区二区在线观看| 夜色AV无码手机在线影院| 自拍盗摄一区| 4虎在线视频| 被男人吃奶很爽的毛片| 日本ZZ高免费A级视频| 91老司机在线视频免费观看| 欧美麻豆成人同性GⅤ在线| ji熟女.com| 3PAV乱伦视频| 欧美激色| 国产1727欧美| 欧美一区二区成人一卡| WWW.加勒比人妻一区不卡.com| 乱人伦 国语对白:视频直接看| 婷婷导航| 成人片在线播放| 91精品国产高清久久久久久,亚洲成人 | 亚洲日韩少妇一道本视频| 99中出在线| 97chaopenrihan| 国产精品丝袜在线| 久久久精品,3| 亚洲欧美日韩免费电影| 草莓精品视频在线免费观看| 亚洲av噜噜噜噜噜噜| 久久久99免费| 波多野42部无码喷潮在线观看 | 国产一区在线观看无码AV| 欧美熟妇精品黑人巨大一二三区| 成人五月天丁香激情综合| 97se综合网| 国产成人无码久久精品| 黄色AV免费| 久久精品电影| 久久精品国产精品亚洲艾通辽熟妇| 日本操逼视频免费| 三级片网站在线播放| a片亚洲一本通视频| 国产精品国产亚洲区艳妇糸列| 欧美激情久| 91人妻视频在线| 五月色网| 在线观看无码三级少妇| 亚洲毛片基地专区| 久久精品人妻一区二区| 亚洲人妻中文高清| 天天综合-91入口| 日韩BBN| 色婷婷激情| 无码免费在线观看黄色片| 亚洲久9| 九九九九精| 欧美精品系列| 精品成人久久久人人亚洲| 国产亚洲日本| 天堂涩涩| 日本五区不卡| asc国产精品| 骚货 中文字幕 av| 国产又大又粗又长视频在线| 亚洲午夜免费狠狠干| 久久久久久久久久黄色网| 人人爽夜夜操| 日少妇亚洲版| AV中文在线可看| 丁香六月天| 国产精品色色| 人人操人人93| 日本天天人人狠狠在线日美女| 欧美三四五区| 美女操逼福利视频| 日日摸天天爽夜夜欢| 欧美91精彩| 亚洲激情网一二三四区| 人妻少妇被猛烈进入中| 91天天| 4虎在线视频| 美女97超碰| 先锋精品av色鲁| 美国一区二区三区视频| 亚洲无992tv| 91免费看中出视频| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 日本东京热大香蕉a片| 看日韩美女二区三区免费操逼视频 | 国产精品久久aV| 久久中文字幕人妻熟av女蜜柚| 一二三啪啪专区| 丁香五月综合| 欧美日韩性爱视屏免费看了| 久久这里只精品免费福利| 九九九一二三| 天天操天天干美女网址导航| 中文字幕亚洲欧美在线不卡| 91 手机在线播放 绯色| 亚洲AV无码乱码在线观看性色| 国产午夜福利电影免费在线观看| 精品99999| 人妻丝袜肏逼| 69AV女优男人的天堂| 五月婷婷深深爱| 99久久九九| a在线观看| 日韩黄色一区二区三区| 九月激情婷婷| 精品高清av中文字幕| 丁香婷婷啪啪| 亚洲免费97免费| www.色五月| 国产乱人伦AVA麻豆软件.| 秋霞一级A片黄色视频| 久久风骚城市人| 97视频新免费| 久久久久人| 久久久精品九| 大香蕉伊然在亚洲91| 日韩二区三四区五区六区在线看| SUV一区二区在线看| 欧美午夜色妇色鬼| 9久久美女首页| 亚洲精品国产av天美传媒| 婷婷亚洲综合| 中文字幕一区 二区三四五 区日 日骚| 欧美久热| 自偷自拍的亚洲视频| 久久一区二区三区入口| 亚洲图片欧美在线视频| 五月婷在线| 在线 制服丝袜中出 人妻|