网易新闻\u003c滑向童年\u003e中的视觉效果是咋做的
网易的这个滑向童年应该是使用canvas绘制的类似视差滚动的效果,简单考虑的话,这种动画,页面中各种不同的图片/元素的都可以用一个固定范式来描述:
1.物体初始状态 =》 物体终止状态/物体偏移量状态包括 颜色 宽高 位置 透明度,层级等等。
2. 物体处于初始状态的滚动位置 (相对于全屏)3.物体处于终止状态的滚动位置4.视差滚动总长度。
这样比如我描述一个行为:一个盒子从页面顶部到页面底部1000px内,右移1000px,就可以用下面这个简单的dsl描述: var list = { elem:\u0026#39;box\u0026#39;, style:\u0026#39;left\u0026#39;, scrollStart:0, scrollEnd:1000, styleVal:1000, }
简单的demo:背景固定
demo是使用dom做的,使用canvas只需要不断的获取到偏移量然后drawimage就好啦
■网友
没有仔细看代码,不过几年前用createjs实现过不少类似的H5。
做法是监听stagemousemove(类似于dom的mousemove、touchmove)的同时,去调用tweenjs的gotoAndStop函数,实现对特定时间点的帧动画切换,手指在stage上move的长度对应着一定数量的帧动画。
【网易新闻\u003c滑向童年\u003e中的视觉效果是咋做的】 著名钢琴家李坚钢琴独奏音乐会邀请函 (在H5轮播的区域切换中,帧动画精确的随手指移动)
同时,也可以使用createjs.Ticker实现某一帧到某一帧的动画片段的进行过程。
2015联想手机爱你有我(这个和网易这个还是比较类似的,使用stagemousemove监听调用播放即为滑动播放)
亚马逊物流,通关赢大奖(一个略微复杂的广告类游戏,将大大小小的动画片段组织起来)
当时是使用flash动画(adobe flash cc)+内置js脚本导出包含各个动画片段的js代码,然后在自己的js中以play,stop,gotoAndStop等函数调用即可,对会flash动画的同学来说还是很方便的(也不需要使用ActionScript);
现在啊逗比出了Animate CC,应该会更加方便了吧(现在不做动画了,没怎么用Animate CC,不太清楚实际使用情况)。
推荐阅读
- 『黄金时间』12月8日晚锁定江苏公共新闻频道《黄金时间》 建设“节水优先”的水乡江苏
- 《宿北大战》纪录片在宿豫开机
- 搜狐新闻|欧拉好猫10.38万起贵不贵?我们采访了一位男性KOL发现……| 聚闻
- 封面新闻|耀出行:滴滴解决你代步的“温饱”问题,我来满足你出行的仪式感需求
- 界面新闻|不会吧?DS 9在欧洲竟然和宝马5系卖得一样贵
- 搜狐新闻|汽车行业迎来变更!我国已有省份禁售燃油车,燃油车还能挺几年?
- 目前哪些门户网站的新闻质量相对较高
- 为啥网易可以转发假新闻甚至传谣而不用担心承担责任
- 基于OGRE的NeoAxis3D引擎和网易的NeoX引擎有啥关系吗
- 搜狐新闻|奔驰G级艺术车国内首发,车市高端局是啥样?