这个东西实际上慕课的艾伦大大先写的。

然后别人推荐给我,偶一直收藏着,然后偶再推荐给偶的队友们,然后呢,这帮货就懒得都不肯去看。。。

接着今天受伤在家就提出来了一点东西放在我博客顶上。。。

然后艾伦的原文呢在这里。http://www.imooc.com/learn/453

在开始前,按照惯例吐槽一下最近的状况吧!昨天我骑车完成第4起车祸。然后打字只能靠6根指头,还有脑袋也被来了一下。。。然后目测除了外伤,头疼之外无大碍!吐槽点在与,程序员骑车的时候想的还是代码。然后peng。最后既然入了这行了,还是别玩车了。。。T_T

飘花效果的实现

飘花的效果稍微复杂一点,有一定量的JavaScript代码,通过JS+CSS3的组合实现的。观察右边效果,可以大致分解飘花的实现

  • 飘花比人物的层级都高
  • 飘花数量非常多
  • 飘花会有一定的轨迹运动
  • 飘花带有渐变的效果
  • 飘花带有旋转的效果
  • 飘花落到地面会消失

这里采用的JS+CSS3的结合实现,CSS3实现旋转部分,首先从布局上来说,飘花是要比所有内部元素层级都要高,所以布局上是要与页面li平级才可以

实现原理:

通过定时器调用JS代码不断的动态创建雪花节点,随机选择一个图片作为其背景,赋予三个初始的样式属性top,left与opacity,通过transition动画过度的方式执行这3个属性的动画变化。整个原理其实也是很简单的,主要涉及了一些细节的问题:例如元素的创建、图片的随机、开始的left与opacity的随机处理、最终值的计算等等

执行的流程:

  • getImagesName随机6张图片,snowflakeURl定义一个地址的范围
  • createSnowBox创建雪花元素的节点,并且增加一个snowRoll的样式,也就是旋转的关键帧实现
  • 定时器设置200ms不断的生成雪花对象,计算出3个属性的初始值,通过createSnowBox创建雪花元素,并且附上初始值,然后执行transition附上最终值,执行动画
  • 动画结束后执行$(this).remove()  删除这个对象

然后精简一下代码,因为我只要飘花效果

    <div id='content'><!-- 飘花 --><div id="snowflake"></div></div>

获取外面#content的宽高

然后#snowflake里面做效果

#content { width: 100%; height: 100%; top: 42px;
overflow: hidden; position: absolute; }

然后么css么就是这样了,top:42px是因为我的导航高度

#snowflake { width: 100%; height: 100%; position: absolute; top: 0; left: 0; overflow: hidden; }
.snowRoll { position: absolute; opacity: 0; -webkit-animation-name: mysnow; -webkit-animation-duration: 20s; -moz-animation-name: mysnow; -moz-animation-duration: 20s; height: 80px; }@-webkit-keyframes mysnow {  0% {bottom: 100%;
}50% {-webkit-transform: rotate(1080deg);
}100% {-webkit-transform: rotate(0deg) translate3d(50px, 50px, 50px);
}
}@-moz-keyframes mysnow {  0% {bottom: 100%;
}50% {-moz-transform: rotate(1080deg);
}100% {-moz-transform: rotate(0deg) translate3d(50px, 50px, 50px);
}
}

这里是给飘花加旋转之类的css3特技

<script type="text/javascript">
$(function() {var snowflakeURl = ['http://images.cnblogs.com/cnblogs_com/LoveOrHate/723567/o_1.png','http://images.cnblogs.com/cnblogs_com/LoveOrHate/723567/o_2.png','http://images.cnblogs.com/cnblogs_com/LoveOrHate/723567/o_3.png','http://images.cnblogs.com/cnblogs_com/LoveOrHate/723567/o_4.png','http://images.cnblogs.com/cnblogs_com/LoveOrHate/723567/o_5.png','http://images.cnblogs.com/cnblogs_com/LoveOrHate/723567/o_6.png']  //js设置数组存储6张花瓣的图片  var container = $("#content");visualWidth = container.width();visualHeight = container.height();  //获取content的宽高

  /////飘雪花 /////function snowflake() {// 雪花容器var $flakeContainer = $('#snowflake');// 随机六张图function getImagesName() {return snowflakeURl[[Math.floor(Math.random() * 6)]];}// 创建一个雪花元素function createSnowBox() {var url = getImagesName();return $('<div class="snowbox" />').css({'width': 41,'height': 41,'position': 'absolute','backgroundSize': 'cover','zIndex': 100000,'top': '-41px','backgroundImage': 'url(' + url + ')'}).addClass('snowRoll');}// 开始飘花setInterval(function() {// 运动的轨迹var startPositionLeft = Math.random() * visualWidth - 100,startOpacity    = 1,endPositionTop  = visualHeight - 40,endPositionLeft = startPositionLeft - 100 + Math.random() * 500,duration        = visualHeight * 10 + Math.random() * 5000;// 随机透明度,不小于0.5var randomStart = Math.random();randomStart = randomStart < 0.5 ? startOpacity : randomStart;// 创建一个雪花var $flake = createSnowBox();// 设计起点位置
            $flake.css({left: startPositionLeft,opacity : randomStart});// 加入到容器
            $flakeContainer.append($flake);// 开始执行动画
            $flake.transition({top: endPositionTop,left: endPositionLeft,opacity: 0.7}, duration, 'ease-out', function() {$(this).remove() //结束后删除
            });}, 200);}snowflake()   //执行函数})
</script>

好了代码撸完了...最后分享个艾伦的博客

撸完代码了......然后单身狗没地方约......那就来个段子把

最近有个游戏+电视剧叫花千骨的东西。。。作为个动漫宅每天爱奇艺的广告都是这个鬼。。然后有一广告“花千骨的血可以使花草枯萎”

这个时候有神人表示,那么,经过那一夜,那位兄台现在是否安好,零部件是否有遗漏。。。

然后最后把需要用到的库发一下

一个jquery,,,这个看标题么就知道了

jQuery Transit还有这个东西

http://github.com/rstacruz/jquery.transit

jquery对一些效果的扩展

转载于:https://www.cnblogs.com/LoveOrHate/p/4731101.html

Jquery实现花瓣随机飘落(收藏自慕课网)相关推荐

  1. php 飘花 特效,jquery+css3实现网页背景花瓣随机飘落特效_javascript技巧

    飘花效果的实现--效果图: 需求: 一个jquery,,,这个看标题么就知道了 jQuery Transit还有这个东西 jquery对一些效果的扩展 飘花的效果稍微复杂一点,有一定量的JavaScr ...

  2. python做花瓣飘落的背景_jquery+css3实现网页背景花瓣随机飘落特效

    飘花效果的实现--效果图: 需求: 一个jquery,,,这个看标题么就知道了 jQuery Transit还有这个东西 jquery对一些效果的扩展 飘花的效果稍微复杂一点,有一定量的JavaScr ...

  3. python做花瓣飘落的背景_JavaScript_jquery+css3实现网页背景花瓣随机飘落特效,飘花效果的实现——效果图: - phpStudy...

    jquery+css3实现网页背景花瓣随机飘落特效 飘花效果的实现--效果图: 查看演示  源码下载 需求: 一个jquery,,,这个看标题么就知道了 jQuery Transit还有这个东西 jq ...

  4. jquery实现图片随机切换、抽奖功能

    jquery实现图片随机切换.抽奖功能 效果图: 源代码: HTML: <body><!-- 小像框 --> <div id="div1">&l ...

  5. 慕课网 前端JS面试技巧 笔记

    前言 关于面试 前端水平的三个层次 基层工程师-基础知识 高级工程师-项目经验 架构师- 解决方案 几个面试题 题目很多,做具有代表的题目,举一反三 js 中使用 typeof 能得到哪些类型 (== ...

  6. web--2048小游戏复现(慕课网)

    这周断断续续完成了2048小游戏的网页版,这里主要讲这款游戏的逻辑和代码实现. 参考:慕课网2048私人订制 https://www.imooc.com/learn/76 对着视频把源码敲了一遍,这里 ...

  7. Gecco定时抓取慕课网实战课入门

    一.Gecco是什么 Gecco是一款用java语言开发的轻量化的易用的网络爬虫,不同于Nutch这样的面向搜索引擎的通用爬虫,Gecco是面向主题的爬虫. 通用爬虫一般关注三个主要的问题:下载.排序 ...

  8. 慕课网,乐字节 Java电商秒杀项目

    慕课网.乐字节Java电商秒杀项目 技术点介绍: 前端:Thymeleaf,Bootstrap,Jquerry 后端:SpringBoot,MybatisPlus,Lombok 中间件:RabbitM ...

  9. 慕课网 饿了么 vue2.0 项目

    饿了么 vue 项目总结 项目效果预览 ele效果预览 项目源码地址 ele源码 跟着慕课网黄轶老师 敲饿了么 vue 项目 作者项目源代码地址 项目完成之后 npm run build 这本来是写在 ...

最新文章

  1. sock 文件方式控制宿主机_nginx与php-fpm通信的两种方式
  2. python字符串连接方式_Python 字符串连接方式有这么种,你知道吗?
  3. java try catch嵌套_解析Java中未被捕获的异常以及try语句的嵌套使用
  4. Mybatis运行原理及源码解析
  5. 实例变量和局部变量区别
  6. 14-容器网络之host和none
  7. 制作首页的显示列表(2017.11.29)
  8. 过滤器Filter与监听器Listener
  9. UVA 11624 BFS
  10. Eth-Trunk 链路聚合
  11. 北上杭是梦!“郑福贵”才是中国智慧城市的真相
  12. 高一必修一 第一单元
  13. Python模拟登陆京东
  14. 通过银行卡号获取所属银行
  15. matlab实现nc文件批量转tif文件
  16. 西蒙的管理决策理论—《可以量化的…
  17. Correct Sentence
  18. 无线通讯 - 5G芯片和5G模组区别
  19. Roof-line Model性能分析模型简介
  20. 博彦科技面试题-最新(上海)

热门文章

  1. pandas 将一行拆分为多行,将多行合并为一行
  2. 中控考勤机软件 v5.0绿色版
  3. 微信公众号中图文素材如何用CSS形式实现圆点等效果
  4. 【GraphMaker】Unity3D图表——柱状图、折线图、饼图
  5. 海康键盘简单使用命令
  6. 信安Note_day29
  7. 常见用户行为分析模型:归因分析
  8. Java工程师应届生工资一般多少
  9. 关于电子科技大学学生睡眠时间的调查报告
  10. matlab有shapely包吗,python binary lib on win/各种python库的二进制包