“约会”的总结
来源:互联网 发布:html转xml python 编辑:程序博客网 时间:2024/05/16 04:49
最近在慕课网上看到一个关于七夕言情的小短片,觉得蛮有意思的,于是自己用原生JS实现了一遍。
整个短片分为三个场景:场景一是小男孩悠闲的走在路上;场景二是小男孩去花店买花;场景三是小男孩前往桥上与小女孩约会。大致的情景如下图所示。
情景一(闲逛):
情景二(买花):
情景三(约会):
分析:
整体布局:三个场景是连贯的,所以可以组织在一个“ul列表”里面,但是每次只显示一个情景,所以列表可以放在一个“div容器”当中,控制显示的宽度,而小男孩是贯穿整个场景的,不是位于某一个场景里的,所以“小男孩”可以与ul列表并列放在容器当中。
场景一:我们可以发现场景一里面除了“背景图片”和小男孩之外还有移动的“云”和“太阳”;
场景二:场景二中有“背景图片”“门”、“飞鸟”,细心的朋友会发现小男孩进花店的时候店右边墙上的灯点两个,其实这是监听到小男孩走到花店时将背景图换了;
情景三:三中有“背景图片”、“闪烁的小星星”、“荡漾的水波”及“女主角”。
根据上面的分析,可以搭出整个情景图的html结构如下:
<body> <!-- 设置100%宽高 --> <div id="theme" class="theme"> <ul id="content" class="content"> <li> <div class="backgroundA"> <img src="images/A.png" alt="图片一"> <!-- 云 --> <div class="cloud"> <div class="cloud1"></div> <div class="cloud2"></div> </div> <!-- 太阳 --> <div class="sun"></div> </div> </li> <li> <div class="backgroundB"> <img id="imgB" src="images/B-dark.png" alt="图片二"> <!-- 门 --> <div id="door" class="door"> <img id="leftDoor" class="leftDoor" src="images/door-left.png" alt="左门"> <img id="rightDoor" class="rightDoor" src="images/door-right.png" alt="右门"> </div> <!-- 小飞鸟 --> <div id="bird" class="bird"></div> </div> </li> <li> <div class="backgroundC"> <img src="images/C.png" alt="图片三"> <!-- 小女孩 --> <div id="girl" class="girl"></div> <!-- 小星星 --> <div class="stars"> <div class="star1"></div> <div class="star2"></div> <div class="star3"></div> <div class="star4"></div> </div> <!-- 水 --> <div class="water"> <div class="water1"></div> <div class="water2"></div> <div class="water3"></div> <div class="water4"></div> </div> </div> </li> </ul> <!-- 小男孩精灵图,通过修改background-position来达到走路的效果 --> <div id="boy" class="boy-walk"></div> </div></body>
其中,
小男孩走路的动作、云移动、太阳落下、小鸟拍翅膀、星星闪烁、水波荡漾及男女孩转身都是通过CSS3的动画animation实现的;
小男孩向前走动、背景图片移动、门的开关及小鸟向前飞行都是通过CSS3的过渡transition实现的。
整个情景实现的难点就是在什么时候进行下一个动画,这个时候就要采用JS的事件监听,为上一个动作的完成添加过渡完成事件,addEventListener(“transitionend”,function); 表示上一动作过渡完后执行function函数。
还用到了html5中的插入音频的方法,先通过var audio = new Audio(“url”); 传入音频的地址,定义一个音频对象;然后设置是否循环播放audio.loop = loop || false; 最后设置播放audio.play();即可。
整个实现我近两天整理完成放到github上:https://github.com/DreamFJ/JavascriptDemo
- “约会”的总结
- 一位情场高手总结的“约会秘籍”
- 青蛙的约会【数学算法总结】
- 2017.9.27 青蛙的约会 失败总结
- 《约会专家》片尾【约会宝典】总结
- 福尔摩斯的的约会
- 昨晚的那个约会
- 青蛙的约会
- PKU1061 青蛙的约会
- [1061]青蛙的约会
- 第一次约会的投票
- 青蛙的约会
- pku1061青蛙的约会
- 青蛙的约会
- 青蛙的约会
- 飘飘乎居士的约会
- poj1061青蛙的约会
- 青蛙的约会
- Android中如何搭建一个WebServer
- Linux学习笔记 --- 更换yum源
- [BZOJ2338][HNOI2011]数矩形
- 三Spring中Bean的基础配置1
- 无线网中一些约定俗成的时延估量
- “约会”的总结
- 记人生第一天实习的前一天
- numpy 基础 —— np.linalg
- tomcat 内存溢出
- 百度地图的使用(2)
- mybatis中怎么使用like形成动态模糊查询,错误使用CONCAT拼接sql的看过来
- [LintCode]Swap Two Nodes in Linked List
- numpy中的数学与统计方法
- Android7.0成长之路---新特性Jack server