99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
超碰国产在线观看| 婷婷五月天六点丁香五月| 色色色地址| 中文资源在线a | 久久婷婷综合五月趴| 日本乱论99| 婷婷五月天网| 停婷丁五月在线| 丁香六月色婷婷| 国产伦亲子伦亲子视频观看| 激情综合网色播五月| 丁香五月欧美激情| 五月婷婷,狠狠操| 五月天色综合| 色婷婷狠狠| 色色网站免费观看| 色欲婷婷夜夜| 色色吧综合| 9国产在线视频| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 99性爱| 一本综合丁香日日狠狠色| 在线视频激情网站| 亚洲国产精品VA在线看黑人| 狠狠爱综合网| 丁香六月婷婷开心| 超碰在线免费9| 日本九九热| 久久久久激情| 六月婷婷综合久久| 午夜婷婷久久 | 丁香六月婷婷综合| 热99玖玖99玖玖99九九| 五月丁香影院| 亚洲精品色| 婷婷成人AV| 任你爽视频| 996黄色片| 五月婷婷综合激情| www.激情| 超碰在线网站9| 日韩aaaaa| 激情久久肏屄视频| 久久综合九九| 99热8| 五月婷婷成人| 91肏| 婷婷五月色播放| 五月激情综合婷婷| 激情五月深爱五月| 综合网激情五月天| 丁香婷停五月激情综合深爱| 四色女婷婷| 亚洲 综合中文| 男女免费视频999| 伊人久热91网| 非洲一级AV| 久久综合55| 欧美性猛交99久久久久99按摩| 色五月激情五月开心五月| 久操激情| 五月婷综合| 偷偷操99| 玖玖婷婷五月天| 99热免费在线| 少妇搡BBBB搡BBB搡毛茸茸| 六月丁香激情网| 丁香大香蕉| 五月丁香五月婷婷在线观看| 91凹凸在线| 99热97| 免费在线观看欧美激情xx小视频| 色色色在线观看| 网站免费一站二站| 99视频在线精品| 天天插综合| 超碰九色| 亚洲精品V天堂中文字幕| 婷婷97狠狠成人网站| 人妻久久久久久| 色综合久久久久| 六月丁香啪啪啪| 亚洲中文字幕在线观看| 9l视频自拍九色9l黑人| 丁香五月激情综合| 天天色综合网1| 久色五月| 综合色图区| www婷婷| 99久久久久| 99操| 激情四射婷婷色色色| 色婷婷超碰| 97热超碰| 国产夫妻操逼内射视频| 天天综合在线网| 91青娱乐青青草| 91热99| 久久久网站| 久久一级AV| www.九九婷婷| 五月丁香成人日| 丁香婷婷啪啪啪| 久久五月综合| 亚洲人人操| 久久3级片| 丁香五月性爱爱五月| 亚洲在线操| 丁香五月图片| 亚洲va欧美va天堂v国产综合| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 9色免费网| 青青草a在线| 天天婷婷| 色六月 婷婷| 色播婷婷大香蕉| 五月色丁香国产在线视频| 婷婷五月六月| 婷婷丁香综合网| 国产91九色| 欧美激情 日韩无码 婷婷 五月天| 色丁香五月婷婷在线| 久久婷婷五月| 亚洲精品无码久久| 六月丁香av| 色青青电影色五月| 久热这里精品免费| 久久AV无码精品人妻系列试探| 色五月婷婷操逼| 婷婷五月丁香久久| 丁香五月婷婷操逼| www,婷婷五月天,com| 婷婷性爱影院| 激情五月丁香五月| 天天综合网站| 婷婷五月亚洲激情| 色婷婷成人| 色热久| 婷婷激情五月天激情| 少妇大叫太大太粗太爽了A片| 玖玖爱资源站| 天天综合在线网| 91人人超碰在线| 人人爱国产| 亚洲蜜桃精久久久久久久久久久久 | 99视频超级精品| 99久久久久久www| 久久五月天免费网站| 26UUU精品一区二区c〇m| 99视频精品| 色综合激情| 亚洲综合另类| 色婷久久| 无码少妇高潮喷水A片免费| 永久的网站AAAA| 五月丁香啪啪网| 亚洲色婷婷五月天| 五月天色综合| 99热国内| 91主播在线| 五月天婷婷爱| 99欧州偷拍视频| 天天日天天爽| WWW,五月天| 人人摸人人干| 婷婷五月骚厕所| 九九热内射| 激情五月丁香六月综合AVXXXX| 变态另类色图 | 成人片在线播放| 国产av影片| 激情五月丁香六月综合AVXXXX| 婷婷六月色情| 久操热线| 六月丁香激情网| ady狠狠入| 99精品视频网| 五月色丁香综合| 成人无码髙潮喷水A片| 色色亚卅| 午夜色婷婷| 大香蕉久操| 狠狠人妻久久久久久综合丁香| 97在线99| 91碰视频| 婷婷五月天电影在线| 五月婷婷丁香网| 久久久精品AV| 成人性爱精品视频| 成人在线网址| 91热久88| 天天日天天摸| 五月天伊人网| 极品 少妇 内射| 99热最新国内| 激情五月综合婷婷| 色婷婷五月天在线观看| 先锋资源996| 欧美男女婷婷| 久久久国产精品黄毛片| 色婷精品91| www.狠狠操.con| 97色视频网| 久久538| 五月丁香婷婷激情在线| 婷婷六月激情| 97久久超视频| 日本色色色色色色色色一色二色| 色综合婷婷| 九九这里精品| a色色色色色| 日韩熟女啪啪视频| 亚洲妇女熟BBW| 婷婷五月天AV| 韩国久久少妇视屏| 色五月婷婷在线视频| 无码色综合| 欧美经典片免费观看大全| 五月天色婷婷综合| 天天干com| 狠狠五月激情在线| 色久九| 久久5 9视频免费观看| 超碰成人av| 婷婷五月婷婷五月天| 99九九玖玖| 激情综合色婷婷啪啪五月天| 噼里啪啦在线观看免费完整版视频| 五月婷婷激情综合av| 六月丁香五月激情网| 色色激情网| 日韩精品VIP| 开心五月激情网| 日本色99| 中文字幕婷婷| 九色视频91疯狂| 天天久| 色婷婷婷婷成人网| 少妇婷婷五月天| 久99久在线| 爆乳熟女一区二区三区爆乳| 99热狠狠操| 色五月在线综合| 欧美三级巜人妻互换| 啪啪91| jiZZdr| 久久曰曰| 开心激情站| 99热最新| 丁香五月激动深爱欧美| 97超级碰| 色婷婷色综合激情91| 九九久久玖玖爱| www天堂99| 丁香五月开心七月| yiqicaoav| 青青草婷婷久久| 色婷婷人人| 国产精品24r| 玖玖综合色区在线观看| 91色在线| 婷婷六月丁香在线| 久久久久99精品成人片| 色婷婷成人五月| 婷婷丁香综合| 97久久精品| 婷婷午夜丁香| 成人国产欧美大片一区| 国产高潮白浆一区二区| www.91操| 色婷婷五月亚洲| WWW,婷婷,COM| 五月丁香综合激情| 99久久国产宗和精品1上映| 亚洲精品久久久久久久久久吃药 | 97碰精品| 久久综合丁香| 99视频精品8 | av大香蕉| 91窝窝| 国产亚洲网站在线| 国产成人网| 婷婷深爱五月天在线| 五月婷婷狠狠干| 亚洲中文乱字字幕在线永久| 婷婷五月激情图片| 乱乱av| 日韩艹比| 五月天综合久久| 久操大香蕉| 噜噜噜噜噜久| 婷婷丁香午夜综合影视| 毛片色五月| 激情综合五月婷婷| 九九色逼| 91操屁股| jiujiu无码五区| α久久| 亚洲婷婷欧美婷婷| 五月激情影院| 9久热在线精品| 狠狠色丁香久久| 色九区| 亚洲色婷婷网站| 中文字幕色色色| 久久性操| 91 久热| 丁香狠狠色婷婷| WWW.激情| 夜夜大香蕉婷婷丁香| 成人视频网| 99久久色| 青青草蜜臀| 五月婷婷天天| 99精品在线观看| 99热高清在线| www.五月天。com| 激情五月天天狠狠久久| 五月天激情美女久久| 青草五月天| 97丁香五月| 日日夜夜干| 爱iii做iiii日日| 婷香五月网在线| 99热在这里只有精品| 99久久九九| 黄色网址五月婷婷| 凹凸7777操操操| 天天日天天舔| 91人无码久久久久久| 激情五月天婷婷直播| 五月婷婷久草在线视频综合| 久久99久久99精品免视看婷婷| 综合九九中文字幕| 99亚洲色色| 久操热| 99九九热视频| 午夜丁香六月婷| 九月激情综合| 婷婷第一页| 密乳视频| 午夜成人片400| 久久精品性爱视频,| 婷婷五月草| 日本熟妇乱妇熟色A片蜜桃| 色女人久久| 人人人舔人人人操人人人摸人人人97| 嫩草免费视频| 99re思思精品在线观看| 国产做爰视频免费播放| 婷婷欧美激情综合| 五月激情小说| 国内裸舞二区| 婷婷五月色| 超碰超碰在线| 五月婷婷影院| 婷婷色丁香五月| 五月天激情小说欧美激情| 日本精品久久久久中文字幕| 思思热久久阴99| 无码区婷婷五月花开| 国产精品人妻在线网址| 五月婷婷亚洲| 日韩无码专区| 久久久噜噜噜久久人妻| 五月丁香另类图片| 九月色婷婷| 99免费成人网| 91狠狠色丁香婷婷综合久久精品| 99在线观看精彩视频| 天天日天天干天天操| 99久久婷婷国产综合精品青桔 | 天天色99| 久久久91| 色色操| 五月开心婷婷中文字幕| 亚洲综合五月天婷婷| 国产日日夜夜操| 日本欧美成人片AAAA| 婷五月丁香| 嫩草AV久久伊人妇女超级A| 激情二色月| 99热在线观看| 婷婷色五月在线视频| 丁香色情五月综合激情| 五月丁香婷婷综合视频| 99九九在线精品热动漫| 五月天婷婷影院| 狠狠色丁香婷婷基地| 日韩国产在线精品| 精品人妻一区二区| 99色综合| 五月丁香婷婷色播无码| 日本美女上人| 色五月丁香婷婷综合| 亚洲12p| 久久九九蜜| 婷婷色五月天色色| 天天干天天日天天操| 亚洲精品乱码久久久久99| 欧美色激情四射| 欧美成人va| 另类激情五月天。| 五月丁香婷婷狠狠操| 久久五月天婷婷| 天天激情5月天亚洲| 亚洲午夜成人av电影网| 丁香六月婷婷| 亚洲欧洲自拍图片专区五月天| 六月五月天婷婷涩播在线| 天天天天天天操| 婷婷伊人网| 强壮的公次次弄得我高潮A片日本 | 天天爽夜夜爽夜爽精品| 色就是色婷婷五月亚洲激情| 99碰碰碰| 婷婷色五月激情| 五月婷婷五月天亚洲无码| 激情综合另类| 北京熟妇搡BBBB搡BBBB| 亚洲秘 无码一区二区三区妃光/1| www.狠狠| 国产成人亚洲综合亚洲| 久色精品| 午夜五月天| www夜夜操wwwcon| 五月综合激情| 4399欧美另类视频| 色色欧美。| 中文字幕人妻在线| 九九热视频精品| 五月婷婷色丁香| 综合色吧| 亚洲欧美成人在线观看| 五月天激情婷婷| 五月婷婷五月天| 丁香五月亚洲婷婷| 草操网| 射区导航| 伊人丁香五月婷婷潮吹| 色婷婷精品视频在线播放| 开心五月婷婷| 亚洲热久久| 熟女激情五月天 | 婷婷无五月无码视频| 日韩在线视频中文字幕| 在线视频99| 五月天激情子轮| 六月丁香五月激情网| 欧美 日韩 成人在线| 五月丁香 狠狠爱| 九九精品热| 婷婷五月色综合| 啪啪六月婷婷| 这里只有精品视频在线看| 激情丁香淫荡婷婷| 激情涩涩网| 婷婷久久亚洲| 亚洲高清在线| 人妻22p| 97极品在线| 日本99色| 日韩色五月| 高清国产AV| 996黄色片| 二区成人视频| 久久精品99久久久久久久久| 九九美女视频| 美国不卡视频| 久久综合五月情| 超碰日韩人妻在线| 91男人资源站| 六月色婷婷综合影视| 亚洲亚洲人成综合网络| 激情综合网激情五月婷婷| 成人精品视频99在线观看免费| 这里只有精彩视频| 99久在线精品99re8热| 大香蕉AV在线| 日曰躁夜夜躁2026| 亚洲殴洲精品Av在线| 色婷婷亚洲综合天堂| 丁香六月青青草| 哇嘎成人久久| 超碰免费人妻| 久久五月天激情婷婷| 丁香六月色情| 这里只有精品2| 第四色首页| www,天天干| 九九re精品视频在线观看| 亚洲综合久| 天天精品视频免费观看| 国产精品激情AV久久久青桔| 91性人人| 精品久热| 99热777| 久久久精品色色色| 亚洲激情AV| 色色国产| 久久久9久| 中文字幕网站在线观看| 天天五月香欧美| 丁香五月六月婷婷自拍| 丁香六月色婷婷| 久久婷婷五月综合| 国产精品扒开腿做爽爽爽A片唱戏| 99视频| 一本狠婷婷综合| 啪啪 综合网| 婷婷五月天 偷拍| 五月婷婷福利| 久久色区| 99免费视频| 超热久碰.com| 少妇日麻屄| 欧美丁香五月| 亚洲欧洲中文日韩久久AV乱码| 五月丁香A片| 人妻人人操| 色高清无码视频| 色婷婷操逼| 亚洲妇女熟BBW| 国产激情在线观看| 欧美综合激情五月丁香| 99久在线视频| 五月丁香天堂| 亚洲开心激情网| 精品久久久久久久人妻| 色综合久| 欧美色宗和激情| 五月婷婷网久久| 婷婷五月AV| 开心色色五月天综合| 欧美婷婷日本| 久久久精品色| 草草色情综合网| 婷婷丁香熟妇综合网| 色情久久久| 久久婷婷五月| 婷婷色九月| 亚洲色婷婷视频| 综合色五月| 91日韩美女被插视频| 丁香婷婷六月天| 91综合国免费久入| 91啪啪啪啪| 99免费视频网| 丁香狠狠干| 99色视| 五月天色不卡| 91丁香婷婷综合资源| 99成人网一区| 久99久在线| 日本熟妇乱妇熟色A片蜜桃| 91九色丨国产丨爆乳| 五月天综合久久| 五月伊人91| wwW天天干| 777色色色| 99久精品| 26uuu国产| 1级欧美日韩| 五月婷婷色情| 九九99久久精品| 99这里是99在线视频| 99精品在线播放| 国产97色在线 | 日韩| 久久视频这里有精品99| 午夜微拍福利| 51国精产品自偷自偷综合| 天天色中文字幕女优AV| 五月天激情网页| 熟女人妻一区二区三区免费看 | 天天夜夜操| 中文字幕无线久必| 五月丁香亚洲综合网| 成 人片 黄 色 大 片| 干婷婷五月天| 日韩ww| A A色色| 综合天堂AV久久久久久久| 久色中文| 91碰操| 五月丁香六月情| 人与禽A片啪啪| 天天色综合网吨吧| av在线不卡播放| 五月婷婷丁香五月天| 婷婷五月综合色拍| 亭亭五月丁香五月天激情| 丁香五月亚洲激情婷婷射| 九九热最新视频| 亚洲激情无码久久| 五月综合激情久久| 怡红院一二三| 婷婷九月| 国产69久久久欧美黑人A片| 91dy.av| 超级碰碰视频无码| 五月婷婷中文字幕| 亭亭丁香久久五月| 欧美日本国产| 久久婷婷视频| 亚洲瑟瑟精品在线| 偷偷操九九| 九九精品热| 色婷婷成人在线| 九月婷婷在线视频| 久久9热| 五月丁香va| 狠狠色综合图片| 99热精品在线| 日韩欧美四五区| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 五月婷婷在线视频| VA婷婷| 超级久久久| 色情丁香五月婷婷精品| 婷婷五月天深爱| 激情伊人网| 色婷婷亚洲婷婷| 人人人va亚洲视频在线| 思思久久99热| 婷婷五月丁香激情图片 | 99视频极品在线香蕉| 丁香五月激情婷婷| 六月婷婷久久大全| 婷婷五月天无码熟女| 婷婷五月丁香综合桃花色网| 五月天婷婷综合网| 99爱在线视频观看| 五五月丁香花激情综合网| 4399精品一区二区| 亚洲1区| 婷婷激情在线| 五月综合激情视频| 在线观看熟女少妇| 五月丁香欧美综合| 欧美久久九九| 狠狠操综合| 欧美在线操| 99热视精品| 国产成人网| 一二线视频 另类| 日狠狠| 久久精彩视频| 韩国久久少妇视屏| 第四色婷婷五月| 欧美婷婷| 婷婷五月激情的图片| 色综合播放| 欧美成人精品A片免费一区99| 99热精品99| 色婷婷亚洲精品天天综| 狠狠色五月| 婷婷在线播放av| AV在线免费网站| 91超级碰人人操| 丁香网五月天| 色呦精品| 八戒青柠影视剧在线观看| 日韩黄黄| 日本色99| 97碰在线视频| 91在线日| 久久九区| 99免费| 五月婷婷AV| 99热综合色图| 99亚洲天堂| 久久伦乱| 97人人操人人| 婷婷午夜天| 久久三级视频| 91久久久久久| 亚洲激情久久| 婷婷综合网| 激情五月影院| 成人免费120分钟啪啪| 大香蕉久| 日本欧美成人片AAAA| 亚洲情综合五月天| 六月婷婷色色网| 欧美色男人网站| 亚洲色99综合天堂| 丁香五月婷婷www..com| 色综合av超碰| 97人人操在线| 中文字幕成人| www.激情五月天.com| 久久五月天激情视频| 人人添人人| 亚洲色欲AAAAAA| 停停五月丁香| pom538精品视频| 久久人人九九| 在线观看国产高清视频免费网站 | 激情五月,激情综合网| 九九青草热| 日韩成人中文字幕| 深爱婷婷色| 99热这里只有精品无码| 这里只有精品免费视频| 丁香五月电影| 欧美日本日韩| 日韩AV成人电影| 99热综合网| 天天情天天狠天天透| 99热精品少| 99re思思久久| 色爱综合网| 婷婷色在线| 我想看国产大学生口爆吞精的视频| 碰碰操91| 五月婷婷色播视频| 开心激情五月天网| 激情五月小说婷婷| 97超碰免费超级在线观看| www.日本91| 久久视这里只有精品| 国产色色网址网站| 亚洲综合另类| 日日干夜夜干| OYIWbGcPu8H| 热五月婷婷| 狠狠色情婷婷| 狠狠爱综合| 91在线操逼视频| 六月婷基地| 婷婷五月天99| 久久婷婷五月天激情四射| 五月天激情影院| 99热99| 天天舔天天插天天爱| 婷婷激情丁五月| 婷婷五月天久久久| av成人在线播放| 91丨九色丨白浆| 天天色综合综合| 91九色|疯狂|高潮|对白|| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 成人短视频在线| 婷婷五月天欧美图片在线播放电驴| 九九这里有精品| 五月Huangsewang| 9久久久久久久久久久| 婷婷五月天亚洲丁香| 爱射综合| 色色丁香色五月| 色宗合,宗合网| 超碰99在线| 大香蕉伊在| 99色1| 婷婷亚洲综合| 五月丁香激情四射| 三级大香蕉网| 图片区 小说区 区 亚洲五月| 成人Av在线大片| 色色色色网| 大香蕉五月婷婷丁香| 青青草性爱视频| 97久久草草超级碰碰碰| 操操操91| 天天干天天叉| 中文不卡av| 五月婷婷,六月激情| 亚洲中文字幕AV| 五月色丁香| 婷婷激情六月| 日逼影音先锋男人资源站| 七七九九色色| 婷婷丁香五月激情| 综合激情伊人影视在线| 九九九热精品| 97色色综合| 久9热视频| 丁香五月手机视频| 九九热只有精品| 超碰人人妻| 激情综合网激情五月丁香| 丁香五月婷婷av影院| 五月丁香少妇A| 五月激情影院| 热久久思思热思思| 久久久人妻| 天天色一道本综合婷婷| 少妇高潮A片无套内谢麻豆传| 婷婷激情小说网| 丁香五月激情网| 成人五月天丁香| 日韩久热| 这里只有精品视频视频在线观看| 丁香五月电影| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | www.婷婷.com| 91欧美| 26uuu在线观看| 色婷网| 婷婷色在线视频| 天天综合色99| WWW.开心五月天.COM| AA片在线观看视频在线播放| 狠狠操狠狠色| 五月丁香六月婷婷色| 26uuu精品一区二区| 久久婷婷色综合| 99操逼视频| 五月丁香香蕉| 亚洲熟妇AV综合网五月丁香伊人 | 激情婷婷人妻| 久久激情四射| 狠狠高潮精品亚洲1| 美欧成人视频| 激情五月天小说网| 97色伦另类图片小说视频| 九月色婷婷综合亚洲| 六月综合婷婷开心伊人| 欧美丁香五月97色| 国产古装妇女野外A片 | 免费看欧美成人A片无码| www.五月天婷婷姐姐| 久草婷妨| 玖玖在线视频| 婷婷丁香五月天小说| 国产精品久久久久久喷浆| 色色性爱视频| 天天肏视频| 色和综合网| 九九成人| 激情婷婷五月亚洲| 丁香香蕉婷婷| 五月婷婷激情综合网| 色婷婷a三区麻| 五月开心久久| 激情又色又爽又黄的A片| 久久机热/这里只有精品| 婷婷五月丁香综合激情| 五月婷婷丁香大陆免费| 午夜爱爱爱成人| 亚州第一A片| 丁香六月激情综合| 五月天六月婷婷| 欧美天天爽| 我去色色网五雨天| 97精品人人A片免费看| 色婷婷激情| 日本无va视频| 丁香六月婷| 99热午夜精品| 五月丁香婷婷综合| 五月婷婷色五月| 99热这只有| 538任你爽视频不一样的| 97干干干丁香| 久操人妻| 久久亚洲无码| 天天综合永久| 99啪啪视频| 国产免费av在线| 亚洲中文字幕在线观看| 色五月婷婷综合| 丁香六月情| www.五月激情.com| 97人妻碰碰中文无码久热丝袜| 午夜微拍福利| 成人AV在线电影| 丁香五月婷婷基地| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 91久久九久久九久久九久久九久久| 人与禽A片啪啪| 久久综合九九| 婷婷色导航| 99日这里只有精品| 停停色综合伊人| 另类色视频| 久久五月激情| 激情婷婷五月少妇| 丁香影院五月综合| 天堂美国久久| 青柠影视免费高清电视剧| 九九热在线视频观看| 日韩在线一级| www.精品99| 一夜福利不卡| 婷婷和五月天| 亚洲激情综合| 日韩AV片| 91玖玖| 综合www色| 涩丁香91| 丁香五月天婷婷大香蕉| 射婷婷中文字幕| 婷婷六月激情综合| 99在线精品免费视频| 久久caop| 99热在线观看| 另类少妇人与禽zOZZ0性伦| 粉嫩AV久久一区二区三区 | oVV4WIB3vFi8D| 99这里精品| 888精品福利地址| 婷婷五日b| 天天狠狠插| 色婷五月天网站| 丁香五月天婷婷久久综合| 另类激情五月| 五月成人网天天| 久久久久人无码人妻| 亚洲成人黄色网| 深情五月天| 综合伊人久久| 婷婷伊人久久| 婷婷大香蕉| 欧美搡BBBBB摔BBBBB| 嫩草AV久久伊人妇女超级A| 天天狠狠综合精区| 丁香啪啪中文字幕| 亚洲无码yw| 超碰成人在线观看| 97色色色视屏| 婷婷五月中文字幕国产| 这里只有精品视频在线看| 综合图片色色| A片一曲| 99热国产| 五月天丁香久久综合 | 五月丁香激情婷婷综合| 免费五月婷婷网| 天天爽夜夜操| 超碰九色| 大香蕉AV电影在线| 香蕉久久国产av一区二区| 五月天久久婷婷| 激情五月婷婷色综合| 久久这里只有欧美| 五月天婷婷伊人| 天天综合精品| 十二区无码| 超碰在线视屏| 色五月久久成人婷婷| 影音先锋777xfplay色资源网站| 亚洲无码色| 激情第四色| 久久久久九九九九视屏小说88| 欧美日韩成人综合9| 欧美丁香五月97色| 五月天免费色| 六月婷婷色色色| 天天干天天干天天| 毛片蕉地一二| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 精品香蕉99久久久久网站| 日韩情色在线观看| 婷婷激情小说网| 日本成人小说婷婷六月| www99精品| 99热在线观看| 91欧美日韩综合| 国产美女最新VA在线免费观看| 综合一区二区三区| 国产AV一区二区三区最新精品 | 狠狠色婷婷丁香六月| 97九色视频| 国产偷人爽久久久久久老妇APP | 婷婷丁香五月,狠狠综合| 99精色| 久久色五月天激情小说| 99∨VTV| 操操熟女| 秋霞电影理论| 六月婷婷激情| 丁香婷婷婷五月综合色情| 蜜臀av无码久久久久久久久| www,26uuu,c0m,色情| 亚洲人妻av| 玖玖五月丁香| 色综合天天天天做夜夜| 天天爽天天操| 久久婷婷五月综合激情国产| 五月丁香六月婷婷玖玖| 久青草影院| 99人人操人人操人人精| 婷婷精品性性性性性性性| 天天综合色| 精品人人操| 婷婷色五月婷| 丁香六月青青草| 九九热思思热| 99综合免费视频| 免费成人中文字幕| 丁香久久五月天视频在线观看| 人妻久久久久久久 | 婷婷五月天影视网址| 日韩成人av在线| 久久色五月天| 色五月丁香伊人五月| 亚洲中文字幕在线观看| 免费AV黄在线播放| 久久婷婷伊人| 丁香花色色网| 九月婷婷激情| www.精品久9| 婷婷五月天在线观看第二页| 五月天婷婷丁香成人网| 亚洲婷婷丁香五月天激情小说| 九九热视频这里只有精品| 五月丁香久久久久| 99精品视频偷拍| 9久久久| 狠狠夜夜五月丁香| 狠狠狠狠狠| 99 热| 99热婷婷| 九九视频这里是精品五月| 五月天色色色| 丁香五月天激情网址| 丁香激情五月天| 五月五婷婷网| 婷婷九月| 五月天婷婷在线观看精品男人| 99在线精品免费视频| 久久激情综合| 精品成人在线| 色五月婷婷久久大| 极品五月天| 五月天激情婷婷久久| 日韩在线成人电影| 可以免费观看的AV| 中文字幕av在线| 996热| aaaaaa片| 99久久户外勾搭| 欧美色五月天| 五月天丁香综合在线| 97热这里精品在线视频| 成人在线不卡| 狠狠综合网| 婷婷狠狠五月综合| 丁香97综合| 色婷婷色99国产综合精品| 色色色色色色色色五月先| 丁香久久| 五月天成人手机在线视频| 665566 无码| 日日夜夜干| 伊九九三级区| 激情操逼婷婷| 婷婷五月丁香综合激情| 五月天婷婷av| 色色色综合| 五月丁香六月欧美综合网站| 伊人网啪啪| 操操啪| 色婷婷激情五月天在线观看| 激情爱爱网站| www99热| 五月丁香六月激情欧美综合| 99热免费精品| 久久精品一区二区三区四区| 五月丁香六月婷婷国产视频| 亚洲天堂热| 色噜噜狠狠色综无码久久合欧美| 国产婷婷五月色情综合| 色婷| 20253AV| 91超碰在线播放| 思思色综合网站| 婷婷色一二三区波多野结衣| 五月天婷婷成人网| 日本成人小说婷婷六月| 五月丁香另类图片| 欧美五月停| 午夜五月天| 色噜噜狠狠狠综合曰曰曰| 色五月综合激情| 天天色天天操天天射| 开心五月综合激情网| 2023天天日夜夜爽| 欧美五月婷婷| 另类在线免费视频| 久久五月丁香| 六月狠狠综合| 丁香综合伊人| 五月丁香久久丝袜啪啪| 亚洲亚洲人成综合网络| aa久久| 丁香五月,激情五月,深爱五月| 99在线精品观看99| 日韩小视频在线99| 中文字幕无码人妻少妇免费视频 | 久久丁香五月| 色色丁香婷婷五月天| 五月婷婷亚洲色视频| 丁香五月婷婷乱| 九九家庭影院| 任你操精品免费| 午夜]香婷婷深深爱| 五月天婷婷综合| 色综合中文| 狠狠色综合五月| 色综合色综合色综合高潮| 91porn一起草| 玖色色综合| 日韩AV在线影片| 26uuu欧美| 激情性爱五月天| 六月色婷婷| 丁香婷婷视频| 久久这里只有精品网| 天天操夜夜啊| 五月丁香无码| 九九热re99re6在线精品| 亚洲AV日韩在线观看| 成人午夜天| 九九热视频在线观看| 久99视频| 久久婷婷五月综合| 激情丁香五月天| 五月天亚洲色| 婷婷深爱五月丁香网| 人妻久久久久久久久妻久久久久| 丁香五月色| 午夜天堂啪啪| 婷婷九月狠狠色| 9 99免费视频| 午夜日韩久久久网站| 9一精品视频观看| A片试看120分钟做受图片| 亚洲无码99| 欧美久久婷婷| 六月丁香激情| 人人操人人干AV| www.刺激色网站www.| 五月综合丁| 色色色色色色五月婷婷| 五月婷综合激情| 日本WWW九九九| 天堂久久大香蕉| 一区三区视频有限公司| 丁香五月天社区婷婷| 久久激情婷婷| 97碰操| 狠狠se| 婷婷久久伊人| 日韩久久视频| 狠狠狠婷婷五月综合| 色五月成人婷婷| 天天综合天天做天天综合| 五月的丁香六月的婷婷| 开心五月天激情| 99亚洲色| www.天天干| 激情五月丁香五月| 综合网天天| 精品国产AV色一区二区深夜久久| 嫩草极品| 久操大屁股女人av| 久久一级片| 怡红院 久久| 久久综合伊人综合在线| 六月丁香婷婷开心综合基地| 亚洲视频伍月婷婷| 婷婷淫淫狠狠六月| 狠狠操综合| 丁香五月六月| www.激情| 四川BBB搡BBB爽爽视频| 人人肏逼视频在线一区二区| 91疯狂操操操操| 婷婷五月天精品| 日本不卡中文字幕| 色婷婷中文字母五月丁香| 久久婷婷成人视频| 五月婷婷开心亚州在线| 天天狠狠干| av九九| 五月婷婷色色| 欧美日本99| 婷婷丁香五月天哟啪| 成人色站,在线视频,看片-SS1AV| 五月激情五月婷婷五月天在线| 99热这里只| 26uuu日韩| 99无码| 天天综合网色欲香| 综合网色| 能看的av片| WWW免费视频碰碰碰碰| 996er热| 99色免费在线观看| 天天日,天天射,天天插| 色五月婷激情| 九九精品热| 无码视频国内精品久久久| 国产av基地| 久久草婷婷丁香网站| 爱婷婷都市激情| 大陆极品少妇内射AAAAAA| 大香蕉在线观看9| 亚洲va日| 国产无人区大片| 日本天天色| 国产日韩av片| 99性爱无码| 怡红院视频| 亚洲久艹| 玖玖伦理电影| 98永久精品| 久久精品A片777777| 久热九九| 极品人妻VideOssS人妻| 色综合久久久久| 4399人妻无码久久久| 色性五月天| 激情综合网色播五月| 成人在线网站| 79成人网| 在线99热| 中文字幕在线不卡| 日本激情综合| 国产精品久久久久久久久久免费| 欧美碰碰碰| 狠狠色丁香婷婷综合久久97AV| 亚洲中文字幕av| 97超碰9久热婷婷热| 五月激情偷拍婷婷| 日韩99色99| 精品成人无码A片观看香草视频| 99热日本| 婷婷色综合av| 五月天婷婷涩涩| 99思思热只有在这里看| 99精品在线观看| 99热老网站| 天天成人丁香美女AV| 国产精品色| 天天日天天狠狠操| 丁香五月手机在线| 香蕉伊人综合| 性色五月天| 好叼操在线观看| 婷婷激情综合网| 99精品偷自拍| 久热只有这里有精品| 亚洲色在线观看| 欧美日本国产欧美日本韩国99| 思思热在线视频精品| 狠狠九九婷婷韩| 五月深爱激情网| 天天色五月婷婷91久久久久久久| 六月婷婷影院| 熟妇人妻中文字幕无码老熟妇 | 亚洲V国产V欧美V久久久久久| 天天日天天狠狠操| 五月丁香大香蕉| 成人精品在线| 91一起艹| 久/久精品99看9| 99热久| 色婷网| 久久a热| 婷婷五月天改成什么了| 婷婷99狠狠| 色欲丁香久久| 在线超碰免费|