css3动画项目

​​​​​​                                                           css3动画练习

接触前端已经有一段时间了,自己最近也做了一个有关于css3项目的练习,

https://github.com/whocareit/web-study这个是我传到git上的源码,https://show.metinfo.cn/muban/res022/349/#contact这个是模板。

虽然大体上我已经实现了模板,但是在细节上还有很多的不足,还需要自己不断的修改。下面就是我就在这个项目上遇到的问题与我解决这个项目的办法。

1.在看到这个项目后,想的就是如何实现这个滚动换屏的功能,这儿我也是参照人家的源码缩写,用的是jq的一款插件,fullpage.js,在网上有各种的关于这个插件的引用与使用方法,http://www.dowebok.com/77.html,这个是我参照其中一个。在这里要重点的掌握的是一下的这两个函数,因为在整个这个项目中,利用此函数是整个项目功能实现的基础。

2.将这一切弄好后,就可以开始项目了,首先,就是这个网页中你每刷新一次就会出现的背景图片,由出现到消失的过程。如下图

要实现这个很自然而然的就会想到就是用css3,通过opacity的设置来实现这个转化,其次要注意的是要想每次刷新都会出现这个页面,所以要将此页面的z-index设置最大,然后要将这个页面的z-index设置到0。

3.页面导航栏的导航栏中颜色的变化,如下图

 在这里是导航栏中字体与图片的颜色变化,这里需要用的就是上面所说的onLeave函数,

这里就是第一个页面到第二个页面这个过程中样式的变化设置,在这里我使用的jq来写的。还需要注意到的是,我这儿使用的是结合着css3中的transition一起来使用的,在http://www.w3school.com.cn/css3/css3_transition.asp中,所举的例子都是在hover下实现的,而在此项目中,过滤效果的实现大都采用的是与js相结合,

在这里我设置transition,在js代码中体现出width的变化,再结合transition就可以实现页面中的过滤效果。

4.页面中的轮播,

 关于轮播在网上有很多的例子与模板,关键是其中的动画转化,在这里需要的就是在js中去加上此部分,就是一张图片转化一次,页面的样式就得转化一次,这儿就是使用jq中的addClass与removeClass,在css中设置好动画的变化,然后就通过上面说的这个两个方法去实现。这里由于我的轮播方法是写的不怎么好,都是网上找的最简单的轮播,加上自己给弄出来了点bug就不展示了。

5.当我做完第一个页面后,我对于css3的认识就已经基本会用了,当然就很轻松的完成了第二张页面。第三张页面,是我遇到的一个比较大的问题了,第一,就是它需要设置轮播,第二就是每一张页面的转化过程需要实现的动画的变化,第三就是每一段文字的改变后,其图片也需要跟着改变。

  首先对于轮播,我采用的还是第一张页面的布局方式,说到布局方式,这里我实现轮播布局的时候,还使用了flex布局,这里我参考的是http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html,这里有关于flex的语法与使用的实际例子。具体的话,最好的明白方式就是照着这里面的代码,自己敲一敲,然后理解。对于第二个问题,动画的实现过程,这里由于我没有采用addClass和removeClass而是用的过滤,在css中用的transition在js中体现每一个标签的变化效果,所以,在这里我使用的就非常的繁琐,看起来就比较乱。

 这里的代码就仅仅是我轮播的第一个页面使用的样式,还有还有很多。因此,我会在接下的时间,将这部分的代码进行优化,这里就仅仅是我实现这个页面所用的代码而已。对于第三个问题,在最初的时候,我想的是将图片设置在li中,可是在这里产生了一个大的问题,那就是我这里的li的宽高并不是全屏的,它仅占整个页面的一小部分,因此就不能实现这个效果了。因而在这里我就将图片在html页面中直接引入,这样再结合着js就可以轻松的将页面中的图片跟随着li的变换而变换。但是这样做的一个坏处就是我到现在还不知道怎么实现这个图片的过滤。

 6.在第5个页面中,我用的是transition再加上hover实现的,首先是点击事件实现页面的左右切换,说到点击事件,当初在这里,由于没有用过jq,所以就参照的是js的语法来实现,结果事件并没有绑定上去,让我苦苦想了好久。最后还是找了我的朋友,才解决这个问题。第二就是当li:hover时,要实现就是有两个部分,第一所有的文字部分全部偏移,并且出现那个小方框,第二就是图片的缩小,加上图片的小白框的实现。要实现这个两个部分,就直接采用li:hover后,transition中加入transfrmd的scale和translate的变化,运用这两个就可以轻松实现了。

以上就是我在这个项目中所遇到的几个大问题,刚开始时,由于自己布局没弄好,再加上不太熟悉所以就花了很长的时间。还有自己的小懒惰。虽然最开始做的时候很难,但是到你最后明白会用时,就会很简单的做出,关键就是贵在坚持。

 此外在这个项目中,本应该涉及响应式布局的,但是由于自己在做最初项目时,已经用过了,这里就不叙述了。https://www.cnblogs.com/yanayana/p/7066948.html这个链接,是关于静态布局,响应式布局,流式布局,自适应布局的文档,看完这个文档后,我明白了这几种布局的差别。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值