色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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
返回資訊列表
岛国片国产成人亚洲播放| 99久久综合| 91bbb| 精品综合久久久久久97| 亚射在线| 中美日韩毛片| 亚州色国| 打av高清| 欧美18禁91| 欧美色图天堂在线| 中文字幕高清20页视频| 丰满人妻一区二区三区四| 亚洲图片偷拍视频区| 日美免费黄片| 懂色AV蜜臀无码精品APP | 这里都是精品在线观看| 日韩亚洲国产视频| 日韩三A大片在线观看| 99精品人人爽| 婷婷久草一区二区三区| 97人亚洲综合字幕| 婷婷久久综合| 8050午夜少妇无码| 亚洲成熟国产精品美女| 97国产综合欧美| 国产精品高朝久久久久久久| 欧美第一页性| 躁躁日曰躁2020| 夜夜騷av、一區二區| 后入式999| 久久精品免费| 深夜激情无码| 在线日韩精品一区二区三区| 91激情国产| 黄色十八禁网站| 欧美毛片在线网| 在线国产一区二区av| 欧美高清18A片| 2024黄色视频| 97综合久久| 中文字幕熟女人妻丝袜丝| 淫乱图区 | 中国黑人三级片网站上区| 免费中文在线| 自怕偷自怕亚洲精品| 啊啊啊久久| 欧美天天影院| 秋霞Av理论一级在线| 黄色免费一级在线毛片| 色呦呦国产精品免费看| 久久毛卡| 亚洲AV无码国产精品久久久久| 好湿好紧好爽 视频| 免费农村成人少妇人妻Aa一区二区视频 | 第四色奇米影视777| 激情抓乳插进去啪啪啪日韩 | 亚洲黄色电影| 国产精品不卡一区二区三区av| 亚洲av综合伊人久久| 久草免费福利在线播放| 小草精彩毛片| 91bbb| 国产精品一级特黄aaa大片在线观看| 看日韩美女二区三区免费操逼视频 | 屁股久久久久久| 色网在线视频观看免费| 青青草视频爽一爽| 97国产精品| 久久婷婷综合国际产色怕| 午夜欧美J进J出白浆流出久久久 | 黑人综合网| 操逼操逼逼操操逼91| ,国产乱人伦精品一区二区三区| 久湿久久| 国产成人bd在线观看| 99.色网| 91精品国产91久久久久久久久久久久| caoni国产亚洲av| 啊啊啊在线观看免费视频| 韩国一级做a久久久久| 欧美性爱视频免费一区一A | 国产白嫩精品久久| 91伊人久| 午夜精品人妻二区三区| 岛国视频一二三区| 久悠悠av| 欧美色图在线视频少妇| 日逼国产| 99re这里| 东京热激情视频一二三区| 国产伊人精品在线| 欧美.亚洲.另类.丝袜.制服.诱惑| 草B在线| 精品久热| 久草尤物| 热热色青青草| 91麻豆天美国产| 欧美亚洲中文字幕| 蜜臀亚洲中文| 九九RE视频在线精品| 免费精品无码一级毛片牛牛影视| 成人天天看站长推荐| 国产日韩区| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 日日摸天天爽夜夜欢| 91N欧美| 老熟妇乱轮| 美女主播色欲91抠b在线播放| 成人一级性爱| 亚洲久草AV色图| 九九黄色网| 男插女青青影院| 理论久久婷婷网 8| 欧美αv.com| 台湾佬大香蕉| 曰韩香蕉97| 人妻啊啊人妻啊| 思思热在线cao| 一级黄碟在线观看| 五月天伊人| 思思热在线| 91社区拍啪人妻| av一区二区三区不卡| 欧美色吧综合| 麻豆传媒一区二区在线观看| 日韩电影天堂视频一区二区| 牛牛aV| 成人无遮挡毛片免费看| 日本综合色图| 日产操逼| 国产亚洲精品无码三区| 天天插夜夜操| 操逼视频亚洲| 在线观看色视频| 日本精品一区二区中文字幕| 丁香婷婷啪啪| 亚洲国产欧美日韩人妻日中文| 性爱动态120秒| 五月天综合在线| 91久久久久久久久久久| 校园春色亚洲无码| 亚洲高潮影院| 少妇无码av专区线| 91小视频| 欧美亚洲20p| 欧洲在线性爱视频| 在线观看精品国产免费| 亚洲人成网www| 欧美日韩国产电影| 亚洲色性| 八戒午夜福利理论片| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 亚洲av影院在线观看| 日韩免费大片一级播放| 午夜精品视频777| 蜜臀av一区二区三区免费观看| 精品福利视频| 天天躁日日躁狠狠躁| 欧美一级二级三级| 国产亚洲国产超碰| 久超碰这里只有精品| 亚洲色 国产 欧美 日韩| 日韩综合97P| 国产性爱乱伦AV| 亚洲高清少妇| 黄色毛片A片| 日本ZZ高免费A级视频| 色婷婷视频| 老女人综合网| 色狠狠综合噜一二三区| 国产高清精品一区二区三区毛片 | 超碰日韩美妻| 日韩欧美国产一区二区三区四区| 人妻内射一区二区在线视频| 久久成人午夜精品影院 | 欧美精品成人亚洲| 色天天野狼综合社区| 久久伊人最新网址视频| 精品国产网站| 又大又长又粗又爽又黄| 天天性射网| 97久精品| 黄片在线免费在线观看| 啊啊啊啊网站| 亚洲人久久久网| 久操大香蕉| 粉嫩av平台| 超碰色美女| 欧美日韩淫加| 婷婷亚洲综合| 国产高清精品一区二区三区毛片| 色老大| 人人超碰在线观看黄| 亚洲激情网| 日本成人A片网站| 99精品视频在线观看| av大香蕉网站| 国产成人拍国产亚洲精品| 宗合情欲网| 啪啪自拍九九综合| 久操com| 人夜夜精品网站香蕉嫩草| 精品成人av一区二区三区在线| 精品人妻15区| 日韩紧密久久| 国产9熟妇视频网站| 99re在线| 欧美黄片视频在线观看免费 | 色在线亚洲视频www| 亚洲AV乱码专区国产噜噜亚洲| 亚洲精品国产AV天美传媒| 人妻娇喘 激情视频| 欧美91在线| 97久久免费| 久久久久久久六六| 久久黄色网址| 天天操天天插| 久久久久九九九| 久久国产999| 色噜噜狠狠色综无码久久合欧美| 激情综合网一盗摄| 日本三级日本三级三级人妇四虎| 留下AⅤ黄色片| 成年人三级黄色片视频| 欧美懂色综合网| 我想要啊 啊 啊| 四虎影视在线| 91丝袜美女国产| 亚洲黄网在哪免费看| 8x福利精品第一福利视频导航| 中国和日本人色哪个不下载能放| 999九九精品| 男人的天堂在线2| 另类图片五月天| 国产极品美女高潮无套在线观看| 国产欧美成人第一页在线观看| 在线播放欧洲免费av| 另类欧美| 久久原创中文| 欧美亚洲高清晰| 国产欧美后入| 蜜臀一二三区| 91精品久久久久久| 9丨久久九九九| 亚洲AV永久无码精品成人调教| 97欧美久久久久久久| 欧美国产一区二区三区麻豆传媒| 天天干天天日天天射黄色片| 江都AV在线| 天天爽夜夜欢视| 欧美视频一区二区在线| 五月天婷婷久久| 欧美成人9797| 国产久久一区二区午夜| 久久久婷婷| 日本免费不卡二区| 熟女人妇一区二区三区| 在线中文字幕极品av| 国产成人网站在线观看| 天天插天天插| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 久久久久9久久久久| 午夜天堂网| 亚洲和欧美裸体美女双飞视频| 蜜臀亚洲综合一二三四区| 超碰97综合网| 欧美日韩美女精品久草一区二区三区| 欧美 牲| 超碰到97情色| 91久久青青草原精品| 免费看黄片现成| 久久东京国产精品视频| 欧美天堂第二区| 国产免费一区2区3区| 国产黄色 A 片免费看| 丰满少妇人妻久久久久久| 大香蕉伊然在亚洲91| 热99这里有精品综合久久| 久久久久久亚洲中文| 男人兔费天堂| 亚洲欧美97√| 91精品丝袜久久久久久| 精品无码一区二区三区| 亚洲国产麻豆一区二区三区| 亚洲精品黑丝| 一级免费啪啪片| 操b网站亚洲无码| 青娱乐国产精品| 深喉吞精| 亚洲性爱高潮影院| 无码人妻毛片丰满熟妇精品区| 亚洲成熟国产精品美女| 青青青青草av在线观看| 色综合av男人天堂| 人妻熟妇一区二区三区| 久久女人视频| 人妻中文字幕精品无码| 久久人妻少妇| 亚洲 欧美 手机在线观看| 日本天堂在线播放| 色五月亚洲| 高清视频一区| 91丝袜在线观看视频在线观看| 欧美不卡五十路| 96精品在线| A一区片| 欧美日韩欧美| 玖玖资源中文字幕制服丝袜| 超碰精品在线| 久久久久久久亚洲Av无码| 99在线精品视频| 久久亚码| 一区二区 电影 亚洲| 美日韩成人| 一起草日韩| 国产h小视频在线观看免费| 媚薬在线视频麻豆| 日韩小电影| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 欧美天天射| 欧美日韩久久精品爱爱| 91精品91久久久久77777俄罗斯老妇姓x| 人伦四五区| 78精品| 日本熟妇浓毛hdsex| 久久久久9999| 盗摄女人妻在线| 久操婷婷| 亚洲综合图色在线| 97超碰影音| 国内伊人久久久久久网站视频| 欧美精品69性爱| 色官网色综合| 五月丁香色综合| 久久99手机免费视频| 中文字幕女同在线| 久草看看看| 欧美精品23| 金典av| 国产日韩美女小穴视频网站不卡| 少妇与黑人高潮在线| a片在线播放| 啊啊啊啊啊好舒服视频| 久操网线| 色综合91| 亚洲麻豆18发?| 欧美大干日韩| 国产精品色| 超碰人妻久久| 51一区二区三区| 亚洲欧洲综合| 在线毛片片免费观看| 搞中出久久| 国产又粗又长又爽又色| 旡码电影特区| 日本高清熟女久久一区| 欧美亚洲首页| 欧美中文字幕日韩在线| www.av在线观看| 日韩AV电影网站| 精品一久久久| 国产一区二区在线播放| 激情综合二| sss视频华人在线| 激情四射熟女丝袜| 又粗又长又大国产不卡| 曰韩操B| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 精品91日日夜夜超清资源| 久久人| 人妻人人做人人澡人人爽欧美一区| 2018色综合天天操| 成人欧美日超碰| 强奸乱伦AV一天堂网| 婷婷五月天网| AV乱伦专区| 欧美性综合| 97国产|免费| 六月丁操逼| 97视频新免费| 九九九九九九九九九五码| 奇米四色影视777久久久| 国产亚洲色婷婷久久99精品91葵花宝典| avav青青草久久夜| 亚洲脚交| 成人日本精品九区| a'v在线资源| 欧美熟妇人体| 国产激情片在线观看| 天天cao在线| 五月天久久婷婷亚洲| 午夜理论片在线观看免费| 大香蕉日韩欧美| 熟女日韩| 激情小说五月天| 永久免费av无码网站国产app| 极品久久久久久久久久久久久久| 日本日逼视频网| 国产精品点击进入在线影院| 78m成人视线| 搡老女人老91妇女熟女| 欧美熟爽综合| 色九区| 亚洲导航深夜福利| 国产综合色精品在线观看| 色97综合中文字幕| 99re这里| 欧美老妇女内射网址| 伊人久久综合影院| 色男人色天堂东京热| 乱伦日本色图AⅤ| 超碰导航97| 插入综合网| 超碰98综合网| 亚洲成人日韩小说| 天天日美女的B| 青青草一区二区高清无码视频| 99.色网| 亚洲欧美综合区自拍另类| 日韩人妻资源网| 中国AAAAAA黄色片| 日人妻视频91| 亚洲精品久久久久毛片A片拉屎 | 久久人人妻| 国产精品区在线12p| 性一交一乱一交A片久久四色| 欧美性视频二区三区| 91在线限制级| 精品熟女呻吟久久91| 大香蕉草草| 欧美亚洲特P| 污色区网站| 懂色中文一区二区三区 | 婬女免费一二三区A片| 性色av网站| 日韩三级视频一区二区三区| 亚洲国产精品乱码在线观看| 91九九九逼| 久久人妻一区二区三区高清| 欧美性爱一区二区三区| 人妻偷拍一区二区三区| 国产白嫩漂亮KTV在线| av资源在线观看少妇| 日韩人妻操B| 午夜毛片高清免费不卡| 欧美激情 亚洲色图| 丰满人妻一区二区三区| 欧美一级黄片视频在线| 激情第四色| 国内97干免费看| 曰韩中文人妻视频| 一本大道久| 天堂九九九九九九九九九| 色9999日韩国产| 欧美很很操视频| 无遮挡h肉动漫在线观看| 综合色区偷拍| 在线情色电影 91大 | 国产乱弄免费在线视频。 | 日夜干射色啊| 玖玖爱在线视频免费观看| 欧美色图另类图片| 日亚韩精品视频二区三| 国产精品无码在线| 国产97色在线 | 亚洲| 亚洲情色五月天 | 久久国产乱子伦精品免费女人| 精品国产Av无码久久久伦古装| 欧美精品99久久久**| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 97手机日韩| 欧美日产国产在线成人第一区| 国语人妻精彩刺激| 麻豆91熟妇人妻中文字幕茄子| 中文字幕成人理论在线| 精品少妇人妻| 99久久精品国产高潮| 久久9精品网站| 国产AV超爽| 黑人在线91| 女优免费一区二区永久| 国产在线激情| 亚洲中文字幕噜噜噜久久久| 中文字幕蜜乳av| 亚洲男人天堂Av| av资源在线播放天堂| 操逼视频亚洲| 日本裸体久久色噜噜| 超碰在线第一页| 啊啊啊无码| 亚洲欧洲日韩国产自在线| 熟女少妇一区二区三区| 老鸭窝日丰县女人| 韩日自拍| 伊人伊人LD| 91人妻做a观看视频| 性欧美另类高清| 国产偷仑| 欧美日韩亚洲少妇寂寞影院正在播放 | 在线综合 亚洲 欧美中文字幕| 欧美顶级黄片AAAAA在线免费看| 超碰在线国产| 久久精品小视频| 欧美黄色图片| 操逼片国产| 欧美中字不卡| 色偷偷超碰亚洲| 一区二区久久天天干狠狠| av一区二区三区 中文| 伊人久久国产免费观看视频| 久久精品噜噜噜成人看免欧美大片| 久久久久久69国产一区二区| 超碰97.com| 国产伊人精品在线| 爆乳免费黄网站| 69少妇一区二区| 日韩人人精品| 久久综合18p| 天堂网 主播 亚洲| 免费看日本操逼视频| 亚洲色图A| 欧美国产视频| 日本三级韩国三级99| 国产精品视频自拍在线| 人人操人人操人妻人| 嗯嗯啊啊用力视频免费| 深夜激情无码| 国产日韩区| 亚洲自拍97| 91欧美性| 99999精品视频| 91丨熟女丨丰满熟女| 性色AV网站| 97se综合| 激情丁香五月| 九九亚洲| 91亚洲欧美综合高清在线 | 婷婷美人网| 五月天久久久| 国产精品视频白浆免费| 狠狠久久手机视频精品| 久久精品噜噜噜成人看免欧美大片| 亚洲色图超碰在线| 婷婷丁香五月综合| 综合欧美激情网| 1区2区3区视频| 久草成人影片| 亚洲精品一区二区免费在线观看| 亚洲人精| 久久极品一区二区| 日本中文字幕在线视频| 乱论91| 大香蕉综合网| 欧美视频一区二区三区| 成年人网站在线免费观看| 公司1区2区3区精产精| 老熟女熟妇| 日韩啪啪啪啪啪| 精品-91人妻子系列| 国模无码一区二区三区在线| 1人人看人人摸人人操| 特色a在线上| 久久超碰com| 9久久久久久| 亚洲丨在线| 久久久少妇诱惑精品视频| 亚洲限制级| 蜜臀AV成人精品蜜臀| 97干色天堂| 操逼网免费无码视频| 激情五月天社区| 国产强上视频在线观看| 在线观看中文av字幕| 凹凸久久人人| 十八禁的黄污污免费网站| 奇米狠999| 啪啪AV导航| 99久久久无码国产精品性男| 日本人人操人人操| 国产精品三级视频网站| 亚洲麻豆精品二区三区| 操狠狠| 国产青一二三| 亚洲综合113页| 综合激情97| 91无摭挡| 高颜值美女口爆高潮浪叫| 男人的天堂久久狠| 91性网| 欧美人妻少妇| 成人av影院在线观看| 亚州AV无码国产精品| 欧美疯狂做爰xxxx| 久久亚洲影院一区二区| 伊人国产视频| 久久久久久中文| 91热热色| 成人无遮挡毛片免费看| 久久直播国产| 五月婷在线| 一区二区首页| 国产精品色约约| 久久久久久性爱免费视频| 99热这里只有是精品10| 亚洲欧美setu| 五月丁香影视| 精品无码一区二区人妻久久蜜桃| 中文字幕一区日韩精| 国产高清自拍| 黄色一区三区| 校园春色综合| 日韩精品免费高清视频在线| 欧美激情 亚洲色图| 操淫穴亚洲五月丁香| 夜夜嗨视频| 中文自拍欧美影视| 午夜欧美神马久久久久| 天天干夜夜一操| 91爱做| 日本肉体xxxx裸交| 欧美日韩国产电影| 无套后入双马尾| heyZO天然素人无码AⅤ专区| 99∨VTV| 亚洲青色欧美| 国产v亚洲v日韩v欧美v片另类| h4610国产人妻| 中文字幕在线播放2中文字幕在线观看2| 精品三级在线专区| 亚洲 欧美 手机在线观看| 色婷婷成人综合| 好爽视频在线观看| 最新亚洲人成网站在线影院| 啊啊啊啊啊啊啊国| 欧美性高潮| 人、人、摸,人、人、草| 欧中日成人免费影视| 蜜臀久久99精品久久久久久无删减| 探花熟女,姿勢到位,體驗感也到位| 中文字幕91综合| 久久加勒比| 99热这里只有精| 中韩中文字幕在线观看| 日韩无码黄色片| 色区久久| 后入国产| 亚洲精品视频在线播放| 欧美热图99| 欧美日本一区二区a人| 综合色拍| 99国产精品视频尤物| 开心六月色| 九九九999久久久网站| 黄色小视频日本txt| 久久精品视频在线观看| AAAA欧美日韩| 中国探花熟女| 国产自偷| 久久婷婷视频| 91丝袜视频在线观看| 青青草日韩无码| 一区二区三区麻豆| 国产精品青青草| 九九九色| 97超碰免费人人性爱| 熟妇xxxxx性春色| a人欧美综合天堂麻豆| 日韩无码三级影院| 99蜜桃臀久久久欧美精品网站| AV乱伦专区| 懂色AV中文| 欧亚日韩中文在线| 亚洲欧洲网站免费观看| 大粗鳼巴久久久久| 人人手机欧洲亚洲国产人妻| 国产高清吃奶免费视频网站| 樱花草社区www中国| 成人aⅴ一区二区三区| 少妇激情AV| 五月天激情小说| 1240青青草一区二区三区视频天爱| 久久婷婷在线观看视频| 日本十八禁免费看污网站| 少妇特黄一区二区三区| 久久久久9999| 清纯唯美亚洲| 在线岛| 91天堂丝袜美腿| 成人资源中文字幕在线观看天天| 亚洲码在线中文在线观看| 影音先锋一区二区在线资源| 久久婷色| 日韩字幕一区| 大香蕉一人| 亚洲美乱| 日韩不卡a级视频专区| 肥佬影院91| 午夜欧美J进J出白浆流出久久久| 搡老熟女老女人老熟妇免费视频| 天天干嫩逼网| 亚洲91大片| 农村妇女一级二级三级视频| 亚洲成人性| 伊香蕉综合久久久久久久噜噜噜| 性色av一区二区| 久久精彩免费视频| 自拍偷拍草一草| 婷婷丁香人妻 | 美欧色综合| SS久久| 3028国产精品| 被男人吃奶很爽的毛片| 欧美日韩制服| 欧美日韩人妻婷婷一区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 操逼免费视频无码国产| 日本女人久久久| 久久熟女久| 国产一区麻豆免费观看| 丁香五月婷婷色| 欧美人妻久久精品二区三区| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | www.av不卡中文字幕| 炮色五月| 日韩视频啪啪| 蜜臀久久99精品久久久久久酒店| 9长久久精品| 亚洲国产综合久久久性感熟妇| 操逼片中文| 高清无码久操视频| 国产女主播视频在线观看| 中文字幕av久久爽Av| 日韩三级一区 | 亚州欧美综合| 久久久久久中文版| 超碰天天久久79| 国产av高清版| 欧美 亚洲 制服 精品| 久久九九综合| 91精品久久久久久综合五月天| 一级黄色性爱A级片| 国产精品亚洲高清在线| 狠狠色伊人亚洲综合网站色| 丰满人妻一区二区三区蜜桃视频| 欧美色91| 日韩人妻一区二区精品| 十八岁啪啪视频免费看| 在线无码视频| 国产成人亚洲精品无码古代早漏男| 欧美岛国精品在线观看| 国产精品第一区第一页| 国产午夜精品在线观看| 日韩一级欧美一级国产一级台湾| 亚洲天堂男人网| 无码人妻一区二区三区免费九色| 9精品久久久久| 亚洲资源站| 亚洲激情视频| 日韩免费av片高清无码| 影音先锋少妇| 中文字幕交换人妻| 日逼国产| 玖玖在线视频| 超91综合网| 91伊人影视综合| 天堂精品小草| 欧美色图亚洲激情| 日韩性爱视频在线免费观看 | 天天看精品动漫视频一区| 欧洲在线性爱视频| 91午夜无码| 一,爱啪啪,在线免费视频| HEYZO高无码国产精品227| 久久久久久久国产a∨| 久久xx| 亚洲综合春色| 小草av不卡亚洲二区| AV久日| 欧美性爱一区二区| AV在线性爱| 一区二区三区视频在线观看免费| 久久久久久久人妻| 99性爱| 亚洲码和欧洲精品激情系列| 国产一区二区三区,在线观看观看| 亚洲脚交| 91综合在线| 伊人久久大香线蕉无码| 午夜男人一级A片7777| 青娱乐 成人娱乐在线| 好爽免费视频,| 亚洲视频精选| 色狠狠 - 百度| 久热久| 97 九色| 妇女一区二区三区| 日韩人妻播放| 久久国产视频性吧 | 亚洲天堂一区二区久久| 一区二区三区激情在线观看| 亚洲精品一二三四区| 美日韩一二三区| 91天美| 性做久久久久久久| 熟女色图在线| 精品十八在线观看| 成人七区| 天天综合网国产| 精品人妻一区二区三区蜜桃视频| 91无遮挡| 婷婷综合网| 久久夜嗨| 人人爱人人乐人人操| 日本精品高清一二区一本到| 人妻出轨一区二区三区| 九九九久| 国产又大又硬又长又粗| 日本少妇va7777| 性色A∨91| 国产97视频免费观看| 东京成人一区| 久久一区二区三区四区五区| 久久激情网| 欧美天堂第二区| 色操逼网| 人人手机欧洲亚洲国产人妻| 亚洲Av诱惑| 婷婷丁香五月天综合东京热| 欧美在线55555| 精品午夜福利导航| 99精品在线| 亚洲在钱| 屁屁影院一区二区三区国产| 91狠婷| 亚州综合在线| 强奸乱伦动态污图免费| 99精品久久久久久| 极品销魂美女一区二区 | 国内亚洲高清无码| 亚洲一区中文字幕一区| 97色97好| 男女性无套 免费九一| 亚洲免费精品一区| 97欧美| 天天干天天日天天射黄色| 欧美丝袜91| 久久99久久99精品免视看婷婷| www. 男人天堂成人在线| 波多野结衣先锋影音| 欧美天堂日韩三级国产传媒| 激情黄色片在线观看| 欧美亚综合色图| 久久草草亚洲蜜桃臀| 激情第四色| 久久久久久97| 九九热免费视频| 熟妇人妻精品一区二区| 免费看毛片操穴| 女性91网站| 黄网站黄视频网站进入口| 乱伦一二三区| 人妻天天爽| 偷拍自拍在线视频观看| 国产三级中文字幕粉嫩| 99热99在线| 蜜臀一区二区三区在线| 特级大荫道BBwBBwBBW| 高潮的A片激情扒开一区| surenchaopeng| 欧美视频在线视频免费va| 超碰在线人妻不卡| 黄色大香焦1级‘′‘| 欧美久久人妻少妇一区二区| 强奸乱伦大香蕉网| 一二三区精品视频| 国产亚洲 中文欧美久久| 超碰在线人妻中文字幕| 91色伦综合| 五月色网| 日本影视久久免费| 91久久久久久久| 国产日韩欧美三级片| 精品人妻一二三| 午夜精品久久久久| 最新日产中文在线麻豆| 野狼福利社区| 精品一久久久| 99热在线播放| 热热色中文无码| 91美女色视频亚洲| 视频二区美腿丝袜制服人妻欧美| 凹凸视频在线一区二区| 亚洲啪啪啪啪视香蕉| 激情五月天网站| 性影在线视频| 97资源久久| 无码男人天堂| 久久人人妻| 久久香蕉国产线看观看猫咪av| 亚洲激情深爱文学小说网站| 91亚州欧美| 五月综合激情网| 97在线精品观看视频| 天美91| 国产不卡的视频 | 91伊人| 韩日自拍| 国产成人主播| 用力操死我| 夜夜草网站| 欧美操逼熟女| 91观看 国产白丝| 色网1| 乱码熟妇人妻久久久| 激情五月天婷婷| 成人性爱美曰韩| 欧美一二三级精品在线| 啊啊啊啊啊啊在线| 熟女91网| 91丝袜美腿片| 日韩人妻大香蕉| 看一级黄色视频| 少妇高潮对白在线观看| 亚洲国产精品无码AV久久久| 精品黄色电影| 免费视频观看60秒| 国产AV线| 欧美变态激情网| 91精品成人| 丝袜性亚洲| 亚洲麻豆精品二区三区| 97在线视频观看| 日本熟女中文| 亚洲AV无码久久久国产精品| 国产成人欧美一区二区三区的国产| 天天干天天舔| 无码高清操逼网址| 91天天综合网| 日韩三级伊人| 欧洲综合色图| 男人天堂免费| 国产精品视频在线播放| 亚洲五区熟女| 97欧美色资源| 91n免费处女| 欧洲精品久久| 亚洲精品不卡一二三区| 97色色,97综合| 亚洲男人天堂2013| 一本久久精品中文字| 欧美人人天天网| 亚洲色图第四色| 亚洲AV在线资源| 中文字幕国产| 少妇淫妇久久久久久久| 日韩欧美日韩| 色香天天| 国产激情视频一区区三区| 欧美成人免费在线观看| 探花精品 一区二区| 亚洲一区在线观看欧洲| 亚洲春色欧美激情自拍| 亚洲国产ⅴ高清在线观看| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 精品国产网站| 超碰这里只有精品| 人人九九精| 午夜美女诱惑电源网| 色噜噜国产精品视频一区二区| 国产女人视频三四五区| 中文字幕五月婷婷免费| 午夜成人爽爽爽爽A片李冰冰| 一级AV性爱| 户外裸露刺激视频第一区| www…国产操逼| 蜜臀久久99精品久久久老,,| 中文无码一二三区| 欧洲亚洲人妻无码中字久久三区四区| 青青三级视频| 老熟女综合网| 久热影视| 深田咏美亚洲精品福利社| 熟女丝袜视频| 亚洲少妇诱惑| 综合激情一一91| 97干色| 九月丁香婷婷色| 天天操天天插| 国产婷婷一区| 久艹99| 东北少妇高潮zzzz| 手机在线视频国内精品| 五月天综合网| 亚洲欧美日韩电影网站一区| 国内毛片四区| 婷婷丁香九月| 五月天婷婷久久| 日韩无码AB| 香蕉人欧美综合| 色五天伊人| 人妻夜夜爽天天爽麻豆三区网站 | 99热在线观看| 色香色欲天天综合网天天来吧| 国产AV高清AV无码| 东北女人的毛片| 日韩97在线| 蜜乳AV色欲AVAV无码| 五月天久久婷婷亚洲 | 国产精品一级特黄aaa大片在线观看| 久久99热这里只频精品6学生| 亚洲男人天堂2013| 亚洲自拍偷拍视频在线| 五月天综合| 亚洲91射| 欧美强奸乱| 色网在线| 日本1区2区不卡视频| 天天日天天爽| 黄页网站成人免费| 中文一区在线视频| 中文字日本乱码| 一区二区高清视频| 免费久久精品麻豆一区二区av| 超碰地址97| 天天激情综合站| 亚洲 图片 综合91| 人人妻人人爽一区二区三区| 亚洲国产欧美中日韩成人综合视频| 一区麻豆 高清中文字幕| 91丝袜美女视频| 亚洲福利中文字幕在线| 果冻传媒一区二区三区| 欧美性爱1080p| 免费久久9999| 日韩成人在线性爱视频| 97精品视频免费| 亚洲精品久久久久毛片A片拉屎| 五月综合久久| 欧美色91| AA丁香综合激情| 精品日日人妻| 亚洲天堂久久| 九久9精品| 伊色综合天堂色97| 校园春色AV天堂| 欧美亚洲日韩人妻在线观看| 超碰97人妻自拍| 久久色情| 日韩小电影| 992这里有精品| 97超碰色色| 日韩性色b| 9久久久久| 色一射色一射| 一级@啪啪视频| 97超碰逼| 嗯啊抽插大香蕉网页| 九九九九九九免费视频| 亚洲AV无码黄色强奸| 夜夜做夜夜爽精品视频| 91在线精品| 欧美日韩亚洲天堂| 无码欧美有限公司| 13小男生GAY自慰脱裤子| 日日橹狠狠爱欧美超碰| 最好看的中文字幕在线2018| 啊啊啊好舒服视频在线观看| 1禁看欧美黄片免费看| 啪啪啪男女亚洲中文字幕99| 亚洲九区| 国产精品成久久久久午夜午夜| 国产丝袜美女诱惑| 亚洲伊人久久综合97| 色拍偷亚洲| 中文字幕 国产 精品| 国产精品扒开腿做爽爽爽视频| 色 婷97| 日本一区视频在线观看| 国产精品69久久久久孕妇欧美| 夜夜操二区| 粉嫩av平台| 狠狠干妹子| 国产丝袜美女诱惑| 色视频蜜乳| 超碰97人人乐| 夜夜爽妓女| 404操逼福利视频| 少妇蹲下露出大唇5| 精久久久91| 色婷婷五月综合激情中文字幕| 极品白嫩美少妇在地板上位骑射淫水泛滥| 亚洲欧洲无码97久久精品| 中文字幕交换人妻| …亚洲黄色厕厕女女在线播…| 亚州色图欧美| www色婷婷| 少妇一级婬片免费放一级a性色.| 人人搡人人肉久久精品| 无码视频黄色网战| 一个人免费视频观看在线WWW| 丝袜性亚洲| 五月天成人综合| 韩国午夜理伦三级好看| 精吧天堂| 少妇人妻无码| 伊人影院中文字幕| 99热这里只有精品18| 天海翼久久| 激情文学 国产一二三aV| 色官网在线| 搡老熟女免费视频| 亚洲欧美碰碰| 玖玖超碰熟| 伊人成人情色综合| 深爱五月天| 婷婷亚洲五月***久久| 91久久九九精品国产综合| 午夜欧美精品久久久| 久久久一区二区| 午夜激情床戏激情| 九热视频| 91|九色|国产熟女| 999精品国产高清一区二区| 九九九精品美女| 精品人妻一区二区三区蜜桃视频| 熟女一区二区| 狠狠久久四虎| 啊…啊…操我用力操我 | 亚洲图片在线| 国产青视频| 97人亚洲综合字幕| 久九九九九九九热| 国产精品自在线发布| 搞中出久久| 亚洲图片激情综合另类| 成全动漫视频观看免费下载| 一二三区精品视频| 草久久久| 国产精品69久久久久孕妇欧美| 性爱精品一区| 九九九九精品九九九九| 97情超碰色| 免看60秒涩涩视频| 97ai亚洲| 性欧美天天| 国产丝袜美女诱惑| 麻豆天美久久91| 欧美色三级片91| 曰本人妻人人澡人人夹| 欧美大香蕉同搞| 青草av在线| 亚洲。日韩。欧美| 亚洲综合夜色| 亚洲se91| 最好看的中文字幕在线2018| 久久丁香| 秋霞午夜视频一区二区| 本道在线| 四虎国产精品永久在线囯在线| 黑丝自慰喷水网站|