色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Canvas粒子系統(tǒng)實(shí)現(xiàn)動(dòng)態(tài)星空:前端動(dòng)畫原理與性能優(yōu)化實(shí)戰(zhàn)

Canvas粒子系統(tǒng)實(shí)現(xiàn)動(dòng)態(tài)星空:前端動(dòng)畫原理與性能優(yōu)化實(shí)戰(zhàn) 1. 項(xiàng)目概述用代碼繪制一片會(huì)呼吸的星空最近在整理一些前端小項(xiàng)目時(shí)又翻出了這個(gè)經(jīng)典的“動(dòng)態(tài)星空”效果。它不是什么復(fù)雜的3D引擎只用最基礎(chǔ)的HTML、CSS和JavaScript就能在瀏覽器里創(chuàng)造出一片深邃、閃爍、緩緩移動(dòng)的星空。這幾乎是每個(gè)前端開發(fā)者入門Canvas或?qū)W習(xí)動(dòng)畫原理時(shí)都會(huì)嘗試的“浪漫”項(xiàng)目。它看起來(lái)簡(jiǎn)單但背后涉及到的知識(shí)點(diǎn)卻非常扎實(shí)Canvas繪圖、隨機(jī)數(shù)生成、粒子系統(tǒng)、動(dòng)畫循環(huán)、性能優(yōu)化甚至一點(diǎn)點(diǎn)物理模擬。無(wú)論是用來(lái)裝飾個(gè)人博客的背景還是作為學(xué)習(xí)動(dòng)畫原理的絕佳案例這個(gè)項(xiàng)目都極具價(jià)值。今天我就來(lái)詳細(xì)拆解一下如何從零開始實(shí)現(xiàn)一個(gè)既美觀又流暢的動(dòng)態(tài)星空并分享一些我在實(shí)現(xiàn)過(guò)程中積累的、教科書上不會(huì)寫的實(shí)戰(zhàn)技巧和避坑心得。2. 核心思路與架構(gòu)設(shè)計(jì)2.1 粒子系統(tǒng)星空的本質(zhì)動(dòng)態(tài)星空的本質(zhì)就是一個(gè)簡(jiǎn)化版的粒子系統(tǒng)Particle System。我們把屏幕上的每一個(gè)星星看作一個(gè)獨(dú)立的“粒子”。每個(gè)粒子都有自己的一套屬性比如位置 (x, y)在Canvas畫布上的坐標(biāo)。速度 (vx, vy)決定星星移動(dòng)的方向和快慢。半徑 (radius)星星的大小。亮度/透明度 (alpha)用于實(shí)現(xiàn)星星的閃爍效果。顏色 (color)通常是白色或淡黃色但也可以加入一些藍(lán)色或紫色的星云色調(diào)。我們的核心任務(wù)就是初始化幾百上千個(gè)這樣的粒子然后在每一幀動(dòng)畫中更新每個(gè)粒子的屬性主要是位置和亮度并重新繪制它們。當(dāng)所有粒子協(xié)同運(yùn)動(dòng)時(shí)就形成了星空流動(dòng)和閃爍的視覺效果。2.2 技術(shù)選型為什么是Canvas實(shí)現(xiàn)這類動(dòng)態(tài)圖形主要有三種前端技術(shù)純CSS動(dòng)畫、SVG和Canvas。純CSS動(dòng)畫對(duì)于數(shù)量少、規(guī)律性強(qiáng)的動(dòng)畫比如幾個(gè)元素的平移、旋轉(zhuǎn)很高效但難以管理成百上千個(gè)獨(dú)立運(yùn)動(dòng)的元素性能開銷大控制粒度不夠細(xì)。SVG作為矢量圖形縮放不失真適合圖標(biāo)和交互式圖表。但同樣當(dāng)DOM節(jié)點(diǎn)每個(gè)SVG圖形都是一個(gè)DOM元素?cái)?shù)量激增時(shí)性能會(huì)急劇下降。HTML5 Canvas這是我們的最佳選擇。Canvas提供了一個(gè)位圖畫布我們通過(guò)JavaScript API直接在上面進(jìn)行像素級(jí)繪制。它的優(yōu)勢(shì)在于高性能所有繪制操作都由瀏覽器底層圖形API如OpenGL處理對(duì)于大量圖形的重繪效率極高。精細(xì)控制可以精確控制每個(gè)像素的顏色、位置和混合模式實(shí)現(xiàn)閃爍、拖尾、光暈等復(fù)雜效果。無(wú)DOM負(fù)擔(dān)無(wú)論繪制多少星星都不會(huì)增加DOM樹的節(jié)點(diǎn)數(shù)避免了重排和重繪的性能瓶頸。因此基于Canvas的粒子系統(tǒng)是實(shí)現(xiàn)動(dòng)態(tài)星空在性能和靈活性上的最優(yōu)解。2.3 整體架構(gòu)設(shè)計(jì)整個(gè)項(xiàng)目的代碼結(jié)構(gòu)非常清晰主要分為三個(gè)部分HTML結(jié)構(gòu)一個(gè)簡(jiǎn)單的canvas元素作為我們的“宇宙畫布”。CSS樣式讓Canvas畫布充滿整個(gè)瀏覽器視窗并設(shè)置一個(gè)深邃的深空背景色如#0a0a2a。JavaScript邏輯這是核心包含以下模塊初始化模塊獲取Canvas上下文設(shè)置畫布尺寸創(chuàng)建粒子數(shù)組并初始化所有星星粒子。粒子類/構(gòu)造函數(shù)定義星星的屬性和基礎(chǔ)方法如繪制自身、更新狀態(tài)。動(dòng)畫循環(huán)模塊使用requestAnimationFrame驅(qū)動(dòng)動(dòng)畫在每一幀中清空畫布、更新所有粒子、重繪所有粒子。交互模塊可選監(jiān)聽窗口大小變化resize事件以自適應(yīng)或監(jiān)聽鼠標(biāo)移動(dòng)實(shí)現(xiàn)星空隨鼠標(biāo)流動(dòng)的交互效果。這個(gè)架構(gòu)確保了邏輯的分離使得代碼易于閱讀、維護(hù)和擴(kuò)展。3. 核心代碼實(shí)現(xiàn)與逐行解析接下來(lái)我們進(jìn)入實(shí)戰(zhàn)環(huán)節(jié)。我會(huì)提供一個(gè)完整的、注釋詳細(xì)的代碼實(shí)現(xiàn)并解釋每一段關(guān)鍵代碼的意圖和原理。3.1 搭建基礎(chǔ)HTML與CSS結(jié)構(gòu)首先創(chuàng)建我們的畫布和基礎(chǔ)樣式。!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 title動(dòng)態(tài)星空 | HTMLJS實(shí)現(xiàn)/title style /* 關(guān)鍵樣式去除默認(rèn)邊距讓畫布充滿全屏 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { overflow: hidden; /* 隱藏滾動(dòng)條營(yíng)造沉浸感 */ background-color: #0a0a2a; /* 深藍(lán)色背景模擬夜空底色 */ height: 100vh; /* 確保body高度為整個(gè)視口 */ display: flex; justify-content: center; align-items: center; } #starCanvas { display: block; /* 消除canvas底部的默認(rèn)間隙 */ /* width和height在JS中動(dòng)態(tài)設(shè)置這里可以留空或設(shè)一個(gè)默認(rèn)值 */ } /style /head body !-- 星空繪制的舞臺(tái) -- canvas idstarCanvas/canvas script srcstarfield.js/script !-- 引入核心JS邏輯 -- /body /html注意這里將CSS的background-color設(shè)置在body上而不是canvas上。因?yàn)镃anvas默認(rèn)是透明的這樣我們既能通過(guò)Canvas繪制星星又能透過(guò)Canvas看到背景色。另一種做法是每幀在Canvas上繪制一個(gè)巨大的矩形作為背景但那樣會(huì)多一次繪制調(diào)用。當(dāng)前做法更高效。3.2 JavaScript核心實(shí)現(xiàn) (starfield.js)這是整個(gè)項(xiàng)目的靈魂所在。我們將代碼分塊講解。3.2.1 初始化與全局變量// 獲取Canvas元素和2D繪圖上下文 const canvas document.getElementById(starCanvas); const ctx canvas.getContext(2d); // 星星粒子數(shù)組 let stars []; // 星星總數(shù)根據(jù)性能調(diào)整。1000-2000在普通電腦上通常很流暢。 const STAR_COUNT 800; // 動(dòng)畫幀ID用于取消動(dòng)畫循環(huán) let animationId null; // 初始化畫布尺寸 function initCanvasSize() { // 將畫布尺寸設(shè)置為窗口的內(nèi)部尺寸實(shí)現(xiàn)全屏 canvas.width window.innerWidth; canvas.height window.innerHeight; } // 立即執(zhí)行一次初始化 initCanvasSize();ctx這是我們?cè)贑anvas上作畫的“畫筆”所有繪制方法如fillRect,arc,fillStyle都通過(guò)它調(diào)用。stars用于存儲(chǔ)所有星星粒子對(duì)象的數(shù)組。initCanvasSize這個(gè)函數(shù)至關(guān)重要。Canvas的width和height屬性不是CSS的width和height決定了其繪圖表面drawing buffer的分辨率。如果只通過(guò)CSS縮放會(huì)導(dǎo)致繪制內(nèi)容模糊。因此我們必須讓繪圖表面的分辨率與Canvas元素顯示的實(shí)際像素尺寸一致。3.2.2 定義星星粒子類使用ES6的類語(yǔ)法來(lái)組織每個(gè)星星的屬性和行為代碼更清晰。class Star { constructor() { // 重置粒子到初始狀態(tài) this.reset(true); } // 重置星星屬性。參數(shù)init用于區(qū)分首次創(chuàng)建和飛出邊界后的重生。 reset(init false) { // 位置隨機(jī)分布在畫布上。如果是初始化y坐標(biāo)也隨機(jī)否則從頂部外重生。 this.x Math.random() * canvas.width; this.y init ? Math.random() * canvas.height : -10; // 速度x方向基本不動(dòng)或微動(dòng)y方向向下模擬星空緩慢下移或漂浮感。 // 乘以一個(gè)隨機(jī)因子讓速度有細(xì)微差別更自然。 this.vx (Math.random() - 0.5) * 0.2; this.vy Math.random() * 0.7 0.3; // 半徑隨機(jī)大小大部分是小星星偶爾有大星星 this.radius Math.random() * 1.2 0.3; // 顏色基礎(chǔ)是白色可以混合一點(diǎn)藍(lán)色或黃色 const colorVariation Math.random(); if (colorVariation 0.95) { this.color rgba(255, 220, 150, ; // 暖黃色 } else if (colorVariation 0.8) { this.color rgba(200, 220, 255, ; // 冷藍(lán)色 } else { this.color rgba(255, 255, 255, ; // 純白色 } // 閃爍相關(guān)屬性 this.alpha Math.random() * 0.5 0.5; // 初始透明度 0.5-1.0 this.flickerSpeed Math.random() * 0.05 0.02; // 閃爍速度 this.flickerDirection Math.random() 0.5 ? 1 : -1; // 閃爍方向增亮或變暗 this.flickerDelta 0; // 用于正弦波計(jì)算的增量 } // 更新星星狀態(tài)位置、透明度 update() { // 更新位置 this.x this.vx; this.y this.vy; // 邊界檢查如果星星移出畫布底部則重置它從頂部重新出現(xiàn) if (this.y canvas.height 10) { this.reset(); } // 可選左右邊界穿墻 if (this.x canvas.width 10) this.x -10; if (this.x -10) this.x canvas.width 10; // 更新閃爍效果使用正弦函數(shù)產(chǎn)生平滑的周期性閃爍 this.flickerDelta this.flickerSpeed; // 正弦值范圍[-1, 1]映射到透明度變化幅度 let flicker Math.sin(this.flickerDelta) * 0.3; // 計(jì)算當(dāng)前透明度并限制在合理范圍[0.2, 1.0] this.currentAlpha Math.max(0.2, Math.min(1.0, this.alpha flicker)); } // 在畫布上繪制星星 draw() { ctx.beginPath(); // 開始一條新的繪制路徑 // 繪制圓形星星。參數(shù)x, y, 半徑, 起始角, 結(jié)束角2π為一整圓 ctx.arc(this.x, this.y, this.radius, 0, Math.PI * 2); // 設(shè)置填充樣式使用計(jì)算出的當(dāng)前透明度 ctx.fillStyle this.color this.currentAlpha ); ctx.fill(); // 執(zhí)行填充 // 進(jìn)階為較大的星星添加光暈效果提升視覺質(zhì)感 if (this.radius 0.8) { // 創(chuàng)建一個(gè)徑向漸變作為光暈 const gradient ctx.createRadialGradient( this.x, this.y, 0, // 內(nèi)圓圓心和半徑 this.x, this.y, this.radius * 3 // 外圓圓心和半徑 ); gradient.addColorStop(0, this.color 0.3)); // 中心較實(shí) gradient.addColorStop(1, this.color 0)); // 邊緣完全透明 ctx.fillStyle gradient; // 繪制一個(gè)更大的圓作為光暈 ctx.beginPath(); ctx.arc(this.x, this.y, this.radius * 3, 0, Math.PI * 2); ctx.fill(); } } }關(guān)鍵點(diǎn)解析reset方法這是粒子系統(tǒng)的常見模式。粒子飛出邊界后不是被銷毀而是“重置”屬性后復(fù)用避免了頻繁創(chuàng)建和銷毀對(duì)象的垃圾回收壓力是重要的性能優(yōu)化點(diǎn)。速度設(shè)置vy垂直速度設(shè)置為正數(shù)所以星星整體向下移動(dòng)。通過(guò)給vx一個(gè)很小的隨機(jī)正負(fù)值可以讓星空有輕微的橫向流動(dòng)感更生動(dòng)。閃爍算法沒有使用簡(jiǎn)單的隨機(jī)數(shù)切換而是用Math.sin正弦函數(shù)。正弦波的平滑性使得星星的明暗變化是連續(xù)的、自然的避免了生硬的跳變。flickerDelta的累加實(shí)現(xiàn)了動(dòng)畫的推進(jìn)。光暈效果使用createRadialGradient創(chuàng)建徑向漸變來(lái)模擬星星的光芒。這是提升視覺效果的關(guān)鍵一步讓星星看起來(lái)不是生硬的圓點(diǎn)而是有發(fā)光的感覺。注意光暈的繪制要在星星本體之后并且其透明度漸變要設(shè)置正確。3.2.3 初始化粒子數(shù)組與動(dòng)畫循環(huán)// 初始化創(chuàng)建所有星星粒子 function initStars() { stars []; // 清空數(shù)組 for (let i 0; i STAR_COUNT; i) { stars.push(new Star()); } } // 動(dòng)畫循環(huán)函數(shù) function animate() { // 1. 清空畫布用透明色清除整個(gè)區(qū)域露出body的深色背景 // 注意如果每幀繪制背景矩形則用 fillRect ctx.clearRect(0, 0, canvas.width, canvas.height); // 2. 更新并繪制每一個(gè)星星 for (let star of stars) { star.update(); // 計(jì)算新位置和透明度 star.draw(); // 繪制到畫布上 } // 3. 請(qǐng)求下一幀動(dòng)畫形成循環(huán) animationId requestAnimationFrame(animate); } // 啟動(dòng)動(dòng)畫 function startAnimation() { if (!animationId) { // 防止重復(fù)啟動(dòng) initStars(); animate(); } } // 停止動(dòng)畫用于頁(yè)面隱藏時(shí)節(jié)省資源 function stopAnimation() { if (animationId) { cancelAnimationFrame(animationId); animationId null; } }requestAnimationFrame(animate)這是實(shí)現(xiàn)瀏覽器動(dòng)畫的標(biāo)準(zhǔn)方法。它告訴瀏覽器“在下次重繪之前執(zhí)行animate函數(shù)”。相比舊的setInterval它能與瀏覽器的刷新率同步通常是60fps確保動(dòng)畫平滑并且在頁(yè)面不可見時(shí)自動(dòng)暫停節(jié)省CPU和GPU資源。ctx.clearRect(0, 0, canvas.width, canvas.height)這是清除畫布的標(biāo)準(zhǔn)做法。它把指定矩形區(qū)域內(nèi)的像素設(shè)置為透明。因?yàn)槲覀冇猩钌尘八钥雌饋?lái)就是“擦除”了上一幀的畫面。3.2.4 處理窗口大小變化與頁(yè)面可見性一個(gè)健壯的項(xiàng)目必須考慮響應(yīng)式和資源管理。// 監(jiān)聽窗口大小變化自適應(yīng)畫布尺寸 window.addEventListener(resize, () { // 防抖處理避免resize事件觸發(fā)過(guò)于頻繁 if (this.resizeTimeout) clearTimeout(this.resizeTimeout); this.resizeTimeout setTimeout(() { initCanvasSize(); // 重置畫布分辨率 // 注意星星位置是基于舊畫布坐標(biāo)的重置后坐標(biāo)會(huì)錯(cuò)亂。 // 方案一簡(jiǎn)單重新初始化所有星星星空會(huì)“重置”。 initStars(); // 方案二復(fù)雜根據(jù)新舊畫布比例重新計(jì)算每個(gè)星星的位置。這里采用方案一。 }, 200); }); // 利用 Page Visibility API 優(yōu)化性能 document.addEventListener(visibilitychange, () { if (document.hidden) { // 頁(yè)面不可見如切換標(biāo)簽頁(yè)、最小化停止動(dòng)畫 stopAnimation(); } else { // 頁(yè)面再次可見重啟動(dòng)畫 startAnimation(); } }); // 頁(yè)面加載完成后啟動(dòng) window.addEventListener(load, startAnimation);實(shí)操心得resize事件處理中的“星星位置錯(cuò)亂”問題是一個(gè)經(jīng)典坑點(diǎn)。簡(jiǎn)單地重新初始化initStars()是最快最安全的方案用戶體驗(yàn)是星空會(huì)突然“刷新”一次。如果你希望星星位置能平滑過(guò)渡就需要記錄比例并重新計(jì)算每個(gè)星星的x和y坐標(biāo)邏輯會(huì)復(fù)雜很多。對(duì)于星空背景這種非精確交互的場(chǎng)景我通常選擇簡(jiǎn)單重置影響不大。4. 性能優(yōu)化與高級(jí)效果拓展基礎(chǔ)版本已經(jīng)能運(yùn)行得很好。但如果你想打造一個(gè)更驚艷、更專業(yè)的星空或者面對(duì)粒子數(shù)更多2000的場(chǎng)景就需要考慮以下優(yōu)化和拓展。4.1 性能優(yōu)化技巧離屏CanvasOffscreen Canvas場(chǎng)景如果星星形狀固定且復(fù)雜比如不是簡(jiǎn)單的圓而是星形圖片每幀重繪上千次drawImage開銷很大。做法將每個(gè)星星預(yù)先繪制到一個(gè)離屏的小Canvas上。在主動(dòng)畫循環(huán)中不再調(diào)用arc和fill而是直接使用drawImage將離屏的星星“圖章”復(fù)制到主畫布上。這能大幅減少繪制指令。代碼示意const offscreenCanvas document.createElement(canvas); const offscreenCtx offscreenCanvas.getContext(2d); // 在offscreenCanvas上繪制好一個(gè)星星 offscreenCtx.arc(5,5,2,0,Math.PI*2); offscreenCtx.fill(); // 在animate循環(huán)中 ctx.drawImage(offscreenCanvas, star.x, star.y);對(duì)象池Object Pool我們的reset方法已經(jīng)體現(xiàn)了對(duì)象池的思想復(fù)用對(duì)象避免垃圾回收。確保stars數(shù)組大小固定而不是不斷push和splice。減少繪制狀態(tài)變更Canvas的fillStyle、strokeStyle、globalAlpha等狀態(tài)設(shè)置是有開銷的。如果所有星星顏色和透明度差異不大可以嘗試按屬性分批繪制減少狀態(tài)切換。但在我們這個(gè)閃爍、顏色微變的場(chǎng)景下收益可能不明顯且代碼會(huì)變復(fù)雜。使用Web Workers將粒子位置、速度等數(shù)據(jù)的計(jì)算即update邏輯放到Web Worker線程中與UI渲染線程分離。這對(duì)于粒子數(shù)量極多數(shù)萬(wàn)的復(fù)雜物理模擬有奇效。但對(duì)于千量級(jí)的星空可能引入的通信開銷得不償失。4.2 視覺增強(qiáng)效果添加流星創(chuàng)建一種特殊的“Meteor”粒子類擁有更快的速度、更長(zhǎng)的尾巴。尾巴可以用繪制一條漸隱的線段或者連續(xù)繪制幾個(gè)透明度遞減的圓點(diǎn)來(lái)實(shí)現(xiàn)。每隔幾秒隨機(jī)生成一顆流星賦予其隨機(jī)的起始位置和方向。星空分層與視差滾動(dòng)創(chuàng)建2-3個(gè)stars數(shù)組分別代表“遠(yuǎn)景慢星”、“中景中速星”、“近景快星”。賦予它們不同的速度(vy)和大小(radius)。在更新時(shí)近景星移動(dòng)快遠(yuǎn)景星移動(dòng)慢從而產(chǎn)生強(qiáng)烈的3D縱深感和沉浸感。這是讓星空“活過(guò)來(lái)”最有效的一招。交互式星空監(jiān)聽mousemove事件根據(jù)鼠標(biāo)位置計(jì)算一個(gè)“力場(chǎng)”影響附近星星的速度(vx, vy)讓星星像被鼠標(biāo)吸引或推開一樣流動(dòng)。這需要為Star類增加一個(gè)applyForce(vx, vy)方法。背景星云在Canvas最底層用createRadialGradient或createLinearGradient繪制幾片半透明的、顏色柔和的色塊如深藍(lán)、紫色、暗紅作為星云的背景。注意要設(shè)置globalAlpha為很低的值如0.1并且只在初始化或窗口重置時(shí)繪制一次不要放在動(dòng)畫循環(huán)里否則性能堪憂。5. 常見問題與調(diào)試實(shí)錄在實(shí)現(xiàn)過(guò)程中你幾乎一定會(huì)遇到下面這些問題。這里是我的排查記錄和解決方案。5.1 問題星星閃爍生硬像在“跳動(dòng)”而不是“呼吸”。排查檢查閃爍算法。如果用的是Math.random()直接設(shè)置alpha變化就會(huì)不連續(xù)。解決如前所述改用基于Math.sin()或Math.cos()的周期性函數(shù)??梢哉{(diào)整flickerSpeed改變閃爍頻率調(diào)整正弦波的振幅改變明暗變化幅度。5.2 問題動(dòng)畫卡頓幀率FPS很低。排查步驟打開瀏覽器開發(fā)者工具F12的“性能Performance”面板錄制幾秒動(dòng)畫查看主要耗時(shí)在“腳本Scripting”還是“渲染Rendering”。減少粒子數(shù)量將STAR_COUNT從1500降到800看是否立即流暢。這是最直接的驗(yàn)證。檢查循環(huán)內(nèi)的操作是否在animate函數(shù)或Star.draw中執(zhí)行了昂貴的操作比如console.log、復(fù)雜的數(shù)學(xué)計(jì)算、DOM操作等。解決方案確保console.log不在動(dòng)畫循環(huán)中。使用上節(jié)提到的離屏Canvas優(yōu)化繪制??紤]使用requestAnimationFrame的回調(diào)參數(shù)timestamp來(lái)實(shí)現(xiàn)時(shí)間差deltaTime動(dòng)畫讓動(dòng)畫速度與幀率解耦避免在高刷新率屏幕如144Hz上運(yùn)行過(guò)快。let lastTime 0; function animate(timestamp) { const deltaTime timestamp - lastTime; lastTime timestamp; // 更新星星時(shí)使用 deltaTime * 0.001 來(lái)調(diào)節(jié)速度使其與時(shí)間相關(guān)而非幀數(shù)相關(guān) // this.x this.vx * (deltaTime * 0.001); }5.3 問題畫布在高分辨率屏幕如Retina屏上模糊。原因Canvas的CSS寬高和其width/height屬性不一致。在Retina屏上1個(gè)CSS像素可能對(duì)應(yīng)2個(gè)物理像素。如果我們只設(shè)置CSS為全屏而canvas.width等于window.innerWidth那么繪圖表面分辨率不足就會(huì)被拉伸導(dǎo)致模糊。解決獲取設(shè)備的設(shè)備像素比devicePixelRatio并依此放大Canvas的繪圖表面。function initCanvasSize() { const dpr window.devicePixelRatio || 1; const rect canvas.getBoundingClientRect(); // 設(shè)置Canvas元素的實(shí)際顯示尺寸CSS像素 canvas.style.width ${rect.width}px; canvas.style.height ${rect.height}px; // 設(shè)置繪圖表面的分辨率物理像素 canvas.width rect.width * dpr; canvas.height rect.height * dpr; // 縮放繪圖上下文讓后續(xù)所有繪制坐標(biāo)自動(dòng)適配高分辨率 ctx.scale(dpr, dpr); }經(jīng)過(guò)這樣處理繪制出的星星邊緣會(huì)非常銳利清晰。5.4 問題窗口改變大小時(shí)星星位置錯(cuò)亂或聚集。原因如3.2.4節(jié)所述星星的坐標(biāo)(x, y)是基于舊畫布尺寸的。畫布突然變大所有星星仍集中在左上角原始區(qū)域畫布變小部分星星會(huì)跑到畫布外。解決如前所述在resize事件中重新初始化initStars()是最簡(jiǎn)單的方法。如果要求高就需要做坐標(biāo)映射。5.5 問題想用圖片代替圓形作為星星。解決在Star類中加載圖片并在draw方法中使用ctx.drawImage。class Star { constructor() { this.img new Image(); this.img.src star.png; // 小星星圖片 this.reset(true); } draw() { if (this.img.complete) { // 繪制圖片注意坐標(biāo)要減去寬高的一半以居中 ctx.drawImage(this.img, this.x - this.radius, this.y - this.radius, this.radius*2, this.radius*2); } else { // 圖片未加載完用圓形兜底 ctx.arc(this.x, this.y, this.radius, 0, Math.PI*2); ctx.fill(); } } }注意加載數(shù)百?gòu)埾嗤膱D片是巨大的浪費(fèi)。應(yīng)該只創(chuàng)建一個(gè)Image對(duì)象然后在所有星星的draw方法中共享引用。同時(shí)務(wù)必做好加載狀態(tài)判斷否則會(huì)繪制空白。這個(gè)項(xiàng)目從簡(jiǎn)單的圓點(diǎn)開始通過(guò)逐步添加速度、閃爍、光暈、分層、交互最終可以演變出一個(gè)極具視覺沖擊力和趣味性的動(dòng)態(tài)星空。它不僅是前端動(dòng)畫的入門石更是理解計(jì)算機(jī)圖形學(xué)中粒子系統(tǒng)、動(dòng)畫循環(huán)、性能優(yōu)化等核心概念的絕佳實(shí)踐。希望這份詳細(xì)的拆解和實(shí)錄能幫助你不僅實(shí)現(xiàn)效果更能理解背后的每一行代碼為何如此書寫。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久操视频在线观看| 青青青草原| 豆1无夜无码| 亚洲天堂自拍| 亚洲色图片区| 男女性感激情网站| 在线只有精品| 制服诱惑亚洲一区二区三区在线观看| a在线视频免费观看| 91蜜桃传媒精品久久久一区二区| 日本色色视频网站| 九色PORNY9l原创自拍| 亚洲综合色男人网| 日本孕妇孕交| 乱伦熟女论坛| 吻戏激情性巴克| 亚洲少妇在线影音| 欧美 亚洲 第一页 | 中国91AV| 欧美强奸乱| 蜜臀久久99精品久久久久久久久| 天美传媒av在线| 天天综合网在线91| 久久久麻豆精品| 久久不卡一区二区| 国产资源中文字幕在线| 六月天婷婷| 亚洲色丰满少妇高潮| 久久在肏| 久久黄黄| 大香蕉综合网| 91精品国产麻豆国产自产在| 久久999久| 另类欧美色| 激情综合二| 美女的肌被草喷水视频| aa片毛片| 资源在线观一 二| 天美传媒av在线| 蜜臀无码视频在线观看| 久久香蕉国产传媒一区剧情天美| 俺也射| 中文日本免费高清| 歐美一級亂黃99在綫精品| 91美女中出| 久久大黄片| 91天天日| 久久久久久久久成人av解说| 亚洲熟女乱色| 日韩二级| 又粗又长又大国产不卡| 久热69九色熟妇97| 在线不欧美| 日韩成人大片在线观看| 久久久久久裸体| blacked精品一区国产| 欧美中文字幕一区 | 黄页18禁| 国产精品美女| 日韩丝袜人妻AV| 超碰欧美| 青青操在线亚洲视频观看欧美在线| 精品人妻一区二区三区日产| 欧美日日网| v91av| 99re在线观看| 欧美色图综合网| 一级黄色影片| 东京热毛片177b2viP| 大香蕉伊人久久| 欧洲亚洲人妻无码高清久久三区四区| 欧美日韩99| 欧美草草高清日韩视频| 激情开心五月天| 国产精品农村妇女| 色爱综合网| 国产精品久久久久婷婷二区次| 色九月婷婷| 日本2020一区二区| 久久久久久大| 色y情视频免费看| 欧美色997| 欧美日韩国产黄色片| 夜夜爽爽夜夜精品视频| 岛国AB视频| 熟妇高潮精品一区二区三区下载| 国产极品99热在线播放69| 欧洲精品区| 国产精品一区二区 尿失禁| 啊啊啊操死我了| 国产亚州日韩欧美看片| 亚洲久9| 一二三区在线| 亚洲无码超碰免费| 99精品综合久久久久五月天| 亚洲色图激情小说| 国产黄色视频久久| 美日韩一二三区| 激情干在线| 欧美色图校园春色| 91精品人妻一区二区三区蜜桃臀| 免费看黄视频亚洲网站| 久久久久久人体| 大稥蕉免费视频这里只有精品| 91人妻人人妻| 午夜一级免费毛片| 精品人妻一区二区三区四区| 操人妻逼91| 尤物一级在线免费观看| 欧美天天弄| 秋霞午夜视频一区二区| 在线播放中文字幕| 免费一级性爱久久| 少妇的嫩逼图片| 精品网站9999| 8050午夜少妇无码| 国产精品com| 在线观看 99热| 色色99| 黑人精品XXX一区一二区| 五月天精品| 成全动漫视频观看免费下载| 偷拍亚洲情色| 欧美性,色九九| 一起草日韩| 成人小电影网站tex| 蜜臀人妻少妇久久在线观看| 五月丁香| yazhououmeizongya| 眼镜人妻101.com| 91九九九逼| www国产精品| 成人av影院在线观看| 精品成人av一区二区三区在线| 夜夜高潮夜夜爽高清视频一 | 日本一级一级一级一级| 国产性爱欧美性爱在线| 啊啊啊啊啊啊啊网址在线观看| 大香蕉琪琪日本女优不卡| 超碰 欧美| 无码精品久久久天天影视| 看大黄色大片原件| 91 刺激在线| 十八禁av无码免费网站APP| 国产丰满少妇久久久精品影院| 综合色一区三区二区| 久久骚少妇| 欧美美女视频| 啊啊啊不要啊啊受不了了视频在线| 无遮挡猛进视频免费无限观看| 亚洲欧美国产中文视频| 香蕉99秘 一区精品蜜桃臀| 亚洲一区二区 麻豆传媒| 五月婷婷六月丁香| 国产呦精品一区二区三区下载| 精品无码欧美三级| 精品一级| 超碰97久| 后入福利| 99热8| 欧美一区二区情色| 久久五月份| 人、人、摸,人、人、草| 国产一进一出视频网站| AVE乱伦| 99久在线精品99re8蜜桃| 中文字幕视频免费| 91性高| 在线天堂999| 五月天激情婷婷| 国产黄色 A 片免费看| se吧提供国产乱老熟视频胖女人| 97免费在线视频| 啊啊啊好大好深| 婷婷精品国产欧美精品亚洲人人爽| 色婷婷综合久久中文字幕雪峰| 1024香蕉视频| 天天日天天插| www.色五月| 911粉嫩人妻| 国产人妻天天干精品| 波多野结衣先锋影音| 天天日天天干天天色| 日韩兔费看黄片| 天天射天天色成人| 人妻精品一区二区| 亚洲综合999| 欧美色涩| 成人羞羞视频国产| 久久久精品久久| 干日本人少妇午夜寂寞影院| 在线综合 亚洲 欧美中文字幕 | 97最新在线播放视频| 日韩亚洲中文字幕在线| 久草免费福利在线播放| 日韩一级欧美一级在线观看| 色五月婷婷中文字幕| 日本中文字幕在线视频| 91丨九色丨东北熟女| 免费看日本操逼视频| 激情五月天社区| 极品美女福利在线观看| 色婷婷久久| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 色网在线视频观看免费| 99久久精品无码一区二区| 插穴性爱视频在线观看| 久草福利在线资源站| 婷婷视频在线免费观看| 欧美操逼一二三区| 超碰久久性爱| 神马午夜久久久| 色香在线| 99草精| 日韩情色一区二区| 欧美v亚洲v综合v国产v妖精| 爽极品影院| 久久婷婷综合国际产色怕| 亚洲精品精品一区二区| 国产原创自拍| 久久免费看高潮毛片韩国| 91久久久视| 屌妞视频久久久久久久| 国产乱子伦一区二区三区免看| 330dv亚洲成年视频网| 东方亚洲在线操逼天堂| 婷婷精品久久av影视| 欧美伊人电影| 国产精品96| 老外又粗又长一晚做五次| 天天操人人操狠狠插| 草草草草视频| 啪啪啪东京| 久久成人国产| 超碰久热| 色情亚洲日本成人| 婷婷五月天色网| 久久久天美| 97爱爱| 性videos欧美熟妇hdx| 三级色综合| 国产精品激情久久久久久久| 婷婷丁香成人| 射丝袜高跟鞋99| 熟女高潮合集-永久久久-成人AV| 91痴汉| 亚洲成a人v欧美综合天堂下载| 偷拍 欧美 日韩| 家庭乱伦性爱av| 丁香啪啪| 午夜欧美J进J出白浆流出久久久| 91网站在线播放| 天天欧美| 嫩草一区二区在线观看| 久久综合乱子伦国产免费| 97天天弄| 午夜啊啊| 上海一级黄片| 久久婷婷一区二| 超碰中文字幕人妻草一区| 欧美同性恋 的搜索结果 - 91n| 东京热毛片177b2viP| 中文字幕一区二区三区字幕| 五月激情影院| 超碰综合色| 欧美天天影院| 久久久久久日韩| 久久精品三级影视| 啊嗯好大视频在线观看| 亚洲综人网| 麻豆 美女 丝袜 人妻 中文| 亚洲综合草草| 三级日韩一区二区三区| 久久精品色欧美aⅴ一区二区| 视频二区美腿丝袜制服人妻欧美| 国产地址二三| 国产精品九九九| 国产精品美女久久久久AⅤ国产馆| 精品国产片亚洲一区| 久久av色| 九九九九九九视频免费| 国内毛片国产专区二| 亚洲熟妇乱女区二区三区| 骚货 中文字幕 av| 国产三级在线现体验区| 99热这里是精品| 加勒比人妻综合| 搡老女人老91妇女老熟女| 国产男女无套视频免费观看| 亚洲 欧美 小说| 亚洲欧美在线丝袜| 日本狂喷奶水在线播放212| 亚州精人品大香蕉| 青青草原伊人网| www亚洲免费| 日韩人体偷拍| 四虎在线视频| 久热大香蕉网站| 亚洲欧美日韩有码| 天天做天天爱| 啊视频在线| 96精品一区| 亚洲色图欧美色图日韩色图| 亚洲不卡av在线| 男人的天堂久久久| 亚洲激情网| 久久中文字幕女同性恋一区| 中文字幕久热视频在线| 91电影色诱| 少妇久久久| 久久久久免费少妇| 精品1区2区3区| 91GD.COM| 天天欧美97| 国产精品久久成人免费| 欧美性,色九九| 日韩午夜精品一区二区三区电影| 抽插无码高清一区| 免费99精品国产自在在线| 狠狠色狠狠色狠狠五月| 日本三级精品| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 欧美在线 亚洲| 中文字幕 一区二区 亚洲无码| 五月天社区| 91亚洲人电影| 99抽插| 国产诱惑| 天天伊人| 免费少妇一区二区| 婷婷激情五月天小说网| 激情一区二区三区在线观看| 亚州成人a∨| 伦在线97| 亚洲激情AV| 自拍视频一区在线观看| 成人精品一区二区91毛片不卡| 亚洲最新中文字幕免费| 中文字幕精品三级久久久| 日va操| 日本欧美色| 亚洲色欧美| 国产激情在线| 亚洲熟女一区二区| 青青草在线视频播放器| 综合熟妇一区二区三区| 天美麻花大全视频| 精品一区二区2| 啪啪综合网| 久操精品| 四季AV一区二区凹凸精品小说| 男人高清无码一区二区| 中文字幕av一区二区三区人妻少妇 | 久久综合99| 免费试看60秒| 欧美影音在线| 欧美啪啪女女| a片偷拍视频| 亚洲综合性网址| 奇米狠999| 人妻偷拍一区二区三区| 中文字幕欧美日韩三级| 青青草色插素人| 国产精品免费日韩| 高清国产成人无码| 97在线精品| 无码精品一区二区三区潘金莲| 亚洲欧美在线观看2021| 91白嫩| 青青草在线视频人人想人人上 | 亚洲美女30b| 美女尤物人人操| 色悠久久久av| 人妻少妇蜜桃视频欧美一区| 免费超碰97在线观看| 国产精品久久久久中文字幕| 欧美性爱一区二区三区| 国产25页| 五月婷婷无码| 岛国网址国产| 欧成人精品H无码| 330dv亚洲成年视频网| 少妇高潮对白在线观看| 国产高清午夜成人在线观看| 中文字幕精品三级久久久| www.天天干| 操逼片国产| 91麻豆天美传媒在线| 青青草成人视频在线观看二区 | 激情文学网伊人| 人人 操人人 操人人| 91色夜| 久久久久久久国产| 久久亚洲影院一区二区| 一级特级aaaa毛片免费观看| 五月亭亭六月丁香| 91超碰丝袜制服| 夜夜狼人妻| 五月综合久久| 特级毛片特黄久久免费看| 国产激情视频一区区三区| 啊啊啊啊好疼视频| 欧美91网站| 久久久工口| 久久东京国产精品视频| 亚洲激情综合另类男同| 亚洲成人贴图| 久热这里只有精品9| 日本孕妇孕交| 欧美日韩亚洲天堂网| 六月婷婷综合| 黄色网址在线免费观看| 91三级理论片播放器| 黑操B| 亚洲精品成人动漫在线| 久久精品| 国产路线专区| 日本不卡一区| 999精品久久久久久久| 亚洲九月丁香| 91av一区二区在线观看| 国产强奸乱伦第1页| 67914在线兔费成人视频| 伊人久久大香蕉线AV五月天| 中美日韩毛片| 亚洲色图久久成人| 亚洲 欧美 手机在线观看| 999熟女精品| 99蜜桃臀亚洲成人在线观看| 超碰伊人在线| 中文久久96| 国产精品久久久久久久久久久久久久久久 | 青青久草| 成人老鸭窝人人在线视频| 99久久久久久亚洲精品不卡| 美女尤物福利视频| 大香蕉AV在线| 99精品久久| 久操B网| 中文字幕一区二区视频在线观看| 亚洲精品久久久久毛片A片拉屎| 去干网最新版| 欧美伦乱爱| 91久久堂| 国内97干免费看| 欧美日动态视频| 成人久久精品| 欧美一级专区免费大片| 中字一区| 无卡一区=区| 国产天天噜一噜久久久| 四虎在线免费视频| 91模特在线观看| 久久久无码精品人妻二区| 久草老司机| 色天天野狼综合社区| 天天操天天干一区二区| 久操网址| 日韩AV无码网站| 91人精品妻入口| 在线看的av| 色就色综合| 中文字幕123| 婷婷五月天色| 美女91在线观看| 欧美一区二区三区黄色影视| 亚洲综合校园春色| 亚洲欧美内射| 999精品久久久久久久| 亚洲色图欧美一区二区不卡| 国产午夜精品理论片a大结局| 国产品精品自在在线午夜免费| 国产精品不卡av免费在线观看| 亚欧毛片基地国产毛片基地| 欧美一级美片在线观看免费| 99久久精品无码一区二区| 啊啊啊好大好湿| 不卡av免费在线网址| 99久视频| 91久久国产精品| 色综合久久88色综合久久天天| 麻豆亚洲Av成人无码一区精品| 97亚洲自在精品在线观看| 69人妻精品一区二区绯色| 91最新综合| 91久久| 91美女丝袜诱惑视频| 乱操9999| 在线中文字幕| 综合激情97 | 人妻大香蕉| 蜜臀99久久| 欧亚性爱在线视频| 97色欧州| 丁香婷婷大香蕉| 色一射色一射| 超碰综合97在线| 欧美色视| 午夜偷拍久久熟女| 97天天摸天天碰| 日日日骚女人精品| 91一区二匹| 国产在线强奸视频| 欧美激情综合色综合啪啪五月| 国产黄a三级三级三级av在线看| 亚洲和欧美裸体美女双飞视频| 久久精品操| 天天视频网站黄| 亚洲经典啪啪| 偷拍超碰| 超碰在线一区| 亚洲av影院在线观看| 国产精品一区二区在钱播放| 亚洲在线观看| WWW操逼| 婷婷五月天av| 亚洲欧美在线综合| 欧美色女人| 天堂种子在线www网资源| 家庭乱伦网站国产| 日韩大香蕉| 色婷婷九月天天综合| 男人天堂婷婷五月天校园春色| 国产婷婷一区| 一区二区影视| av无码精品久久久久| 69AV女优男人的天堂| 亚洲91射| 久久亚洲AV无码专区国产精品| www.97在线| 夜夜春夜夜操| 人人摸人人添人人操 | 欧美精品欧美精品系列| 日韩精品一区二区三区四虎影视| 欧美一区二区三区黄色影视| 91w欧美| av国产无码| 中文字幕人乱码中文字的预防方法 | 人妻熟女字幕一区二区| rivers-china.com| 波多野结衣先锋影音| 精品久久久久,69国产成人精| 久草电影网| 国产女人与拘做受视频免费| 久久99手机免费视频| 精品黄色电影| 水野优香在线观看| 十八禁黄色| 欧美一区二区观看在线| 97在线青| 亚洲 自拍偷拍 欧美| 中文字幕视频2区| 国产精品久久久 | 0755午夜福利视频| 欧美日韩天堂| 影音先锋日本乱伦| 三男一女不戴套的A片| av资源在线观看少妇| 操一区| 97香蕉碰碰人妻国产欧美| 久久久久久日韩| 欧美视频一区二区在线| 国产AV高清AV无码| 成人婷婷丁香| 日韩av不卡在线观看| 蜜桃av综合网发布| 欧美性91| AA特级绝黄| 粉嫩小泬久久久一区二区| 91香蕉视频在线观看免费| 亚洲AV资源| 中文字幕人妻资源在线| 97人亚洲综合字幕| 亚洲一卡二卡在线免费| 日本大香蕉| 日韩激情啪啪啪| 亚洲精品1区| 一级黄色性爱A级片| 淫乱图区 | caopeng97人妻| 日韩无码精品综合久久| 色天堂综合| 亚洲免费成人在线高清无码视频| 走光一区92下载| 黄片com.| 噜噜噜噜天天狠狠| 欧美后进式| 女性91网站| 久久av色| www.91理论| 亚洲人精品久久久| 日韩另类色图| 成人小说另类在线| 99精品伊人| 国产精品成人蜜臀AV在线| 舔人妻中文免费视频| 97视频免费播放| 中国和日本人色哪个不下载能放| 久久精品人人做人人看| 免费在线黄片视频| 蜜臀久久一区二区| 美女的肌被草喷水视频| 舔舔啊| 亚洲精品电影| 狠狠久久亚洲欧美专区| 曰韩欧美国产传媒麻豆第一区| 日本色色色视频| 后入 亚洲 美女 射| 日韩在线国产字幕| 国产做?爰片久久毛片?片美国| 97超级久久| 99在线观看| 蜜臀无码视频在线观看| 九九国产热| 久久精品导航| 国产91福利小视频在线观看| 大香蕉综合| 九九久久国产精品| 尤物av网站免费在线播放| 日韩国产十八禁| 爱媛媛久久国产福利| 蜜臀久久99精品久久久久久酒店 | 九九九九九九九九九九精品视频| 欧美瑟综合| oumeisetu综合| 人妻AV 中文字幕的| 日语五十路和六十路亚洲国产精品| 加勒比av官网在线| 狠狠 91| 日日日日日| 加勒比色99999| 日韩av电影网站| 日本乱人伦片中文三区| 密臀在线一区尤物| 九九碰九九爱97超| 亚洲第二页| 大香蕉伊人75| 丁香婷婷大香蕉| 天天躁狠狠躁av| 欧美韩国你懂得在线| 日韩无码嘿咻黑热久| 国产少妇肉丝在线观看| 国产AV人人夜夜澡人人爽麻豆| 91人妻视频在线| 亚洲se91| 91oumei| 日韩在线观看三级电影| www.av不卡中文字幕| 四虎影库国产精品免费| 日本肏逼视频在线观看| 国产精品一区二区手机看片| 五月天亚洲网| 欧美一区二区观看在线| 五月天人妻综合| 性开放中文AV高清无码免费看| 久久久久9999精品九九九| 国产成人无码啪| 少妇内射www在线观看视频| 不卡av在线中文字幕| 97超碰超欧美。| 人人考人人摸人人干| 啊啊啊啊,啊啊好多水| 激情久久久| 黄骗免费网站| 久久精品99久久久久久| 亚洲丝袜天堂| 97色色网| 超碰 国产熟女精品一区| 久久国产视频专区一二三| 亚洲欧美精品福利在线| 温婉少妇玩3p| 可以在线观看的黄色网址| 水多多映视AV| 激情一区二区| 熟女少妇一区二区三区| 欧美色图片欧美色图| 五月开心久久AV官网| 色91综合网| 1024久久高清视频| 屌逼麻豆| 另类小说五月天| 人人看人人摸人人色| 国产极品美女高潮无套在线观看| 18啪啪手机免费性爱| 操逼无码操逼| 天天做天天爱天天爽AV| 超碰 av 女人天堂| 天天摸天天插天天日| 亚洲婷婷五月天| 无码高清少妇久久| 无遮挡男女激烈动态图| 日韩欧美性爱电影在线观看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 精品人妻夜夜草| 亚洲青青青视频在线| 性站| 亚洲影视综合网| 性色一线| 91在线一起| 丰满欧美放荡少妇在线| 亚洲精品蜜桃久久久久久久| 91红杏| 日本综合色图| 丁香五月色| 中文字幕一二区二三区人妻专区| 大香蕉综合在线| 啪啪啪大香蕉| 超碰九7| 91欧美高清| 国产美女高潮叫床视频| 桃花色综合影院| 综合色图区| 中国小夫妻勾搭露脸淫荡对白| 欧美高清色| 啪啪91| 岛国艾薇凹凸视频天堂| 日韩成人高清一区二区| 男女啊啊啊啊啊| 69精品人人人人| 日本在线一二| 囯产乱伦一区二区三女| 国产对白刺激视频| 97在线免费视频| 中国91AV| 亚洲少妇视频| 97在线观看免费| 六月丁香五月婷婷| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 国产精品2020| 青青爽| 亚洲天堂色图| 青草视频在线看看看看看看看看看| 深夜激情无码| 亚洲一区日韩| 国语对白在线播放视频| 伦伦成年午夜免费视频| 国产三级多多影院2022国产AA一级毛片无码| 亚欧美色图| 欧美色三级片91| 欧美老熟另类| 97免费视频在线观看视频| 精品日韩人妻精品一二三区| 久久这里都是精品| 少妇高潮对白在线观看| 日本媚薬中文字幕在线| 亚洲色人| www熟女乱伦com| 国产高清视频无码在线| 国产精品久久| 日本性爱视频一级| 伊人久久大香线蕉无码| 国产午夜激片Av毛片不卡| 美女自卫慰黄网站免费| 国产精品肉丝自拍| 不卡一区视频| 亚洲性天堂| 免费观看国产小粉嫩喷水精品午| A片 AV一级在线播放观看免费| 99热亚洲| 天堂资源站| 先锋女优在线观看视频| 天堂а√在线最新版在线| 97色干| 熟女色图在线| 久久超碰天天| 日本人妻中文字幕精品| www九九热| 亚洲人妖网| 精品十三区| 亚洲欧美内射| 国产偷人伦激情在线观看| 亚洲精品性爱片| 欧美日韩91| AV丝袜少妇| 亚洲熟妇AV日韩熟妇在线| 亚洲资源站| 国产自啪精品视频网站黑丝| 青青五月天| 亚洲欧美综合区自拍另类 | 国产suv精品一区| 无码高清操逼网址| 丁香六月婷婷久久综合| julia中文字幕在线观看| 国产97亚洲| 黄色片大香蕉| 精品美女在线视频| 人妻熟女午夜精品在线| 日日日啊啊啊| 97色操| 久久97超碰| 亚欧毛片基地国产毛片基地| 97视频观看| 偷窥自拍亚洲色图| 美女网站黄页| 91九久| 欧美激情视频一区二区三区不卡| 一本久久精品中文字| 啊啊啊免费视频| 亚洲色图欧美视频| 人妻精品一区二区全免费| 欧美写真视频一区| 国产做?爰片久久毛片?片美国| 91av天美性媒精品视频| 老熟女网站| 婷婷激情四射| 黄色一区三区| AAAAAAAAA黄片| 好看的91视频| 91麻豆天美国产欧美高潮| 欧美性色欧美| 国产树林里野战在线看| 99xav| 东京热大香蕉| 日本日皮视频逼| 91黑丝露脚| 美女爽到高潮91| aⅴ日韩成人电影av在线免费看av大全 | 欧美一区二区男人天堂| 亚州综| 在线观看一卡二卡| 日韩15p| 色欧美天天| 99av| 丁香成人五月天| 又黄又硬又粗又长国产视频| 97干在线| 亚州日韩97| 四虎影视精品| 香蕉综合网| 欧美日韩天堂| 强奸乱伦AV网站| 性91| 区一在线观看| 欧 美 自 拍 偷 拍| 久久99手机免费视频| 波多野结衣一级视频| 男人天堂久久精品不卡| 天天躁日日躁成人字幕aⅴ| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 另类天堂| 午夜呻吟欧美| 9久在线视频只有精品| 欧美日韩日产免费网站看| 亚洲在线综合| 久久一二三级一一一| 人人 操人人 操人人| x97av| 思思性爱| 极品另类| 91亚洲欧美| 欧美一二三区四五区| 久久一区二区高清免费| av72网| 欧美日韩香蕉| 怡红院亚洲怡春院av| 亚洲图片欧美在线视频| 97视频播放| 夜夜爽33333| 久久大黄片| 十八禁黄色成人网站观看| 伦激情人妻另类人妻| 久久99精品国产| 国产激情av女片自拍| 色娱乐色呦呦夜夜夜夜av| 中文字幕交换人妻| 日本午夜久久电影| 亚洲男人综合网| 五月丁香在线| 国产AV超爽| 中文字幕丝袜国产第一页不卡| 欧亚无码视频| 大肥女高潮bbwbbwhd视频| 啊啊啊草死我| 97天天操| 久久久精品网| 777超碰| 久草加勒比一区在线| 欧美加勒比| 色逼综合| 蜜臀久久99精品久久久久久无删减 | TS人妖另类精品视频系列| 超碰视97中文| 熟妇熟女视频一区二区三区| 日韩免费看黄片| 91人妻人人澡人人爽人人精品| 韩国黄色片精品久久久 | 蜜桃久久综合视频| 中文字幕免费在线观看| 四虎永久在线精品免费网址| 二色av| 岛国黄| 78操B| 婷婷久草| 日韩精品一二三四| 国产白嫩漂亮KTV在线| 2019天天干| 97日韩超碰超碰中文字幕| 竹菊一区二区三区AV线| 97综合激情| 欧美最婬乱婬爆婬牲视频| 天天摸夜夜摸| 中文字幕精品人妻丝袜| 国产久久一区二区三区野外在线| 色色色色电影网| 精品妇女一区二区三区| 精品国产网站| 美女91色黄18| 一本大道青青| 亚洲日韩av专区无码| 日韩欧美大力操| 大伊香蕉在线视频免费| 91丝袜美女国产| 黄总AV色图| 插B在线观看| 日韩激情无码影院| 久久国产熟女影院| 久久久国产三级黄色片| 岛国片在线观看视频亚洲| 超碰爽人妻熟女Av| 密臀在线免费观看| 精品十八在线观看| 蜜臀久久久99久久久久 | h色99999| 久久久久久久九九九九| 黄色视频60分钟| 五月婷视频| 精品久久久久瑟瑟| 91白嫩| 亲子敌伦对白在线播放| 亚洲偷拍自拍在线视频| 蜜桃精品一区二区三区ww| 爱妻综合网| 日本一区二区三区午夜观看| 激情五月天色色网| 中国熟女网站| 99久久久无码国产精品性啊聊| 91精品无码人妻系列| 欧美熟女激情| 久久久久九九九九| 久久精品国产72国产精品福利| 天天夜夜久久| 久久久久少妇| 好吊妞转入那个网| 久久久性少妇| 91精品人妻电影| 日韩欧美被操黄免费观看| 九九综合九九综合| 天天干天天干天天| 五月天婷婷社区| 国产动漫操逼视频| 97少妇人妻中文字幕久久| 国产第12页| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 国产福利夜| 日韩青久久| 亚洲97久久精品亚洲| 熟妇精品juliaannAV| 久久区| 国产农村一一级特黄毛片| 男人天堂免费| 亚洲美女自拍偷拍视频| 欧美色图 人妻| 强奸乱伦Av网| 东北女人操比视频| 91小视频| chaopen97久久| 丁香六月婷婷综合| 欧美色青| 国产自偷| 国产伦精品一区二区三区视频女| 国产女人操逼视频| 思思视频免费看网站| 国产999精品久久久| 伊人久久亚洲色欲综合网站 | 亚洲鸥美色图| 日日干日日操五月天伦理视频| 婷婷五月天网| 新婚人妻扶着粗大强行坐下| 高潮的A片激情扒开一区| 操人人| 可免费观看的av毛片中日美韩| 色天使AV天堂| 国产精品麻豆成人AV艾秋| 免费看黄视频亚洲网站| 日韩精品午夜操呦呦不卡影院| 超碰午夜在线| 亚洲蜜桃V妇女| 一级性爱视频免费观看| 久久天堂网| AND人妻系列| 乱伦系列一区二区| 欧美色亚洲| 屌色在线97视频| 熟女激情综合网| 啊啊啊好疼| 精品人妻一区二区乱码一区二区| 这里只有精品视频| 日韩精品人妻一| 全国男人天堂网| 欧美黄页在线| 日韩探花精品在线视频| 国产强奸乱伦xd| A一区片| 久操操AV电影| 色婷婷蜜臀av| 亚洲AV性爱电影| 欧美第一页| 五月天激情小说| 国产中出内射一区二区| 亚州综合色图| 最近2019中文字幕国语免费版| 视频二区美腿制服人妻欧美| 精品网站99999| 青娱乐亚洲热| 丁香五月激情综合国产| 麻豆天天躁天天揉揉AV| 免费看污网站| 丁香六月激情综合| 欧美中文字幕日韩在线| 锕锕好爽 死我在线观看| 青娱乐日韩无码| 日本操逼aaaaa| 91视频综合在线| 天天流夜夜操| AV天堂国产| 成人资源中文字幕在线观看| 一块操欧美| 日韩精品资源专区二区| 嗯嗯啊啊好大好爽| 亚洲一区二区性爱电影| 天天狂操夜夜狂日| 啊a一区在线| 99久久婷婷国产综合精品草原| 青娱乐福利99| 久久色AV线| 色婷婷六月| 久久久久久久亚洲Av无码| 欧美综合1性辶| 欧美日韩国产精品久久色婷婷| 亚洲蜜臀懂色| 日本九九久久99播| 日日爽夜夜爽| 久久久久国产精品片区无码直播| av草草在线电影| 欧美色图97| 91高清欧美| 国产馆| 成人免费性爱视视| 国产亚洲日韩欧| 手机在线视频国内精品| 国产欧美一区激情交| 激情色色| 夜夜狠狠躁日日躁色视频| 九九九久久久久| 九九九久| 日韩欧美福利视频看看| 福利社区午夜一区二区| 国产又色又爽又舒服的三级视频| 成人AV在线电影| 久插综合| 91 综合网| a亚洲欧美色欲| 在线观看国产黄色| 综合网欧美在线| 伊人aaa| 91亚洲欧美| 欧美大香蕉同搞| 亚洲国产精品乱码在线观看| 96国产污污污丝袜| 久久黄黄黄| 成人性爱AV在线免费观看| 操婷婷逼| 熟啊v色欧美热| 欧成人精品一区二区三区| 一级日本牲交大片好爽在线看| 婷婷五月天丁香花| 蜜桃不卡一区二区| 91狠狠综| 免费观看啪视频| 亚洲熟女乱熟乱熟妇综合网二区| 猛猛干| 自拍偷拍 高清无码| ss久久| 天天操妹子| 俺去俺来也在线www| www.高清无码诱惑一区.com| 丰满人妻一区二区三区免费| 亚洲天堂中文字| 国产性感在线观看| 四虎精品永久在线播放| 插欧洲美女欧美精品| 综合91网| 日韩偷拍一区二区三区| 欧美性猛交美女自慰91| 欧美se综合| 色色色999| 极品出轨视频网站| 丁香六月东京热| 亚洲素人网| 中文字幕亚洲永久精品| 欧美少妇高潮久久91| 无码一区二区精品视频久久久春药 | 亚洲情色第一页| 久久啊啊| 九九Av| 9999久久久| 精品少妇后入一区二区三区四区人妻巨乳 | 草草影院最新网址| 欧亚久久偷拍视频| 国产毛片久久久久久久| 亚洲色图a| 中文日本免费高清| 插入粉嫩少妇视频| 黄骗免费| 亚洲在线观看| 伦伦成年午夜免费视频| 麻豆区久久久久亚| 欧美综合区| 91精品人妻一区二区三区蜜桃| 男人的天堂2010| 热思思免费视频| 久久超碰98| 日韩免费性爱视频在线观看| 丝袜 中出 制服 人妻 美腿 中文字幕| 天天看,天天做| 亚洲图片欧美| 中国黑人三级片网站上区| 黄色AAAAA欧美| 99re视频在线播放青草| 99热这里只有精| 无码区蜜乳| 伊人9| 久久久不能久久久久| www.黄色在线| 色欧美色交综合| av中文字幕在线熟女| 日韩操p| 女人香蕉久久毛毛片精品| 欧美精品在线观看| www.黄色在线| 九九久久玖玖| 狠狠躁日日躁夜夜躁A| 五月婷婷六月天| 亚洲第一免费视频| rion磁力链接| 搡老女人老91妇女熟女| 超碰亚洲欧美日韩无| 日本一区二区成人在线| 日韩免费看在线黄色片| 好吊色综合| 欧美96在线|欧| 亚洲欧美天| 91亚洲欧美综合高清在线| 久久久98网站免费视频| 日本成人电影资源网| 久久国产AⅤ| 96精品久久| 国产精品97超碰| 中文字幕一区二区三四五区日日骚| 色老汉色|