免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

網(wǎng)頁(yè)設(shè)計(jì)期末作業(yè)全攻略:從站點(diǎn)規(guī)劃到購(gòu)物車(chē)交互一次講透

網(wǎng)頁(yè)設(shè)計(jì)期末作業(yè)全攻略:從站點(diǎn)規(guī)劃到購(gòu)物車(chē)交互一次講透 做網(wǎng)頁(yè)設(shè)計(jì)期末大作業(yè)這件事每年期末都有大批學(xué)生卡在同一個(gè)地方題目看著不難比如水果超市網(wǎng)站設(shè)計(jì)六張頁(yè)面、HTMLCSSJavaScript、用DW交稿但真動(dòng)手以后才發(fā)現(xiàn)——要么布局怎么調(diào)都不對(duì)要么交互效果做不出來(lái)要么做完一檢查漏洞百出最后交上去的作業(yè)自己都不好意思看。這篇文章我就以水果超市6頁(yè)這個(gè)題目為例從拿到題目開(kāi)始到最終提交完整拆一遍應(yīng)該怎么規(guī)劃、怎么寫(xiě)代碼、怎么調(diào)試以及哪些細(xì)節(jié)是評(píng)分老師真正在意的點(diǎn)。內(nèi)容覆蓋站點(diǎn)結(jié)構(gòu)設(shè)計(jì)、全局CSS、首頁(yè)輪播、商品列表與詳情、購(gòu)物車(chē)JS邏輯、登錄表單校驗(yàn)、提交前自檢這些環(huán)節(jié)適合正在做web課程設(shè)計(jì)的學(xué)生參考也適合想系統(tǒng)補(bǔ)一遍網(wǎng)頁(yè)三件套基礎(chǔ)的同學(xué)當(dāng)復(fù)盤(pán)材料。1. 拿到水果超市題目先搞清楚評(píng)分老師在找什么1.1 評(píng)審視角下的四個(gè)得分維度先說(shuō)個(gè)很多學(xué)生容易忽略的事實(shí)網(wǎng)頁(yè)設(shè)計(jì)作業(yè)的評(píng)分標(biāo)準(zhǔn)和商業(yè)網(wǎng)站不完全一樣老師打分時(shí)看重的不是功能有多復(fù)雜而是以下幾個(gè)維度。第一是完整性。標(biāo)題明確寫(xiě)了6頁(yè)那就必須有6個(gè)HTML文件少一頁(yè)直接扣分。而且每頁(yè)之間要通過(guò)導(dǎo)航欄或鏈接串聯(lián)起來(lái)不能是六個(gè)孤立文件。第二是規(guī)范性。HTML結(jié)構(gòu)是否語(yǔ)義化CSS是否單獨(dú)寫(xiě)在外部樣式表里JavaScript是否獨(dú)立成文件或用合理的方式內(nèi)嵌命名是否清晰注釋是否到位。這些都屬于看起來(lái)像專(zhuān)業(yè)開(kāi)發(fā)人員寫(xiě)的東西的范疇。第三是功能性。JavaScript部分有沒(méi)有實(shí)際能跑的交互——輪播、菜單切換、表單驗(yàn)證、購(gòu)物車(chē)計(jì)算任意兩到三個(gè)就能滿(mǎn)足要求。只寫(xiě)靜態(tài)頁(yè)面沒(méi)有JS基本告別高分段。第四是視覺(jué)完成度。顏色是否統(tǒng)一間距是否舒服hover有沒(méi)有反饋圖片是否清晰整體能不能看出設(shè)計(jì)過(guò)。這決定了作業(yè)是及格還是優(yōu)秀的分水嶺。1.2 六頁(yè)站點(diǎn)地圖不是隨便湊六個(gè)頁(yè)面是邏輯閉環(huán)拿水果超市這個(gè)題目來(lái)說(shuō)六頁(yè)的分配可以這樣規(guī)劃index.html首頁(yè)品牌banner、輪播圖、熱門(mén)推薦、樓層導(dǎo)購(gòu)、促銷(xiāo)活動(dòng)任務(wù)是吸引用戶(hù)點(diǎn)進(jìn)下一層。products.html商品列表頁(yè)展示全部分類(lèi)下的水果商品卡片帶分類(lèi)篩選和排序。detail.html商品詳情頁(yè)單款水果的大圖、簡(jiǎn)介、價(jià)格、規(guī)格選擇、加入購(gòu)物車(chē)按鈕是從列表頁(yè)到?jīng)Q策頁(yè)的過(guò)渡。cart.html購(gòu)物車(chē)頁(yè)展示已加入的商品、數(shù)量增減、自動(dòng)計(jì)算總價(jià)、模擬結(jié)算流程。login.html登錄/注冊(cè)頁(yè)表單加校驗(yàn)驗(yàn)證用戶(hù)名、密碼格式可加驗(yàn)證碼倒計(jì)時(shí)之類(lèi)的小交互。about.html關(guān)于我們/水果知識(shí)頁(yè)品牌故事、水果營(yíng)養(yǎng)知識(shí)順便展示圖片和排版能力。這六頁(yè)的邏輯是一條完整的用戶(hù)動(dòng)線(xiàn)進(jìn)店首頁(yè)→ 逛貨架列表→ 看商品詳情→ 加入購(gòu)物車(chē)購(gòu)物車(chē)→ 登錄結(jié)算登錄頁(yè)→ 了解品牌關(guān)于頁(yè)。評(píng)閱老師打開(kāi)任何一個(gè)頁(yè)面都能通過(guò)導(dǎo)航跳到其他頁(yè)面這實(shí)現(xiàn)的是網(wǎng)購(gòu)商城的基本信息架構(gòu)。在動(dòng)手寫(xiě)代碼之前強(qiáng)烈建議用一張紙把上面這個(gè)關(guān)系和每個(gè)頁(yè)面的模塊清單畫(huà)出來(lái)。這一步看著浪費(fèi)時(shí)間實(shí)際能省下后面反復(fù)改結(jié)構(gòu)的功夫。1.3 開(kāi)發(fā)工具用DW還是HBuilder標(biāo)題里帶DW這里就多說(shuō)一句。Dreamweaver在設(shè)計(jì)網(wǎng)頁(yè)作業(yè)場(chǎng)景下依然能用它的實(shí)時(shí)視圖和站點(diǎn)管理功能對(duì)新手友好。但如果你手里一臺(tái)電腦能裝其他軟件我更推薦HBuilder或VS Code原因有三個(gè)代碼補(bǔ)全更智能寫(xiě)類(lèi)名和標(biāo)簽時(shí)的效率高很多內(nèi)置的本地預(yù)覽服務(wù)器比如HBuilder的運(yùn)行到瀏覽器不會(huì)出現(xiàn)file協(xié)議下的路徑跨域問(wèn)題控制臺(tái)報(bào)錯(cuò)信息更完整排查JS錯(cuò)誤時(shí)能省不少時(shí)間。工具本身不影響成績(jī)交上去的是代碼不是截圖所以挑自己順手的就行。2. 先寫(xiě)全局CSS風(fēng)格統(tǒng)一比單個(gè)頁(yè)面驚艷更重要很多新手習(xí)慣一頁(yè)一頁(yè)寫(xiě)樣式結(jié)果首頁(yè)一個(gè)色調(diào)、列表頁(yè)又一個(gè)色調(diào)放在一起像拼盤(pán)。正確做法是先建一個(gè)全局樣式表我習(xí)慣命名為style.css或common.css把整個(gè)站點(diǎn)的視覺(jué)規(guī)范定下來(lái)其他頁(yè)面都引用它。2.1 用CSS變量統(tǒng)一主題色水果超市這個(gè)品類(lèi)天然適合綠色系——新鮮、健康、有食欲。用CSS變量定義主題色后續(xù)所有頁(yè)面的顏色都用var()引用想換配色時(shí)只需要改一處。:root { --primary: #43a047; /* 主色新鮮綠 */ --primary-dark: #2e7d32; /* 深色用于導(dǎo)航、頁(yè)腳 */ --primary-light: #66bb6a; /* 淺色用于hover背景 */ --accent: #ff9800; /* 強(qiáng)調(diào)色促銷(xiāo)標(biāo)簽、價(jià)格 */ --bg: #f7f8f5; /* 頁(yè)面背景 */ --card-bg: #ffffff; /* 卡片背景 */ --text-main: #333333; /* 主文字 */ --text-sub: #757575; /* 次要文字 */ --radius: 10px; /* 統(tǒng)一圓角 */ --shadow: 0 2px 12px rgba(0,0,0,0.08); /* 卡片陰影 */ }定義好之后寫(xiě)按鈕、卡片、導(dǎo)航的背景色和文字色時(shí)全用變量。這樣假如老師提了一句換成暖色調(diào)更有食欲你只需要把--primary改成橙紅色系幾分鐘完成全局換膚。2.2 重置瀏覽器默認(rèn)樣式瀏覽器自帶的body有8px外邊距ul有默認(rèn)圓點(diǎn)a有下劃線(xiàn)這些默認(rèn)樣式會(huì)讓你的頁(yè)面在不同瀏覽器里長(zhǎng)不一樣。因此全局樣式第一段就應(yīng)該做基礎(chǔ)重置。* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: PingFang SC, Microsoft YaHei, sans-serif; background: var(--bg); color: var(--text-main); line-height: 1.6; } ul { list-style: none; } a { text-decoration: none; color: inherit; } img { display: block; max-width: 100%; } .container { width: 1200px; max-width: 100%; margin: 0 auto; padding: 0 15px; }這里的.container是全局通用的容器類(lèi)各頁(yè)面內(nèi)容區(qū)都用它包裹保證頁(yè)面兩側(cè)留白一致。box-sizing: border-box這個(gè)屬性尤其重要沒(méi)有它一個(gè)設(shè)定寬度的盒子加了padding后實(shí)際寬度會(huì)超出預(yù)期布局亂掉的常見(jiàn)原因就在這。2.3 導(dǎo)航欄和頁(yè)腳六張頁(yè)面長(zhǎng)一個(gè)樣評(píng)分老師拿到作業(yè)后第一件事是挨個(gè)打開(kāi)頁(yè)面這時(shí)導(dǎo)航欄和頁(yè)腳是否完全一致直接影響網(wǎng)站整體性的印象分。所以這兩個(gè)組件必須在全局CSS里統(tǒng)一定義好。導(dǎo)航的結(jié)構(gòu)推薦這樣寫(xiě)header classsite-header div classcontainer nav-wrap div classlogo a hrefindex.html img srcimages/logo.png alt鮮果超市 /a /div nav classmain-nav ul li classactivea hrefindex.html首頁(yè)/a/li lia hrefproducts.html全部水果/a/li lia hrefabout.html關(guān)于我們/a/li lia hreflogin.html登錄/a/li lia hrefcart.html購(gòu)物車(chē)/a/li /ul /nav div classheader-search input typetext placeholder搜索水果... button搜索/button /div /div /header導(dǎo)航的高亮當(dāng)前頁(yè)是區(qū)分頁(yè)面的關(guān)鍵。當(dāng)前頁(yè)對(duì)應(yīng)的li加上active類(lèi)顏色用主色調(diào)加粗其他頁(yè)的鏈接保持普通樣式。頁(yè)腳部分包含三列信息品牌介紹文字、快捷鏈接列表、聯(lián)系方式可以寫(xiě)400電話(huà)這類(lèi)模擬信息底部再放一行版權(quán)聲明。注意版權(quán)聲明里的年份用JS動(dòng)態(tài)獲取這是一個(gè)很多人沒(méi)想到、但老師會(huì)注意到的小細(xì)節(jié)document.getElementById(year).textContent new Date().getFullYear();2.4 一組通用按鈕和卡片樣式水果超市的交互以查看詳情加入購(gòu)物車(chē)結(jié)算為主所以按鈕樣式必須全局統(tǒng)一。我建議定義兩個(gè)類(lèi).btn是基礎(chǔ)按鈕.btn-primary是主按鈕.btn-outline是描邊按鈕。.btn { display: inline-block; padding: 10px 24px; border: none; border-radius: 50px; font-size: 14px; cursor: pointer; transition: all 0.3s ease; text-align: center; } .btn-primary { background: var(--primary); color: #fff; } .btn-primary:hover { background: var(--primary-dark); transform: translateY(-2px); box-shadow: 0 6px 16px rgba(67, 160, 71, 0.35); } .btn-outline { background: transparent; color: var(--primary); border: 2px solid var(--primary); } .btn-outline:hover { background: var(--primary-light); color: #fff; }商品卡片是列表頁(yè)、首頁(yè)推薦區(qū)共用的元素同樣在全局CSS里定義好避免每個(gè)頁(yè)面重復(fù)寫(xiě)。.card { background: var(--card-bg); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; } .card:hover { transform: translateY(-6px); box-shadow: 0 12px 24px rgba(0,0,0,0.12); }2.5 CSS漸變和文本溢出省略的使用做促銷(xiāo)標(biāo)簽時(shí)CSS漸變能做出比純色更有質(zhì)感的視覺(jué)效果。比如限時(shí)特惠標(biāo)簽用漸變背景更醒目.tag-hot { background: linear-gradient(135deg, #ff5722, #ff9800); color: #fff; font-size: 12px; padding: 4px 10px; border-radius: 20px; }商品標(biāo)題如果太長(zhǎng)不要讓它換行撐亂卡片用單行溢出省略處理.card-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }這兩處都是高頻用到的小技巧很多初學(xué)者不知道text-overflow要和white-space、overflow配合才生效單獨(dú)寫(xiě)一個(gè)屬性是沒(méi)用的。3. 首頁(yè)的視覺(jué)錨點(diǎn)輪播圖讓作品第一眼像樣首頁(yè)是網(wǎng)站的門(mén)面。打開(kāi)首頁(yè)的視覺(jué)效果直接決定了老師對(duì)這個(gè)作業(yè)的初始印象分。而首頁(yè)里最能撐場(chǎng)面的組件就是首屏的大尺寸輪播圖。3.1 先說(shuō)清輪播圖的實(shí)現(xiàn)原理輪播圖本質(zhì)上是一個(gè)視口容器、一組水平排列的slide、一段控制位移的JavaScript。每切換一次就是讓slide數(shù)組的父容器往左平移一個(gè)slide寬度。平移用CSS的transform: translateX()實(shí)現(xiàn)性能最好配合transition: 0.5s就能獲得平滑動(dòng)畫(huà)。很多學(xué)生一上來(lái)就想用jQuery插件或Swiper交作業(yè)當(dāng)然可以但如果能在純JavaScript層面把它實(shí)現(xiàn)出來(lái)代碼量不大又能體現(xiàn)你對(duì)DOM操作和事件處理的理解平時(shí)分和答辯時(shí)的印象分會(huì)明顯更好。3.2 一個(gè)自帶指示器和小箭頭的完整輪播HTML結(jié)構(gòu)div classbanner div classbanner-viewport ul classbanner-slides idbannerSlides li classslideimg srcimages/banner1.jpg alt當(dāng)季鮮果推薦/li li classslideimg srcimages/banner2.jpg alt進(jìn)口水果專(zhuān)區(qū)/li li classslideimg srcimages/banner3.jpg alt會(huì)員日優(yōu)惠/li /ul /div button classbanner-arrow prev idprevBtn#10094;/button button classbanner-arrow next idnextBtn#10095;/button ul classbanner-dots idbannerDots li classactive/li li/li li/li /ul /divCSS關(guān)鍵部分.banner { position: relative; overflow: hidden; border-radius: 0 0 20px 20px; } .banner-viewport { width: 100%; height: 420px; overflow: hidden; } .banner-slides { display: flex; width: 100%; height: 100%; transition: transform 0.5s ease; } .slide { flex-shrink: 0; width: 100%; height: 100%; } .slide img { width: 100%; height: 100%; object-fit: cover; }注意flex-shrink: 0這個(gè)細(xì)節(jié)它保證每個(gè)slide不會(huì)在flex容器里被壓縮是輪播能正常橫排的關(guān)鍵。JavaScript核心邏輯let currentIndex 0; const slides document.querySelectorAll(.slide); const dots document.querySelectorAll(.banner-dots li); const slidesWrap document.getElementById(bannerSlides); const totalSlides slides.length; let timer null; function goToSlide(index) { if (index 0) { index totalSlides - 1; } else if (index totalSlides) { index 0; } currentIndex index; slidesWrap.style.transform translateX(- currentIndex * 100 %); updateDots(); } function updateDots() { dots.forEach((dot, i) { dot.classList.toggle(active, i currentIndex); }); } function nextSlide() { goToSlide(currentIndex 1); } function prevSlide() { goToSlide(currentIndex - 1); } document.getElementById(nextBtn).addEventListener(click, function() { nextSlide(); resetAutoPlay(); }); document.getElementById(prevBtn).addEventListener(click, function() { prevSlide(); resetAutoPlay(); }); dots.forEach((dot, index) { dot.addEventListener(click, function() { goToSlide(index); resetAutoPlay(); }); }); function startAutoPlay() { timer setInterval(nextSlide, 3000); } function resetAutoPlay() { clearInterval(timer); startAutoPlay(); } startAutoPlay();這里有一點(diǎn)值得注意translateX用百分比而不是固定像素值這樣不管瀏覽器窗口怎么縮放每個(gè)slide平移的距離都等于自身寬度輪播不會(huì)錯(cuò)位。這個(gè)寫(xiě)法的健壯性比寫(xiě)死像素值好很多。3.3 一個(gè)錦上添花的做法鼠標(biāo)懸停暫停輪播評(píng)分老師在演示時(shí)鼠標(biāo)一定會(huì)在頁(yè)面上移動(dòng)如果輪播遇到鼠標(biāo)懸停能暫??雌饋?lái)會(huì)非常專(zhuān)業(yè)。實(shí)現(xiàn)非常簡(jiǎn)單在banner容器上監(jiān)聽(tīng)mouseenter和mouseleave即可const banner document.querySelector(.banner); banner.addEventListener(mouseenter, function() { clearInterval(timer); timer null; }); banner.addEventListener(mouseleave, function() { startAutoPlay(); });3.4 首頁(yè)的樓層導(dǎo)購(gòu)錨點(diǎn)跳轉(zhuǎn)加上吸頂導(dǎo)航首屏輪播下面可以加精選水果進(jìn)口專(zhuān)區(qū)時(shí)令促銷(xiāo)三個(gè)樓層模塊。每個(gè)樓層的左側(cè)或頂部放一個(gè)樓層標(biāo)題點(diǎn)擊右側(cè)樓層導(dǎo)航里的對(duì)應(yīng)條目頁(yè)面平滑滾動(dòng)到對(duì)應(yīng)區(qū)域。平滑滾動(dòng)的實(shí)現(xiàn)有兩種方式。一種是用CSS的scroll-behavior: smooth在html上設(shè)置然后a標(biāo)簽href直接指向錨點(diǎn)id零代碼實(shí)現(xiàn)滾動(dòng)動(dòng)畫(huà)html { scroll-behavior: smooth; }另一種是用JS的window.scrollTo配合behavior: smooth參數(shù)適合需要在滾動(dòng)前后執(zhí)行其他邏輯的場(chǎng)景。這一整套首頁(yè)下來(lái)就有了視覺(jué)重點(diǎn)輪播、商品展示樓層、輔助導(dǎo)航小箭頭和錨點(diǎn)首屏內(nèi)容非常充實(shí)。4. 商品列表與詳情頁(yè)網(wǎng)購(gòu)商城的核心交互體驗(yàn)4.1 列表頁(yè)的分類(lèi)篩選用data屬性做最簡(jiǎn)單可靠的數(shù)據(jù)篩選商品列表頁(yè)的篩選功能很多學(xué)生第一反應(yīng)就是每個(gè)分類(lèi)做一套標(biāo)簽/循環(huán)其實(shí)用data屬性做篩選是工作中最常用的輕量方案它把分類(lèi)信息直接掛在商品卡片上點(diǎn)擊按鈕時(shí)遍歷卡片按data值決定顯示還是隱藏。HTML部分div classfilter-bar button classfilter-btn active>const filterBtns document.querySelectorAll(.filter-btn); const productCards document.querySelectorAll(.product-card); filterBtns.forEach(function(btn) { btn.addEventListener(click, function() { filterBtns.forEach(function(item) { item.classList.remove(active); }); this.classList.add(active); const filterValue this.getAttribute(data-filter); productCards.forEach(function(card) { if (filterValue all || card.getAttribute(data-category) filterValue) { card.style.display block; } else { card.style.display none; } }); }); });4.2 列表和網(wǎng)格視圖切換商品列表頁(yè)的另一個(gè)實(shí)用交互是列表視圖和網(wǎng)格視圖切換。網(wǎng)格視圖是默認(rèn)的商品卡片橫排列表視圖則是每個(gè)商品占一整行圖在左、信息在右。實(shí)現(xiàn)方式不復(fù)雜在同結(jié)構(gòu)的基礎(chǔ)上給容器換一個(gè)類(lèi)名CSS里為不同類(lèi)名下的卡片定義不同布局。比如容器上有g(shù)rid-view時(shí)卡片豎排三列容器變成list-view時(shí)卡片變橫排行。切換類(lèi)名的本質(zhì)是CSS在不同上下文下的樣式覆蓋。.product-grid.grid-view .product-card { width: 23%; /* 豎排卡片樣式 */ } .product-grid.list-view .product-card { width: 100%; display: flex; align-items: center; /* 橫排樣式 */ }JS只要切換product-grid的class再配合一個(gè)小的過(guò)渡動(dòng)畫(huà)效果就非常顯眼。4.3 加入購(gòu)物車(chē)的即時(shí)反饋設(shè)計(jì)列表頁(yè)里每個(gè)商品卡片都放一個(gè)加入購(gòu)物車(chē)按鈕。點(diǎn)擊后的反饋不能只是數(shù)據(jù)變了用戶(hù)看不到反饋就等于沒(méi)生效。我實(shí)操中覺(jué)得最順手的反饋組合有這么幾種按鈕文字瞬間變?yōu)橐鸭尤?1.5秒后恢復(fù)右上角購(gòu)物車(chē)圖標(biāo)上的數(shù)字1帶一個(gè)彈跳動(dòng)效頁(yè)面右下角浮出一個(gè)小toast提示已成功加入購(gòu)物車(chē)。這三個(gè)效果都不復(fù)雜卻能極大提升交互完成度。toast的實(shí)現(xiàn)方法是創(chuàng)建一個(gè)絕對(duì)定位的div用setTimeout控制它在2秒后漸隱并移除function showToast(message) { let toast document.createElement(div); toast.className toast; toast.textContent message; document.body.appendChild(toast); setTimeout(function() { toast.classList.add(show); }, 10); setTimeout(function() { toast.classList.remove(show); setTimeout(function() { document.body.removeChild(toast); }, 300); }, 2000); }CSS里讓.toast默認(rèn)透明、固定在右下角加上transition實(shí)現(xiàn)淡入淡出效果很自然。4.4 詳情頁(yè)的圖片放大鏡一個(gè)能加分的視覺(jué)交互商品詳情頁(yè)是學(xué)生作業(yè)里最容易做得空的一頁(yè)因?yàn)閮?nèi)容結(jié)構(gòu)簡(jiǎn)單就一張大圖加幾行文字。但加一個(gè)鼠標(biāo)移入放大的效果電商里叫放大鏡頁(yè)面檔次立刻不一樣。原理其實(shí)只有三步在原圖上監(jiān)聽(tīng)mousemove根據(jù)鼠標(biāo)位置計(jì)算放大區(qū)域的位置百分比把大圖背景的background-position按比例移動(dòng)。const smallImg document.querySelector(.detail-img); const zoomBox document.querySelector(.zoom-box); smallImg.addEventListener(mousemove, function(e) { const rect smallImg.getBoundingClientRect(); const x e.clientX - rect.left; const y e.clientY - rect.top; const percentX (x / rect.width) * 100; const percentY (y / rect.height) * 100; zoomBox.style.backgroundPosition percentX % percentY %; zoomBox.style.display block; }); smallImg.addEventListener(mouseleave, function() { zoomBox.style.display none; });如果覺(jué)得實(shí)現(xiàn)放大鏡有點(diǎn)難度詳情頁(yè)的備選方案是做圖片縮略圖切換——下方一排小圖點(diǎn)擊后上方大圖跟著切換。這個(gè)用JS也很容易實(shí)現(xiàn)而且同樣能體現(xiàn)交互感。5. 購(gòu)物車(chē)頁(yè)面的純?cè)鶭S狀態(tài)管理不靠框架也能能買(mǎi)能算購(gòu)物車(chē)是整個(gè)網(wǎng)站里JavaScript含量最高的一頁(yè)也是最能體現(xiàn)編程能力的地方。不用Vue或React純?cè)鶭S也一樣能做出完整可用的購(gòu)物車(chē)邏輯。5.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)數(shù)組加對(duì)象購(gòu)物車(chē)的狀態(tài)就是一組數(shù)據(jù)。我把每個(gè)商品抽象成一個(gè)對(duì)象let cartItems [ { id: 1, name: 贛南臍橙, price: 12.8, count: 2, checked: true }, { id: 2, name: 海南貴妃芒, price: 19.9, count: 1, checked: false } ];id用于唯一標(biāo)識(shí)每個(gè)商品name和price用于展示count記錄購(gòu)買(mǎi)數(shù)量checked標(biāo)記是否勾選。后續(xù)所有頁(yè)面交互——數(shù)量加減、刪除、勾選、總價(jià)計(jì)算——都圍繞這個(gè)數(shù)組展開(kāi)。5.2 渲染函數(shù)數(shù)據(jù)變一次頁(yè)面就重畫(huà)一次購(gòu)物車(chē)頁(yè)面的核心原則是數(shù)據(jù)驅(qū)動(dòng)視圖——數(shù)據(jù)變了頁(yè)面就重新渲染。我習(xí)慣寫(xiě)一個(gè)renderCart()函數(shù)每次數(shù)據(jù)有變化就調(diào)用它用數(shù)組map或循環(huán)生成HTML字符串再賦值給tbody的innerHTML。function renderCart() { const tbody document.getElementById(cartBody); let html ; cartItems.forEach(function(item) { html tr tdinput typecheckbox classitem-check>function updateTotal() { let total 0; let selectedCount 0; cartItems.forEach(function(item) { if (item.checked) { total item.price * item.count; selectedCount item.count; } }); document.getElementById(totalPrice).textContent ¥ total.toFixed(2); document.getElementById(selectedCount).textContent selectedCount; }事件綁定用的是事件委托機(jī)制。所謂事件委托就是不給每個(gè)加減按鈕單獨(dú)綁定而是利用DOM事件冒泡讓父容器統(tǒng)一處理。這樣做的好處是即使以后商品數(shù)量變化、DOM結(jié)構(gòu)重新渲染事件也不會(huì)丟失。document.getElementById(cartBody).addEventListener(click, function(e) { const target e.target; const id parseInt(target.getAttribute(data-id)); if (!isNaN(id)) { if (target.classList.contains(plus)) { changeCount(id, 1); } else if (target.classList.contains(minus)) { changeCount(id, -1); } else if (target.classList.contains(btn-delete)) { deleteItem(id); } } });5.3 數(shù)量加減和刪除不可變更新加減和刪除的邏輯就是對(duì)數(shù)組做操作然后再渲染。function changeCount(id, delta) { const item cartItems.find(function(item) { return item.id id; }); if (item) { item.count delta; if (item.count 1) { item.count 1; // 最少不能為0 } } renderCart(); } function deleteItem(id) { cartItems cartItems.filter(function(item) { return item.id ! id; }); renderCart(); }這里給count加了最小值1的判斷防止用戶(hù)一路減到0甚至負(fù)數(shù)。這是一個(gè)非常實(shí)際的邊界情況作業(yè)里處理好了會(huì)顯得很?chē)?yán)謹(jǐn)。5.4 全選與反選全選按鈕的邏輯也很直白點(diǎn)擊全選時(shí)如果當(dāng)前不是全選狀態(tài)就把所有商品的checked設(shè)為true如果已經(jīng)是全選就全部設(shè)為false。同時(shí)全選框的狀態(tài)要在每次渲染時(shí)根據(jù)當(dāng)前數(shù)據(jù)重新計(jì)算保證顯示和實(shí)際數(shù)據(jù)一致。document.getElementById(selectAll).addEventListener(change, function() { cartItems.forEach(function(item) { item.checked this.checked; }, this); renderCart(); });5.5 localStorage持久化刷新不丟數(shù)據(jù)購(gòu)物車(chē)刷新就清空了對(duì)于作業(yè)來(lái)說(shuō)能用但如果你想讓頁(yè)面看起來(lái)更完整加上localStorage持久化是很加分的。思路是在數(shù)據(jù)變化的每個(gè)操作后面都調(diào)用一個(gè)saveCart()函數(shù)把cartItems存進(jìn)localStorage頁(yè)面加載時(shí)再讀出來(lái)初始化。function saveCart() { localStorage.setItem(fruitCart, JSON.stringify(cartItems)); } function loadCart() { const saved localStorage.getItem(fruitCart); if (saved) { cartItems JSON.parse(saved); } }在changeCount、deleteItem等數(shù)據(jù)變化的函數(shù)內(nèi)部調(diào)用saveCart()然后loadCart()放在頁(yè)面初始化的地方執(zhí)行。這個(gè)方案沒(méi)有引入任何復(fù)雜的依賴(lài)但對(duì)數(shù)據(jù)持久化的表達(dá)能力比純頁(yè)面狀態(tài)高一個(gè)臺(tái)階。6. 登錄頁(yè)的表單校驗(yàn)三個(gè)小細(xì)節(jié)把交互體驗(yàn)做滿(mǎn)第六頁(yè)登錄/注冊(cè)頁(yè)是表單交互的展示窗口。一個(gè)完整的表單校驗(yàn)需要兼顧即時(shí)反饋和提交時(shí)的整體校驗(yàn)。6.1 即時(shí)校驗(yàn)與提交校驗(yàn)的配合我的習(xí)慣是blur事件做單項(xiàng)校驗(yàn)鼠標(biāo)移開(kāi)輸入框立刻出結(jié)果submit事件做整體校驗(yàn)有錯(cuò)就不允許提交。單項(xiàng)校驗(yàn)的結(jié)果通過(guò)一個(gè)span放在輸入框下方展示不通過(guò)時(shí)文字變紅輸入框邊框也變紅。以手機(jī)號(hào)校驗(yàn)為例document.getElementById(phone).addEventListener(blur, function() { validatePhone(); }); function validatePhone() { const phone document.getElementById(phone).value.trim(); const msg document.getElementById(phoneMsg); const pattern /^1[3-9]\d{9}$/; if (!phone) { msg.textContent 手機(jī)號(hào)不能為空; return false; } else if (!pattern.test(phone)) { msg.textContent 請(qǐng)輸入正確的手機(jī)號(hào)碼; return false; } else { msg.textContent ; return true; } }6.2 密碼強(qiáng)度檢測(cè)密碼強(qiáng)度檢測(cè)是一個(gè)很多人想做但不會(huì)拆解的功能。實(shí)現(xiàn)思路是給密碼框綁定input事件每次輸入時(shí)用多條正則分別判斷長(zhǎng)度、小寫(xiě)字母、大寫(xiě)字母、數(shù)字、特殊字符然后根據(jù)命中條件數(shù)量顯示弱/中/強(qiáng)。function checkPasswordStrength(pwd) { let score 0; if (pwd.length 8) score; if (/[a-z]/.test(pwd) /[A-Z]/.test(pwd)) score; if (/\d/.test(pwd)) score; if (/[^a-zA-Z0-9]/.test(pwd)) score; const strengthBar document.getElementById(strengthBar); if (score 1) { strengthBar.textContent 弱; strengthBar.className strength weak; } else if (score 2 || score 3) { strengthBar.textContent 中; strengthBar.className strength medium; } else { strengthBar.textContent 強(qiáng); strengthBar.className strength strong; } }6.3 獲取驗(yàn)證碼的60秒倒計(jì)時(shí)登錄頁(yè)的獲取驗(yàn)證碼按鈕倒計(jì)時(shí)是一個(gè)很典型的定時(shí)器應(yīng)用let codeBtn document.getElementById(getCode); let countdown 60; let timer null; codeBtn.addEventListener(click, function() { if (timer) return; codeBtn.disabled true; codeBtn.textContent countdown s后重新獲取; timer setInterval(function() { countdown--; codeBtn.textContent countdown s后重新獲取; if (countdown 0) { clearInterval(timer); timer null; countdown 60; codeBtn.disabled false; codeBtn.textContent 獲取驗(yàn)證碼; } }, 1000); });這組定時(shí)器邏輯完整覆蓋了啟動(dòng)、運(yùn)行、歸零恢復(fù)幾個(gè)階段是一個(gè)能獨(dú)立跑通的小組件。6.4 密碼可見(jiàn)性切換密碼框右側(cè)的小眼睛切換明文/密文是用type屬性切換實(shí)現(xiàn)的。默認(rèn)是password點(diǎn)擊后變成text再點(diǎn)變回password。真實(shí)的密碼可見(jiàn)切換還可能涉及光標(biāo)位置問(wèn)題但作業(yè)場(chǎng)景里用type切換足夠。7. 扣分雷區(qū)與交作業(yè)前的自檢清單7.1 最常見(jiàn)的問(wèn)題有哪些根據(jù)我的觀察網(wǎng)頁(yè)設(shè)計(jì)作業(yè)的扣分往往不是出在不會(huì)做而是出在沒(méi)檢查。常見(jiàn)問(wèn)題大致有問(wèn)題類(lèi)型具體表現(xiàn)影響程度圖片外鏈用網(wǎng)絡(luò)圖片鏈接斷網(wǎng)就顯示空白嚴(yán)重路徑錯(cuò)誤images/xxx.jpg寫(xiě)成image/xxx.jpg嚴(yán)重內(nèi)聯(lián)樣式泛濫每個(gè)標(biāo)簽都寫(xiě)styleCSS文件形同虛設(shè)較嚴(yán)重JS控制臺(tái)報(bào)錯(cuò)某個(gè)函數(shù)調(diào)用找不到DOM節(jié)點(diǎn)導(dǎo)致后續(xù)代碼不執(zhí)行嚴(yán)重頁(yè)面間缺乏導(dǎo)航6頁(yè)之間沒(méi)有互相跳轉(zhuǎn)的鏈接嚴(yán)重標(biāo)簽嵌套錯(cuò)誤ul直接包div、a標(biāo)簽包a標(biāo)簽中等圖片沒(méi)有alt圖片無(wú)法加載時(shí)顯示破圖中等命名隨意頁(yè)面文件叫aa.html、bb.html中等7.2 提交前15分鐘項(xiàng)目自檢我建議提交前按下面的順序過(guò)一遍全程大概15分鐘打開(kāi)每個(gè)HTML文件按F12打開(kāi)控制臺(tái)確認(rèn)沒(méi)有紅色報(bào)錯(cuò)逐頁(yè)點(diǎn)擊所有導(dǎo)航鏈接確認(rèn)6個(gè)頁(yè)面都能互相訪問(wèn)把所有圖片路徑復(fù)制到瀏覽器地址欄里驗(yàn)證一遍確保圖片不依賴(lài)網(wǎng)絡(luò)縮小瀏覽器到手機(jī)寬度確認(rèn)頁(yè)面沒(méi)有大面積橫向溢出用不同瀏覽器打開(kāi)Chrome和Edge即可確認(rèn)布局沒(méi)有太大差異檢查文件名統(tǒng)一用英文小寫(xiě)加連字符不要有空格和中文確認(rèn)CSS和JS文件是外部文件HTML里只有結(jié)構(gòu)和少量?jī)?nèi)聯(lián)腳本。7.3 如果還有時(shí)間這三點(diǎn)能讓作品再上一個(gè)臺(tái)階第一為頁(yè)面添加一個(gè)簡(jiǎn)單的favicon.ico標(biāo)簽頁(yè)上有一個(gè)小水果圖標(biāo)作品精致度會(huì)明顯提升。第二給商品卡片做一個(gè)售罄的灰化狀態(tài)。把某個(gè)商品標(biāo)記為售罄過(guò)濾或點(diǎn)擊時(shí)給出提示這屬于業(yè)務(wù)邏輯層面的思考很能展示綜合能力。第三當(dāng)頁(yè)面高度不足時(shí)確保頁(yè)腳仍能固定在底部或保持視覺(jué)協(xié)調(diào)。簡(jiǎn)單方案是body用flex布局讓main區(qū)域flex: 1自動(dòng)撐開(kāi)。關(guān)于css優(yōu)惠券圓切這種效果其實(shí)就是一個(gè)用徑向漸變?cè)诳ㄆ锹淅锴谐霭雸A鋸齒的視覺(jué)技巧。如果促銷(xiāo)卡片上想做出優(yōu)惠券撕邊的感覺(jué)可以試試.coupon { background: radial-gradient(circle at 10px 10px, transparent 10px, #fff 11px); border-radius: 8px; padding: 20px; }這是一個(gè)不加分但很有意思的小技巧能做出來(lái)會(huì)讓頁(yè)面很有設(shè)計(jì)感。最后聊幾句實(shí)操感受做完一個(gè)六頁(yè)的完整網(wǎng)站我最深的體會(huì)是網(wǎng)頁(yè)設(shè)計(jì)期末作業(yè)真正考察的并不是你會(huì)用多少新特性而是你有沒(méi)有把一個(gè)東西從頭到尾完整做出來(lái)的能力。很多同學(xué)容易在開(kāi)頭糾結(jié)——用什么布局方式、要不要學(xué)一下動(dòng)畫(huà)庫(kù)、要不要引入Bootstrap——其實(shí)這些都是次要的。先把六個(gè)頁(yè)面全部做出來(lái)把每個(gè)頁(yè)面里最重要的一個(gè)核心交互跑通再去談優(yōu)化和加分這個(gè)順序不能反。我是建議第一次做這類(lèi)作業(yè)時(shí)全程手寫(xiě)代碼不要復(fù)制模板。模板確實(shí)快但當(dāng)你被布局卡住、報(bào)錯(cuò)報(bào)得一頭霧水的時(shí)候那個(gè)排查問(wèn)題的過(guò)程才是這門(mén)課真正留給你的東西。把CSS布局想成一個(gè)貨架擺放問(wèn)題把JavaScript想成一個(gè)個(gè)事件響應(yīng)和狀態(tài)變化你會(huì)慢慢發(fā)現(xiàn)網(wǎng)頁(yè)設(shè)計(jì)這件事跟搭積木很像——有了清晰的規(guī)劃和統(tǒng)一的規(guī)范后面每一塊都能?chē)?yán)絲合縫地拼上去。水果超市這個(gè)題目本身不難難的是愿不愿意靜下心把細(xì)節(jié)做扎實(shí)。希望這篇拆解能幫你在交作業(yè)前少走幾段彎路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月欧美色色五月| 天天插天天插天天插天天插| 亚洲激情| 91久女| 丁香六月婷婷综合| 国色天香伊人狠狠色| 99狠狠操一| 99精品偷自拍| 激情丁香五月| 久久久中文| 久久久无码精品成人A片小说 | www.婷婷.com| 日韩有码久久| 日韩AV一区二区三区| 99热在线观看| 精品一二三区久久AAA片| 热久精品| 五月天色五月| 桃色五月天| 精品人妻久久久| 久99视频在线观看| 伊人久久大香线蕉av最新| 99久99久| 97sese婷婷| 69精品人人人人| 五月婷色色| 亚洲另类视频| 色五月五月婷婷| 九九色热视频| 色久天| 亚洲mm色| 丁香激激情网| 色婷五月天激情| 色五月视频无码播放| 五月婷五月婷伊人伊人五月婷| 激情综合色婷婷啪啪六月天| 婷婷涩涩五月天| 成人国产网站| 99热1| 久久综合色五月| 五月天大香焦| 99人人精品| 久热AⅤ| 亚洲视频在线网| 99干日日干| 色五月综合| 久草热在线视频| 色婷婷欧美| 亚洲av成人在线| 国产精品爽爽久久久久久| 久久99jiu9| 免费人人操| 伊人九热| 婷婷丁香黄色| 久久久99视频| 99re在线观看视频| 99热国产这里只有精品| 99久精品视频| 亚洲精品视频在线播放| 7777久久亚洲中文字幕| 婷婷区日本| 99 r热| 欧美日韩999| 久久综合中文| 噜噜综合网| 亚洲亚洲激情| 国产精品香蕉| 最新久久网址| 无码人妻丰满熟妇奶水区码| av超碰在线| 99久久色| 人妻射精AV| 欧洲亚洲免费视频区| 狠狠色丁香婷婷基地| 四色 爱 婷婷 精品 亚洲 五月天| 激情伍月 欧美| 天天操夜夜玩!| 婷婷五亚洲| 亚洲精品大片| 久久a热| 99综合网| 超级碰碰视频无码| a色色色色色| 激情桃色网| 色婷婷深爱五月| 五月天激情社区| 夜夜躁爽日日| 国产精品成人AV在线观看春天| 在线播放人妻| 狠狠色丁香| 丁香五月老师| 婷婷伊人中文字幕| 亚洲无码性爱| 六月丁香五月激情亚洲AV| 五月丁香六月婷婷综合伊人| 五月色网| 欧美婷婷色五月网| 婷久看人爽| 天天插天天插天天插天天插| 99免费在线视频| 在线成人国产| 五月色无码| 五月天亚洲色| 性按摩玩人妻HD中文字幕| 色婷婷丁香AV综合| AV美美午夜| 开心激情综合| 色无婷婷| eeuus五月婷| 99re最新地址| 99久久国产宗和精品1上映| 自拍视频99| 99热综合在线| 99色热视频| 欧美成人在线观看| 天天日天天色| 97人人操人人| 啪色综合| 99丝袜精品视频网站| 婷婷 久综合| 亚洲色情在线| 性欧美大战久久久久久久83| 亚洲精品网站色视频| 99re最新地址| 久久五月婷综合| 色情五月丁香| 天天操婷婷| 超碰日韩人妻在线| 亚洲第一色网站| 五月婷婷综合在线| 亚洲天堂AV综合网| 操你av| 在线播放成人网站| 久久色五月| 六月丁香影院| 五月天啪啪网| 乱色色色| 大大香蕉综合在线| 五月香六月婷| 亚洲成AV人片在线观看| 天天檫天天爽| 琪琪色网在线| 五月丁香成人版| 99热久| 国产精品色婷婷久久久精品| 五月天婷婷基地综合网| 九九热婷婷| 99碰碰。| 俺也去在线视频 | 日韩熟女啪啪视频| 天天日婷婷| 日本三级日本三级99| 久久久性爱网| 日本色色色| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 婷婷视频在线碰| 成人必爱视| 人人摸人人摸| 丁香婷婷六月激情文学| 五月激情在线| 婷婷五月免费观看| 伊人高清无码| 日本五月天一页| 伊人婷婷99热精品| 久久性爱视频网站| 五月天婷婷激情在线色图| 五月天综合图片| 国产,欧美,学生妹,视频| 九九这里只这里只有精品| 色综合色色| 婷婷情色五月天| 久久天天| 婷婷五月综合在线| 嫩BBB槡BBBB搡BBBB| 国产午夜精品AV一区二区麻豆| 婷婷色激情网| 熟妇人妻中文字幕无码老熟妇| 久久五月网| 九九热免费视频| 无码一区二区日韩| 婷五月天影院| 97色色视频| 人人爽欧美婷婷久久久五月丁香| 超碰在线观看99| 天天综合网91| 五月婷婷综合在线| 毛片色五月| 99视频久久久| 久久九色| 日韩无码色色| 在线只有精品| 婷婷射婷婷舔| 色婷婷www| 久久六月综合| 噜噜噜噜噜色| 五月丁香婷婷综合网| 99精品亚洲| 这里只有在线精品| 99热99| 激情久久久久久久久久久| 色综合婷婷| 久久久中文| 小视频一区 | www.狠狠操.com| 婷婷五月深爱五月| 久久狠狠干| 免费黄色片子| 色婷婷成人| 婷婷97碰碰| 99热这里只有精品55| 婷婷五月天影视| 色444综合网| 日韩成人AV在线播放 | 六月丁香网| 激情五月综合网| 嫩草AV久久伊人妇女超级A| 一级A片天天操夜夜操| 日韩无码性爱| 91无码色色| www.激情五月| 九九这里精品| AA丁香综合激情| 亚洲电影在线观看| 天天摸天天透天天舔| 综合网激情| 五月天中文字幕在线婷婷| 丁香五月婷婷综合激情啪啪啪| 久草a片| 四色99久久| 欧美日本一区二区三区| 五月天色婷婷激情综合| 狠爱婷色| 激情5月婷婷| 色婷婷电影网| 中文字幕性爱丰满| 久久婷婷激情五月天一区二区| W色综合| 丁香五月中文字幕| 日韩1区2区| 亭亭丁香aV| 婷婷五月天天激情| 激情内射人妻1区2区3区| 色色色综合| 五月天色婷婷av| 97在线/亚洲| 亚韩精品视频1区| 人人摸人人搞| 婷婷五月综合社区| 婷婷99狠狠| 日本色婷婷久久99精品91| 色情丁香五月婷婷精品| www.99久久久久99| 久热爱大香蕉在线蜜臀悦色 | 色五月婷婷777| 先锋资源91| 天天插天天| 天天操夜夜爽天天操| 五月情涩综合婷婷| 七七久久婷婷| 久777| 涩涩涩,com| 综合色吧| 伊人9草在线观看| se色婷婷视频| 一二线视频 另类| 婷香五月激情视频| 伊人婷婷五月天| 久久免费精彩视频| 色婷久久| 天天综合网在线| 五月婷婷婷婷婷| 日日夜夜青青草| 丁香婷婷激情综合五月激情| 一级片sese片.COM| 激情综合网丁香| 丁香五月婷婷Av| 久久人视频| 丁香五月天堂婷婷| 五月丁香久久激情综合| 亚洲第二AV| 天堂二区| 欧美六月婷婷| 五月婷婷成人| 色婷婷久久综合| 日本久久爽| 国产AV不卡福利| 秋霞丝袜啪啪啪| 亚洲 欧洲 国产 伦综合| 夜色爱爱亚洲| 日韩综合久| 97久久久免费福利网址| 色五月婷婷操逼| 9热在线观看| 欧美69色| 9人人操人人看| 精品99在线| 九九色院| 超碰精品在线| 色偷偷AV亚洲男人的天堂| 综合激情五月丁香| 久久综合婷婷激情| 久久精品五月| 丁香五月区| 99热主页日本| 色五月婷婷五月丁香五月激情五月视频| 久久丁香五月综合六月激情红杏视频| 六月婷婷狠狠| www.丁香五月| 五月丁香啪综合| 五月丁香999| 99爱视频在线观看这里只有精品| 蜜桃人妻无码AV天堂三区| 嫩草AV久久伊人妇女超级A| 欧美顶级少妇做爰HD| 成人做爰黄A片免费看直播室男男| AV成人在线网站| 久久婷婷艹| 日韩大片艹艹| 色5在线| 色婷婷精品小视频| 99精品在这里| 婷婷五月天网| 99久久97| 欧洲亚洲免费视频9| 色色色色色热| 狠狠色婷婷六月激情网| 超碰日日操| 噜噜视频| cao视频,现在观看| 久久五月综合| 久久er99| 99国产在线| 五月天激情亚洲| 中文久久婷婷| 欧美成人精品A片免费一区99| 97色精品视频| 欧美日韩99| 色亚洲色宗合| 日本91在线| 天天射影院| 丁香激情五月少妇| 思思99精品视频在线观看| 五月丁香六月婷婷综合网缴情| 看片视频在线免费日产在线看| 亚洲激情综合网| 这里只有精品视频在线| 欧美三级黄色片久久| 国产日批视频免费播放| 五月婷婷丁香俺日污视频| 开心五月婷婷激情| 91人人爽人人操| 久久er视频6| 成人小说色图婷婷五月| 97欧美在线| 丁香婷婷五月综合| 99热综合| 国产一区二区三区影院| 美女黄频aⅴ视频| 婷婷六月插屄激情| AV中文在线| 丁香五月乱中文字幕| 狠狠综合| 丁香六月婷婷综合啪啪| 噜噜噜色噜噜| 涩五月婷婷| 五月婷天天搞视频| AA片在线观看视频在线播放| 婷婷亚洲日本| 日本色99| 99久久.www| 五月天婷婷在线观看精品男人| 五月婷婷开心网| 99在线精品免费视频| 亚洲婷婷91丁香| 香蕉AV777XXX色综合一区| 天天日天天操心| 日韩AV中文字幕在线| 日本本土色网第一区| 精品人妻在线| 免费操超碰| 亚洲婷婷丁香五月亚洲| 五月丁香综合| 掩去也综合五月视频| 永久精品| se婷97| 丁香六月视频| 婷婷99狠狠躁天天躁| 日本色图综合| 欧美日比视频| 五月丁香激情综合啪啪| 久久久久久人妻| 激情综合色婷婷啪啪五月天| 精品色色网| 婷婷中文字幕| 狠狠人人| 久久人妻熟女一区二区| 99热这里只有精品69| 五月天激情影院| 熟女激情网| 丁香五月影院| 色婷久九| 五月丁香综合啪啪| 婷婷97| 色色五月婷| 97人人爱人人操| 丁香六月婷婷综合啪啪| 色开心五月婷婷丁香HD| 亚洲第一第二网站| 91啪啪啪啪| 天天插,天天射| 免费日本aⅴ中文字幕 | 乱精品一区字幕二区| 五月丁香六月婷婷啪啪综合| 天天色播| 五月丁香在线国产| 五月婷婷很很色| 天天艹天天色| 1024AV视频| 巴基斯坦粉嫩无码视频| 亚洲在线播放| 91狠狠色丁香| 久久激情五月| 最近免费中文字幕大全高清大全1| 欧美天天五月丁香免费观看| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 情婷婷五月天| 欧美性爱日韩性爱| 色5月婷婷| 色婷婷五月天激情| 国产精品久久久久久久久久免费| 激情婷婷综合五月少妇| 成人短视频免费观看| 99精品视频免费观看| 玖玖激情五月天| 97人妻碰碰碰久久香蕉| 人人爽在线视频综合网| 蜜臀久久99精品久久久久久酒店| 激情五月婷婷六月丁香| 丁香五月婷婷啪啪啪| 激情五月激情综合网| 五月婷成人网| 色情五月天导航| 97在线碰| 精品无码久久久久久久久| 五月婷婷综合色拍| 激情九九六月激情免费视频| 激情文学久久| 欧美噜一噜| 欧美123区免| 青青草原亚洲天堂| 激情亚洲五月| 99re视频在线| 爱射综合| 五月开心激情| 开心五月天私房婷婷| 国产麻豆视频| 超碰色综合| 九九免费视频在线| 六月激情丁香一道本7777| 日本啪啪天堂| 99精品爱| 九月激情网| 无码一区精品一区视频| 99热天堂| 狠狠狠五月婷婷六月丁香| 人人操人人爽成人AV| 婷婷五月色播| 五月婷婷在线免费观看 | 伊人激情影院| 亚洲五月丁| 色色色色色五月| 99热地址| 色婷婷色99国产综合精品| 激情五月婷婷丁香六月| 青青日韩| 精品欧美性爱超级爽| 97超碰在线免费观看| 成人婷婷桔色| 99热人人| www.99久久久久99| 色综啪啪网| 婷婷香蕉| 婷婷六月综合基地| 日韩人妻白浆视频系列| 色婷婷五月综合| 天天久| 九热在线这里有精品6| 无码九九九九| 久久婷婷超碰| 欧美搡BBBBB摔BBBBB| 另类图片激情五月| 五月婷综合| 婷婷五月天视频小说| 婷婷99中文字幕| 97日本操| 亚洲亚洲人成综合网络| 五月天婷婷丁香| 六月色播| 婷婷六月五月天综合| 噜一噜免费视频| 一操久久| 日本人妻操| 婷婷色色综合| 成人无码髙潮喷水A片| 成人网站在线观看视频| 九九热最新| 久久思思热视频| 亚洲成人色五月婷婷综合| 激情AV在线| 丁香花五月天社区| 婷久久久| 色色色丁香| 久久综合久色欧美综合狠狠| 国产精产国品一二三在观看| 99操碰| 激情综合五月天| 久久人人妻| 激情五月综合网最新| 成人网站免费sxj| 99色婷婷| 性爱综合网| 五月丁香无码| 九九久久五月天| 3p久久| 色婷成人狠干| 欧美婷婷丁香五月| 9久久久| 5月婷婷五月天| 狠狠色综合网站| 26uuu欧美亚洲日韩| 天天人人天天爽| 天天弄天天爽| 五月婷高清视频| 色七色九九| 婷婷五月天最新综合你懂的| 六月丁香激情综合网| 99久久99九九99九九九| 99热九九这里只有精品| 丁香婷婷综合精品六月初| 日日骑夜夜撸| 日韩成人五月天| 色色色综合视频| 天天干天天日天天插| 久久五月网| 婷婷五月天视频小说| 五月婷婷色丁香| 五月综合亚洲| 丁香五月综合在线观看| 色噜噜狠狠色综无码久久合欧美| 久热91精品| 久久久999精品| 九九99精品| 婷婷五月六月丁香| 国产精品久久久久久亚洲毛片| 无遮羞AV| 丁香香蕉婷婷| 久久婷婷色| 可以免费看av网站| 婷婷五月综合视频| 五月丁香综合中文| 思思精品视频| 东京热五月婷婷| 色综合久久8| 亚洲午夜电影| 琪琪理论片| 久久成人精品视频| 婷婷在线播放| 97婷婷色| 婷婷五月成人社区| 婷婷黄色| 色婷五月丁香久亚洲| 99热这里有精力| 91婷婷搞| 四川BBB搡BBB爽爽视频| 亚洲一区二区无遮挡A片| 开心五月六月婷婷| 激情五月婷婷中文字幕| 五月婷婷日| 丁香六月天| 五月停停99| 色色免费网站| 人人草人人爱手机视频看看| PORNY九色9l自拍视频成人| 亚洲另类在线观看| 婷婷欧美激情| 亚洲婷婷丁香五月亚洲| 这里有精品| 国产精自产拍久久久久久蜜| 99热插| 99久久黄色顶级视频| 九九九九这里只有精品| 亚洲中文字幕网| 五月婷婷丁香综合,亚洲天堂| 五月丁香香蕉| 激情综合激情五月一起草| 99碰碰| www.婷婷久久五月天| 色五月婷婷综合| 婷婷伊人久久综合| 96丁香六月婷婷蜜桃综合久久| 九九综合网| 成人天天爽| 综合噜噜| 色狠狠色综合久久久绯色aⅴ影视| 日韩在线观看亚洲| 亚洲噜色| 色婷婷电影网| 欧美精品啪啪| 天天日夜夜帕| 婷婷成人基地| 六月丁香婷婷视频综合在线观看| 色综合天天综合成人网| 激情五月婷婷综合网| 色色综合网站| 五月婷婷六月天| 超碰在线日夜| 色婷婷五月天激情久久| 久9热| 午夜丁香 婷婷| 操逼123网| 久久婷婷五月天| 中文字幕黄色电影网址| av性爱在线| 欧美成人精品A片免费一区99| 黄色精品五月婷婷| 蜘蛛女侠2003满天星免费观看| 校花娇喘呻吟校长陈若雪视频| 国产熟女一区二区三区五月婷| 五月天婷婷丁香社区| 第九色区av天堂| 色五月婷婷久久| 五月激情综合网| 超碰操日| 综合色综合| 高清一区二区三区日本久| 婷婷亚洲天堂| 久草A片| 五月天狠狠色| 激情都市丁香婷婷| 天天色综| 丁香五月天社区| 色色综合五月| 操操操AV| 亚洲激情Av| 丁香五月婷婷色| 超碰亚洲欧美| 黄页大全十八禁| 亚洲亚洲人成综合网络| 五月丁香拍拍激情综合| 国产做爰视频免费播放| 丁香色啪综合| 搡BBBB搡BBB搡五十| 79精品在线视频| 婷婷六月色| www,8050,午夜三级| 日本99视频| 五月大香蕉| 日韩视频99| 九九热在线观看6| 色色性爱视频| 激情五婷精品网在线观看网址| 天天色视频| 久久九九99| 香蕉综合网| 五月丁香激情婷婷综合字幕| 亚洲亚洲人成综合网络| 五月丁香花激情综合网| 97操在线资源| 久久丝袜婷婷| 五月天啪啪| 色999五月色| 国产日批视频| 大香蕉婷婷婷| 亚洲人人操| www.婷婷亚洲基地| www.99视频| 九九亚洲小视频| 伊人激情综合| 九九视屏| 99在线精品视频观看免费下载| 免费无码毛片一区二区A片| 婷婷天天综合| 绿色小导航AV| 91一起操| 六月五月久久丁香| 色97啪啪| 丁香五月激情综合| 婷婷玉月丁香五月在线视频| 久久婷婷五月综合色天| 丁香五月综合婷婷| 色五月开心五月激情五月| 狠狠久久婷五月综合色| 噜噜狠狠色综合久| 丁香婷婷六月婷婷六月婷婷六月婷婷| 色色色五月天婷婷| 色婷婷五月天成人网| 天天五月香欧美| 曰韩五月丁香色婷婷无码| 五月婷婷在线视频观看| 色色精品色| 久久久全国免费视频| AV成人在线播放| 激情涩涩网| www网站在线观看| 丁香九月激情| 亚洲激情综合五月婷婷啪啪| 婷婷射综合| 操操操操操电影网| 婷婷激情五月天小说| 婷婷五月色播| 婷婷激情视频欧美视频自拍视频欧美剧| 玖玖色综合网| 日本婷婷色| 91欧美日韩综合| 日日操,夜夜撸| 91精品国产91久久久久青草| 色婷婷丁香五月| 狠狠草狠狠草| 思思热这里只有精品视频666| 欧美婷婷色| 五月婷婷色综图片| 五月天婷婷高清无码| 日本三级韩三级99久久| 99久99久| 亚洲激情在线| 色五月婷婷操逼| 久久婷婷五月天激情| 爱久综合| 丁香五夜激情四射夜夜夜| 超碰免费人人| 无码啪啪| 深爱综合网| 99热这里只有精品23| 激情黄色小说色五月| 9色小视频在线观看| 91精品久久久久久77777| 六九色综合婷婷五月天| 亚洲精品性色| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 大香蕉欧美在线| 色www久视频| 五月天久久婷婷| 激情五月综合| 激情性五月天免费小说视频| 热久久思思热思思| 99久久9| 久久婷婷五月天激情| 五月婷婷 婷婷五月 一区二区 久久久| 玖玖婷婷五月天| 五月丁香婷婷色色色| 99热精品中文字幕| 亭亭社区五月天| 亚洲综合新99视频| 婷婷丁香五月天综合AV| 婷婷情色五月天| 丁香五月最新网址| 色丁香五月婷婷综合久久| 超碰精品手机在线| 丁香六月婷月91婷月| 欧美三级欧美一级| 啪啪黄页网| 超碰国产在线观看| 五月丁香婷婷激情四射迷人| 婷婷五月另类网站| 色欲AVV| 日本二级毛片二级毛片| 亚洲亚洲人成综合网络| 丁香网站| 亚洲妇女熟BBW| 97婷婷色| 99在线免费视频| 99在线免费视频| 五月丁香综合激情| 99九九精品| 99久视频| 性一交一乱一交A片久| 色色五月天激情| 婷婷色六月| 婷婷久久五月天| 午夜色婷婷| 婷婷六月色| 无码免费人妻A片AAA毛片西瓜| 色色色热| 香蕉人妻AV久久久久天天| 国产真实乱了老女人视频 | 日韩黄色电影| 大香蕉九操| 久久九九综合| 婷婷五月综合网| 99色在线视频| 国产无套精品一区二区| 超碰日韩成人| 九九久久久综合| 中文字幕+中文在线| 欧美成人日韩| 91色五月| 日日操夜夜操狠狠操| 午夜 外网 精品 在线| xxx综合在线| 五月丁香狠狠| 日本狠狠色| 99热精品在线播放| 噜噜噜狠狠色综合| 日韩ww| 97香蕉人人在线观看| 久久性刺激| 五月丁香啪啪| 天天干天天操天天干天天操天天干天天操| 五月天激情子轮| 日本色狠狠| 五月婷啪| 成人国产欧美大片一区| 婷婷伊人綜合中文| 久久9视频欧美| 99热20| 极品五月天| 美国十月色婷婷在线观看| 天天天天天日| 婷婷伊人久久无码色五月| 欧美操我| 婷婷五月成人色综合| 色狠狠色噜噜噜a天堂一区| 婷婷五月天福利| 色婷婷五月天在线观看| 国内熟女黄色系列| 久久九九玖玖| 久久婷婷六月综合资源| 日狠狠| 婷婷五月天久久| 午夜成人av在线| 丁香六月激情| 色丁香婷婷美女视频网站| 激情开心五月天| 婷婷五月成人| 91丨九色丨老农村| 色七色九九| 这里只有精品在线视频在线观看| www激情| 色色图五月天| 激情五月婷黄版| 79精品视频| 99∨VTV| 婷五月天| 午夜理论片最新午夜理论剧| 天天摸天天透天天舔| 91狠狠综合久久| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 69五月天视频| 久热亚洲| 91色性感五月婷婷丁香| 九月丁香| 色色色色综合| 国产露脸150部国语对白| 久久精品系列| 色情免费视频播放| 婷婷激情社区| 97在线干| 婷婷激情五月天亚洲综合| 九九热视频99| 精品国产a| 亚洲激情无码久久| yellow视频在线观看91| 情色五月天 网站| 五月香蕉综合| 婷婷色九月| 涩丁香91| 五月天婷婷在线观看精品男人| 婷婷射图| 超碰在线94| 天天做综合网色综合| www.minyis.com【JT】实力收量可预付QQ2101460746 | 国产六月婷婷| 色香欲综合| av在线免费网站| 97丁香五月| 欧洲电影在线观看免费版英语版| 99操| 天天综合网91| 久久一级片| 婷婷综合色播网| 97久久人人人干| 97五月天婷婷午夜| 99热伊人| 免费国产视频| 九九无码| 91 九色 入口| 天天高潮夜夜爽| 九九热123| 久久狠色噜噜狠狠狠狠97| 丁香六月情| 九九99免费理论| A1片久久久| 伊人五月天97| 少妇激情五月天| 婷婷丁香五月视频| 激情五月天色婷婷综合| 久久久国产精品黄毛片| 天天激情视频| 国产激情综合五月久久| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 少妇做爰免费视看片| 激情综合青草| 啪啪啪大香蕉| 九九免费精品在线视频| 日本高清久久| 五月六月丁香婷婷在线观看| 五月综合色| 色久在| 色激情五月天| 日 日干 日日做| 国产日韩欧美| 777精品成人a v久久| 欧美成人一区二区三区在线视频 | 伊人综合网站| 激情五月com| 久久久全国免费视频| 婷婷五月天亚洲综合| 九九综合网| 五月丁香六月婷婷国产视频| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 拍真实国产伦偷精品| 亚洲性爱干干| 久久性爱99国产| 色色丁香激情五月| txt五月激情四射网综合俺也来了| 五月 婷婷 成人| 日本三级色| WWW,五月| 九九精品在线视频观看| 久99| 9999热这里只有精品| 色婷婷AV久久| 日本WWW九九九| 丁香色五月 97干| 九九黄色网| 毛片新网地| 人妻六月天| 久久99久久99精品免观看粉嫩| 国产91视频| 五月综合色| 伊人深爱综合| 九九色区| 五月天激情久久| 夜夜夜夜操| 激情丁香五月| 婷婷五月天堂| 丁香狠狠| 色婷婷色综合| 99在线热| wwccc久久久| 九九热91| 丁香色五月天| 99久久er| 欧美日韩国产一区| 天天爽天天| 精品久久66| 久久99网| 激情av| 99玖玖视频| 第四色婷婷五月| 最新久久99视频网站| 久久五月丁香婷婷| 日韩欧美四五区| 青青日韩| 97干在线| 亚洲五月天婷婷| 六月亚洲婷婷6月中文字幕| 婷婷97色| 9|无码久久久久久| 五月激情婷婷色| 1024成人在线观看| 公的粗大挺进了我的密道| 天天日夜夜曹| 色色99色色| 欧美激情伊人| 99re6在线视频精品免费| 天天草天天摸| VA五月激情在线| 91趴趴| 五月天丁香| 99久久网站| 五月情婷婷五月| 97se视频在线| 91夫妻视频| 九九热欧美| 日本激情综合| 五月天婷婷三级黄| 色色丁香五月| 久久久国产精品黄毛片| 在线另类视频| 开心五月激情婷婷| 婷婷 久综合| 激情五月色综合网| 婷婷97色| 五月天色五月| 丁香激情五月| 色狠狠图片| 亚洲精品乱码久久久久久按摩观| 五月天激情图片网| 老美AA片| 天天色天天| 色色色色色色色色色色色色色97| 久久婷婷操| 综合激情伊人影视在线| 久久久五月天网站| 丁香六月天婷婷色| 91超级碰碰碰| 丁香五月天网站| 亚洲va在线∨a天堂va欧美va| 热热久久精品视频| 五月久久婷婷丁香| 欧美碰碰| 国产亚洲AV人片在线| 可以看的av| 爱射综合| 天堂久久婷婷| 九九在线这里只有精品视频| 狠狠狠人妻| 五月婷婷干干干| 9l视频自拍九色9l视频在线观看| 182tv992tv人之初午夜免费观看| 欧美婷婷| 亚洲色婷婷| 五月婷婷久久综合| 国产综合婷婷| 天天澡天天狠天天天做| www.五月天社区| 丁香婷五月| 99色啊| 色五月婷婷五月丁香五月激情五月视频 | 亚洲激情淫网| 天天激情5月天亚洲| 婷婷色九月| 欧美色图天堂网色| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 婷婷网五月天| 色色色色色色网站| 婷婷五月天在线综合| 婷婷五月丁香成人| 第六色在线| 亚洲 在线 性爱 | 99极品视频| 激情丁香久久| 激情影院内射| 97丁香花五月天激情小说| 九九热这里有精品视频| 在线观看五月婷婷网| 99久久婷婷国产综合精品青桔| 99热播放| 丁香五月婷婷基地| 久久大香蕉| 五月天无码| 色婷婷六月性| 色婷婷在线视频久| 久久五月丁香六月婷| 色欲日日躁| 激情五月婷婷综合网| 色婷婷影音| 婷婷五月图片小说视频| 色婷婷社区| 精品人妻久久久久久| 五月丁香亭亭| 久久资源网五月婷| 91丨九色丨大屁股| 九九视频在线| 色五月婷婷五月天| 国产黄色在线观看| 九月婷婷综合色干| 四射综合网| 六月婷婷综合激情| 97人人射| Se.婷婷五月天| 俺五月| 婷婷五月精品中文字幕| 五月婷婷片| 五月婷婷色播| 激情色色色| 国产精品国产成人国产三级| 秋霞AV吧| 在线看黄色| Av大香蕉| 天天爱天天做综合| 热热久久99| 婷婷五月电影| 91操碰| 婷婷干| 99超级碰碰| 五月天无码| 五月婷在线色视频| 色五月婷婷五月| 依人大香蕉| 男同91 | 丁香婷婷人妻| 九九久久综合网站| 欧美狠狠色| 天天插天天爽| 久久综合五月天激情小说网站 | 男女99免费视频| 五月天自拍网| 五月天播播| 色色a| 色五月美女| 丁香婷婷六月天| 久久婷婷六月综合资源| 久久久久久人妻久久久久久久久久人妻久久久 | 六月丁香深深爱| 亚洲VA口| 一级黄色影片| 日韩 mm 不卡| 激情婷婷丁香五月天小说| 成人性爱精品视频| 国产成人av在线| 婷婷五月激情欧美大胆视频| 免费播放片大片| 亚洲第一色网站| 色色日本| 五月天开心网| 五月婷婷婷| 丁香五月大片| 精品99在线| 99视频这里有精品| 国产综合视频婷婷| 婷婷激情丁五月| 青青草轻轻操| av中文网| 色九网| 婷婷 月 丁香| 99无码视频| 9视频1在线| 色五月丁香激情| 51XX午夜影福利| 色综合99无码 | 91超碰人人操| 丁香六月成人| 亚洲精品色| 香蕉久久国产av一区二区| 五月丁香婷婷婷婷综合网| 99综合一区| 婷婷性爱五月天丁香网| 天天搞夜夜叫| 国产午夜精品一区二区| 亚洲中文字幕AV在线| 97香蕉碰碰人妻国产欧美| 五月色丁香视频精品| 99色综合| 日本熟妇精品99| 嫩草乱码一区三区四区| 这里只有精品久久| 丁香五月手机在线| 五月婷婷碰碰| 99久久久国产大片| 超碰资源在线| 精品自拍99| 色。 婷婷婷| 久久婷五月天| 玖玖爱导航| 99国产性感视频| 99热这里有精品| 97人妻碰碰碰久| 99精品无码| 久热精彩视频98| 六月激情婷婷| 色月九九| 丁香成人五月天| 国模狼狼| 色视五月天婷婷| 婷婷视频网| 九九综合九九| 97热这里精品在线视频| 黄色毛片精品| 久久久久人妻中文| 亚洲精品国产熟女久久久| 五月花婷婷在线精品视频| 婷婷综合五月天| 久久天堂| 综合婷婷五月天| 婷婷综合偷拍| 色综合激情| 国产欧美大香蕉一区| 天天情色五月天| 久久9热好| 丁香六月色情| 免费看欧美成人A片无码| 五月色情婷婷| 日韩啊啊啊| 99综合| 日本久久天堂| 伊人久久大香网| 丁香五月网址| 激情久久久久久| 久久婷婷综| 色婷婷久久综合| 亚洲综合久| 大香蕉久| 怡红院视频| 五月丁香六月综合情在线观看| 色色色五月婷婷| 欧美精品99久久久| 综合激情视频| 丁香五月六月久久综合| 亚洲中文字幕av| 天堂爱爱| 欧洲电影在线观看免费版英语版| 激情婷婷丁香五月| 97超碰免费超级在线观看| 能看的AV网站| 亚洲无码影音| 色情五月停停丁香| 日韩大片艹艹| 六月久久婷婷| 亚洲色久| 五月天激情综合网| 色五月婷婷丁香婷婷| 91久女| 久久久这里有精品| 婷婷激情四射网| 国产成人综合网| 亚洲色色图片| 婷婷丁香综合网| 六月色播| 极品色丁香| 色99视频| 天天综合天天玩夜夜玩天天玩夜夜玩 | 久久激情五月婷婷| 亚洲视频在线观看99| 中文字幕 中文字幕明步| 五月丁香六月婷婷久久久综合| 色色97丁香婷婷五月天| 丁香五月激情五月| 九九碰九九爱97超碰| 欧美色色色| 五月婷婷开心亚州在线| 色婷亚洲五月丁香| 免费黄色片子| 五月丁香婷婷综合激情基地| 久久38视频| 欧美三级欧美一级| 97色色色| 日本色色图| 久久精品一区二区三区四区| 五区毛片七区毛片| 99热日| 啪啪综合网| 久色欧美| 黄网在线播放| 不卡在线超碰| 五月天婷婷AV| 伊人青草成人| 免费观看日韩成人av| 久久99久久99精品免观看粉嫩| www.激情五月天.com| 香蕉色色网| 99热在这里只有精品| 久久精品66| 91精品在线看| AV在线不卡播放| 97性视频| 99热这里只有精品69| 亚洲婷婷五月| 噼里啪啦完整版中文在线观看| 欧洲激情精品婷婷| 天天爽爽日日做做| 色吊丝99| 五月天偷拍| 天天日天天草| 天天婷婷天天|