日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

大二网页制作实习总结

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大二网页制作实习总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

整體流程

目標(biāo)確立

第一天討論確定下要做的內(nèi)容,打算制作傳統(tǒng)節(jié)日相關(guān)的。

因?yàn)樾枰止ず献?#xff0c;使用的工具也都不同,所以不能使用腳手架和webpack來(lái)工程化開發(fā)。

搭建的目錄結(jié)構(gòu)如下:


每個(gè)文件夾內(nèi)留出一個(gè)index.html與其他模塊進(jìn)行鏈接,我負(fù)責(zé)制作中秋模塊。

制作

之后的幾天可以直接開寫了,我用了vue的一些基礎(chǔ),這樣寫起來(lái)方便,也可以用element-ui,加快速度

比如這個(gè)輪播圖,手寫實(shí)在是麻煩

優(yōu)化

全部完成之后,頁(yè)面的數(shù)據(jù)分散在各個(gè)頁(yè)面中,因?yàn)閖s沒有采用模塊化,所以可以把數(shù)據(jù)都集中在一個(gè)文件中統(tǒng)一管理(我也不清楚這樣好不好,反正是這么干了)

制作過(guò)程

整體結(jié)構(gòu)

首先肯定要制作整體結(jié)構(gòu)


將結(jié)構(gòu)復(fù)制粘貼到各個(gè)頁(yè)面(這里可以優(yōu)化使用路由,重復(fù)的內(nèi)容實(shí)在太多了)

這樣剩下的區(qū)域放一小點(diǎn)內(nèi)容就可以了,老師要求寫10頁(yè),我也不想花太多的時(shí)間,只能縮減每個(gè)頁(yè)面的內(nèi)容了。

素材

素材都是現(xiàn)找的

  • 圖片直接復(fù)制在線地址
  • 音樂去網(wǎng)易云下載
  • 視頻去B站下載然后轉(zhuǎn)碼。

B站的視頻下載要用到edge瀏覽器的插件,一搜就有。
下載完之后是flv格式,需要轉(zhuǎn)為mp4格式
在線視頻編輯器
這個(gè)網(wǎng)頁(yè)可以處理很多日常的剪輯需要

組件庫(kù)

組件庫(kù)使用了element-ui,但這個(gè)組件庫(kù)整體風(fēng)格跟我想要的不符,很多零碎的部分都來(lái)自于bilibili 的一位up主艾恩小灰灰
bilibili艾恩小灰灰的個(gè)人首頁(yè)
艾恩小灰灰的gitee地址
css學(xué)藝不精,也沒什么美感,實(shí)在做不出這么漂亮的效果

新知識(shí)

視頻和音頻

之前沒有用過(guò)這些東西,也不知道video和audio標(biāo)簽應(yīng)該怎么用。在這里總結(jié)一下。
瀏覽器新增加的video和audio標(biāo)簽,可以在不使用flash的情況下播放媒體文件,audio(音頻)和video(視頻)都屬于媒體文件。

標(biāo)簽創(chuàng)建

//簡(jiǎn)單的寫法 <audio src="test.mp3"></audio> <video src="test.mov" width=300 height=300></video>

因?yàn)闉g覽器對(duì)不同格式的媒體文件支持程度不同,有更保險(xiǎn)的寫法

<video width="320" height="240" controls="controls"><source src="movie.mp4" type="video/mp4" /><source src="movie.ogg" type="video/ogg" /><source src="movie.webm" type="video/webm" /> Your browser does not support the video tag. </video><audio controls="controls"><source src="song.mp3" type="audio/mp3" /><source src="song.ogg" type="audio/ogg" /> Your browser does not support this audio format. </audio>

也可以通過(guò)js來(lái)創(chuàng)建標(biāo)簽

new Audio(); new Video();

媒體控制

可以使用js來(lái)修改以下屬性控制媒體

keyvalue
src媒體資源的路徑
play()播放媒體資源
pause()暫停媒體資源
currentTime指定播放器應(yīng)該跳過(guò)播放的時(shí)間,單位秒,取值區(qū)間為initialTime和duration之間
volume設(shè)置音量,0~1
muted為true進(jìn)入靜音模式
playbackRate指定媒體播放速度,0~1表示慢放,1正常,大于1快進(jìn),為負(fù)表示回退
controls為true時(shí)表示顯示播放控件
loop為true時(shí)表示循環(huán)播放
proload指定用戶在開始播放媒體之前,是否或者多少媒體內(nèi)容需要預(yù)加載:其值有以下幾種:1、none:不需要預(yù)加載2、metadata:加載諸如時(shí)長(zhǎng)、比特率、幀大小這樣的元數(shù)據(jù),而非媒體數(shù)據(jù)3、auto:預(yù)加載瀏覽器認(rèn)為適量的媒體內(nèi)容(默認(rèn)值)
autoplay為true時(shí)自動(dòng)播放媒體,此屬性為true相當(dāng)于高度瀏覽器需要預(yù)加載媒體內(nèi)容

在標(biāo)簽上添加controls屬性可以添加默認(rèn)的音頻控件,如果不滿意可以通過(guò)上面的屬性和下面的狀態(tài)自定義控件。

keyvalue
paused如果是暫停狀態(tài),返回true
seeking如果播放器正跳到一個(gè)新的播放點(diǎn),返回true
ended播放完畢并且停下來(lái)了返回true
duration媒體時(shí)長(zhǎng),單位秒,如果在元數(shù)據(jù)未加載之前查詢此屬性,返回NaN
initialTime已經(jīng)緩存的數(shù)據(jù)的最早時(shí)間以及能夠回退到的最早時(shí)間
played返回已經(jīng)播放的時(shí)間段
buffered返回當(dāng)前已經(jīng)緩沖的時(shí)間段
seekable返回當(dāng)前播放器需要跳到的時(shí)間段

以上涉及到時(shí)間段的字段返回的都是TimeRanges對(duì)象,包含length屬性和start()/end()方法,length指當(dāng)前的一個(gè)時(shí)間段,start()和end()指當(dāng)前時(shí)間段的起始時(shí)間點(diǎn)和結(jié)束時(shí)間點(diǎn)

媒體事件

事件類型描述
loadstart當(dāng)媒體元素開始請(qǐng)求媒體資源的時(shí)候觸發(fā)
progress正在通過(guò)網(wǎng)絡(luò)加載媒體資源的時(shí)候觸發(fā),此事件一般每秒觸發(fā)2-8次
loadedmetadata元數(shù)據(jù)加載完畢時(shí)觸發(fā)
loadeddata當(dāng)前播放位置的媒體內(nèi)容首次加載完畢
canplay已經(jīng)加載一些媒體內(nèi)容,可以開始播放,但需要緩沖更多數(shù)據(jù),此時(shí)readyState為HAVE_CURRENT_DATA
canplaythrough所有媒體內(nèi)容已加載完畢,可以流暢播放
suspend已經(jīng)緩沖大量數(shù)據(jù),可以暫停下載,此時(shí)NetworkState為NETWORK_IDLE
stalled嘗試加載數(shù)據(jù),但無(wú)法獲取到數(shù)據(jù),此時(shí)NetworkState為NETWORK_LOADING
play調(diào)用play()方法或設(shè)置相應(yīng)的autoplay屬性為true時(shí)觸發(fā),如果已經(jīng)加載了足夠多的緩存,緊接著會(huì)觸發(fā)palying事件,否則觸發(fā)waiting事件
waiting由于未緩存足夠的數(shù)據(jù),導(dǎo)致播放未能開始或者播放停止
playing已經(jīng)開始播放媒體文件
timeupdatecurrentTime屬性發(fā)生改變時(shí)觸發(fā),此事件每秒會(huì)觸發(fā)4-60次
pause調(diào)用pause()方法時(shí)觸發(fā)
seeking通過(guò)腳本或用戶通過(guò)播放控件將當(dāng)前播放時(shí)間調(diào)至一個(gè)還未緩沖的時(shí)間點(diǎn),導(dǎo)致在內(nèi)容沒有加載完時(shí),停止播放。此時(shí)seeking屬性值為true
seekedseeking值又變?yōu)閒alse
ended播放完畢時(shí),播放停止時(shí)觸發(fā)
durationchangeduration屬性發(fā)生變化時(shí)觸發(fā)
volumechange聲音發(fā)生變化時(shí)觸發(fā)
ratechangeplaybackRate或defaultPlaybakcRate發(fā)生改變時(shí)觸發(fā)
abort用戶要求停止加載媒體內(nèi)容時(shí)觸發(fā),此時(shí)error.code為MEDIA_ERR_ABORTED
error由于發(fā)生網(wǎng)絡(luò)錯(cuò)誤或者其它錯(cuò)誤阻止媒體內(nèi)容的加載時(shí)觸發(fā),此時(shí)error.code不會(huì)是MEDIA_ERR_ABORTED
emptied發(fā)生了錯(cuò)誤或者中止,導(dǎo)致networkState屬性值又變回MEDIA_ERR_ABORTED

第三方

不知道有沒有更好的替代品
音頻使用雅虎播放器
雅虎媒體播放器為您的用戶提供的是一個(gè)小型的播放按鈕,而不是完整的播放器。不過(guò),當(dāng)您點(diǎn)擊該按鈕,會(huì)彈出完整的播放器。
請(qǐng)注意,這個(gè)播放器始終停靠在窗框底部。只需點(diǎn)擊它,就可將其滑出。

<script type="text/javascript" src="http://mediaplayer.yahoo.com/js"></script><a href="song1.mp3">Play Song 1</a> <a href="song2.mp3">Play Song 2</a>

視頻使用優(yōu)酷播放器
如果您希望在網(wǎng)頁(yè)中播放視頻,那么您可以把視頻上傳到優(yōu)酷等視頻網(wǎng)站,然后在您的網(wǎng)頁(yè)中插入 HTML 代碼即可播放視頻:

<embed src="http://player.youku.com/player.php/sid/XMzI2NTc4NTMy/v.swf" width="480" height="400" type="application/x-shockwave-flash"> </embed>

之后有時(shí)間自己定義一個(gè)視頻、音頻的播放器。

排他算法

雖然vue有別的寫法,但我覺得還是學(xué)習(xí)一下的好,js的基礎(chǔ)真的太薄弱了。
排他算法的思路就是先將所有元素去除,然后為當(dāng)前元素添加。

// 獲取所有.item元素 let items=document.querySelectorAll('.item');// 設(shè)置選中態(tài)樣式 function setActive(){// 遍歷所有.item元素,移出active樣式items.forEach((item)=>{item.classList.remove('active');})// 為當(dāng)前選中項(xiàng)添加active樣式this.classList.add('active'); } // 遍歷所有.item元素,分別為其設(shè)置點(diǎn)擊事件 items.forEach((item)=>{item.addEventListener('click',setActive); })

可以封裝成函數(shù)

function removeOtherClass (selector, className){let items = document.querySelectorAll(selector);items.forEach(item => {item.addEventListener('click',setActive);})function setActive(){// 遍歷所有.item元素,移出active樣式items.forEach((item)=>{item.classList.remove(className);})// 為當(dāng)前選中項(xiàng)添加active樣式this.classList.add(selector);} }

一些css樣式

css真的有太多沒見過(guò)的屬性了,艾恩小灰灰讓我大開眼界。

  • background-size
  • /* 背景圖片保持原有尺寸比例,裁切長(zhǎng)邊 */background-size: cover;
  • object-fie
  • /* 保持原有尺寸比例,裁切長(zhǎng)邊 */object-fit: cover;
  • scroll-snap-type
  • father{/* 設(shè)置滾動(dòng)貼合的方式:沿Y軸滾動(dòng) mandatory表示強(qiáng)制滾動(dòng) */scroll-snap-type: y mandatory;/* 需要把滾動(dòng)條設(shè)置到直接父容器,scroll-snap-type才能生效 *//* 溢出時(shí),垂直保留滾動(dòng)條,水平隱藏滾動(dòng)條 */overflow-y: scroll;overflow-x: hidden; }son {/* 設(shè)置下一頁(yè)的內(nèi)容會(huì)滾動(dòng)貼合到頂部 */scroll-snap-align: start; }

    其實(shí)并沒有太多新的css屬性,主要原因在于某些css的組合做出了漂亮的效果。

    font-awesome

    雖然有阿里的icon-font,但多學(xué)一個(gè)總是不虧的。
    這也是一個(gè)字體圖標(biāo)庫(kù)。
    很詳細(xì)很基礎(chǔ)的教程,與阿里的icon-font差別不大
    font-awesome基礎(chǔ)用法

    總結(jié)

    以上是生活随笔為你收集整理的大二网页制作实习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。