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

ARTICLE DETAIL

資訊詳情

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

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

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