惊觉logo
关注

大二网页制作实习总结

整体流程

目标确立

第一天讨论确定下要做的内容,打算制作传统节日相关的。

因为需要分工合作,使用的工具也都不同,所以不能使用脚手架和webpack来工程化开发。

搭建的目录结构如下:

在这里插入图片描述
每个文件夹内留出一个index.html与其他模块进行链接,我负责制作中秋模块。

制作

之后的几天可以直接开写了,我用了vue的一些基础,这样写起来方便,也可以用element-ui,加快速度
在这里插入图片描述

比如这个轮播图,手写实在是麻烦
在这里插入图片描述

优化

全部完成之后,页面的数据分散在各个页面中,因为js没有采用模块化,所以可以把数据都集中在一个文件中统一管理(我也不清楚这样好不好,反正是这么干了)

在这里插入图片描述

制作过程

整体结构

首先肯定要制作整体结构

在这里插入图片描述
将结构复制粘贴到各个页面(这里可以优化使用路由,重复的内容实在太多了)

这样剩下的区域放一小点内容就可以了,老师要求写10页,我也不想花太多的时间,只能缩减每个页面的内容了。

素材

素材都是现找的

  • 图片直接复制在线地址
  • 音乐去网易云下载
  • 视频去B站下载然后转码。

B站的视频下载要用到edge浏览器的插件,一搜就有。
下载完之后是flv格式,需要转为mp4格式
在线视频编辑器
这个网页可以处理很多日常的剪辑需要

组件库

组件库使用了element-ui,但这个组件库整体风格跟我想要的不符,很多零碎的部分都来自于bilibili 的一位up主艾恩小灰灰
bilibili艾恩小灰灰的个人首页
艾恩小灰灰的gitee地址
css学艺不精,也没什么美感,实在做不出这么漂亮的效果

新知识

视频和音频

之前没有用过这些东西,也不知道video和audio标签应该怎么用。在这里总结一下。
浏览器新增加的video和audio标签,可以在不使用flash的情况下播放媒体文件,audio(音频)和video(视频)都属于媒体文件。

标签创建

//简单的写法
<audio src="test.mp3"></audio>
<video src="test.mov" width=300 height=300></video>

因为浏览器对不同格式的媒体文件支持程度不同,有更保险的写法

<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>

也可以通过js来创建标签

new Audio();
new Video();

媒体控制

可以使用js来修改以下属性控制媒体

keyvalue
src媒体资源的路径
play()播放媒体资源
pause()暂停媒体资源
currentTime指定播放器应该跳过播放的时间,单位秒,取值区间为initialTime和duration之间
volume设置音量,0~1
muted为true进入静音模式
playbackRate指定媒体播放速度,0~1表示慢放,1正常,大于1快进,为负表示回退
controls为true时表示显示播放控件
loop为true时表示循环播放
proload指定用户在开始播放媒体之前,是否或者多少媒体内容需要预加载:其值有以下几种:1、none:不需要预加载2、metadata:加载诸如时长、比特率、帧大小这样的元数据,而非媒体数据3、auto:预加载浏览器认为适量的媒体内容(默认值)
autoplay为true时自动播放媒体,此属性为true相当于高度浏览器需要预加载媒体内容

在标签上添加controls属性可以添加默认的音频控件,如果不满意可以通过上面的属性和下面的状态自定义控件。

keyvalue
paused如果是暂停状态,返回true
seeking如果播放器正跳到一个新的播放点,返回true
ended播放完毕并且停下来了返回true
duration媒体时长,单位秒,如果在元数据未加载之前查询此属性,返回NaN
initialTime已经缓存的数据的最早时间以及能够回退到的最早时间
played返回已经播放的时间段
buffered返回当前已经缓冲的时间段
seekable返回当前播放器需要跳到的时间段

以上涉及到时间段的字段返回的都是TimeRanges对象,包含length属性和start()/end()方法,length指当前的一个时间段,start()和end()指当前时间段的起始时间点和结束时间点

媒体事件

事件类型描述
loadstart当媒体元素开始请求媒体资源的时候触发
progress正在通过网络加载媒体资源的时候触发,此事件一般每秒触发2-8次
loadedmetadata元数据加载完毕时触发
loadeddata当前播放位置的媒体内容首次加载完毕
canplay已经加载一些媒体内容,可以开始播放,但需要缓冲更多数据,此时readyState为HAVE_CURRENT_DATA
canplaythrough所有媒体内容已加载完毕,可以流畅播放
suspend已经缓冲大量数据,可以暂停下载,此时NetworkState为NETWORK_IDLE
stalled尝试加载数据,但无法获取到数据,此时NetworkState为NETWORK_LOADING
play调用play()方法或设置相应的autoplay属性为true时触发,如果已经加载了足够多的缓存,紧接着会触发palying事件,否则触发waiting事件
waiting由于未缓存足够的数据,导致播放未能开始或者播放停止
playing已经开始播放媒体文件
timeupdatecurrentTime属性发生改变时触发,此事件每秒会触发4-60次
pause调用pause()方法时触发
seeking通过脚本或用户通过播放控件将当前播放时间调至一个还未缓冲的时间点,导致在内容没有加载完时,停止播放。此时seeking属性值为true
seekedseeking值又变为false
ended播放完毕时,播放停止时触发
durationchangeduration属性发生变化时触发
volumechange声音发生变化时触发
ratechangeplaybackRate或defaultPlaybakcRate发生改变时触发
abort用户要求停止加载媒体内容时触发,此时error.code为MEDIA_ERR_ABORTED
error由于发生网络错误或者其它错误阻止媒体内容的加载时触发,此时error.code不会是MEDIA_ERR_ABORTED
emptied发生了错误或者中止,导致networkState属性值又变回MEDIA_ERR_ABORTED

第三方

不知道有没有更好的替代品
音频使用雅虎播放器
雅虎媒体播放器为您的用户提供的是一个小型的播放按钮,而不是完整的播放器。不过,当您点击该按钮,会弹出完整的播放器。
请注意,这个播放器始终停靠在窗框底部。只需点击它,就可将其滑出。

<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>

视频使用优酷播放器
如果您希望在网页中播放视频,那么您可以把视频上传到优酷等视频网站,然后在您的网页中插入 HTML 代码即可播放视频:

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

之后有时间自己定义一个视频、音频的播放器。

排他算法

虽然vue有别的写法,但我觉得还是学习一下的好,js的基础真的太薄弱了。
排他算法的思路就是先将所有元素去除,然后为当前元素添加。

// 获取所有.item元素
let items=document.querySelectorAll('.item');

// 设置选中态样式
function setActive(){
    // 遍历所有.item元素,移出active样式
    items.forEach((item)=>{
        item.classList.remove('active');
    })
    // 为当前选中项添加active样式
    this.classList.add('active');
}
// 遍历所有.item元素,分别为其设置点击事件
items.forEach((item)=>{
    item.addEventListener('click',setActive);
})

可以封装成函数

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);
	    })
	    // 为当前选中项添加active样式
	    this.classList.add(selector);
	}
}

一些css样式

css真的有太多没见过的属性了,艾恩小灰灰让我大开眼界。

  1. background-size
/* 背景图片保持原有尺寸比例,裁切长边 */
  background-size: cover;
  1. object-fie
  /* 保持原有尺寸比例,裁切长边 */
  object-fit: cover;
  1. scroll-snap-type

father{
	  /* 设置滚动贴合的方式:沿Y轴滚动 mandatory表示强制滚动 */
  scroll-snap-type: y mandatory;
  /* 需要把滚动条设置到直接父容器,scroll-snap-type才能生效 */
  /* 溢出时,垂直保留滚动条,水平隐藏滚动条 */
  overflow-y: scroll;
  overflow-x: hidden;
}

son {
	/* 设置下一页的内容会滚动贴合到顶部 */
  scroll-snap-align: start;
}

其实并没有太多新的css属性,主要原因在于某些css的组合做出了漂亮的效果。

font-awesome

虽然有阿里的icon-font,但多学一个总是不亏的。
这也是一个字体图标库。
很详细很基础的教程,与阿里的icon-font差别不大
font-awesome基础用法

转载自CSDN-专业IT技术社区

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接: https://blog.csdn.net/m0_66711291/article/details/126900886

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--

PHP网站源码大庆网站设计模板盐田seo优化大同模板网站建设成都百度网站优化排名多少钱黑河网站优化推荐枣庄外贸网站制作哪家好赣州模板推广报价亳州网络推广马鞍山seo网站推广报价湘潭关键词按天收费公司咸宁网站改版公司南昌如何制作网站哪家好昆明网站排名优化公司邯郸百度关键词包年推广多少钱淄博百度seo报价洛阳模板网站建设多少钱德阳设计网站多少钱聊城百度关键词包年推广哈尔滨优秀网站设计推荐鸡西关键词按天收费价格资阳百度seo重庆seo排名报价武汉推广网站多少钱沧州seo网站推广报价聊城营销网站光明网站制作设计多少钱台州网站搭建昌都网站优化按天扣费公司坂田网站设计模板公司南昌SEO按天收费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化