javascript实现起伏的水波背景效果


Posted in Javascript onMay 16, 2016

本文实例为大家分享了js水波背景效果的实现代码,供大家参考,具体内容如下

效果图:

javascript实现起伏的水波背景效果

实现代码:

<!DOCTYPE html>
<html>
<head>
 <title>水波背景</title>
 <meta charset="gb2312" />
 <style>
 html, body {width:100%; height:100%; padding:0; margin:0;}
 </style>
</head>
<body>
 <canvas id="canvas" style="position:absolute;top:0px;left:0px;z-index:1;"></canvas>
 <script type="text/javascript">
  var canvas = document.getElementById('canvas'); 
  var ctx = canvas.getContext('2d'); 
  canvas.width = canvas.parentNode.offsetWidth; 
  canvas.height = canvas.parentNode.offsetHeight;
  //如果浏览器支持requestAnimFrame则使用requestAnimFrame否则使用setTimeout 
  window.requestAnimFrame = (function(){ 
  return window.requestAnimationFrame  || 
    window.webkitRequestAnimationFrame || 
    window.mozRequestAnimationFrame || 
    function( callback ){ 
     window.setTimeout(callback, 1000 / 60); 
    }; 
  })(); 
  // 波浪大小
  var boHeight = canvas.height / 10;
  var posHeight = canvas.height / 1.2;
  //初始角度为0 
  var step = 0; 
  //定义三条不同波浪的颜色 
  var lines = ["rgba(0,222,255, 0.2)", 
      "rgba(157,192,249, 0.2)", 
      "rgba(0,168,255, 0.2)"]; 
  function loop(){ 
   ctx.clearRect(0,0,canvas.width,canvas.height); 
   step++; 
   //画3个不同颜色的矩形 
   for(var j = lines.length - 1; j >= 0; j--) { 
    ctx.fillStyle = lines[j]; 
    //每个矩形的角度都不同,每个之间相差45度 
    var angle = (step+j*50)*Math.PI/180; 
    var deltaHeight = Math.sin(angle) * boHeight;
    var deltaHeightRight = Math.cos(angle) * boHeight; 
    ctx.beginPath();
    ctx.moveTo(0, posHeight+deltaHeight); 
    ctx.bezierCurveTo(canvas.width/2, posHeight+deltaHeight-boHeight, canvas.width / 2, posHeight+deltaHeightRight-boHeight, canvas.width, posHeight+deltaHeightRight); 
    ctx.lineTo(canvas.width, canvas.height); 
    ctx.lineTo(0, canvas.height); 
    ctx.lineTo(0, posHeight+deltaHeight); 
    ctx.closePath(); 
    ctx.fill(); 
   }
   requestAnimFrame(loop);
  } 
  loop(); 
 </script>
</body>
</html>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 Javascript
js格式化时间小结
Nov 03 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
javascript检测flash插件是否被禁用的方法
Jan 14 Javascript
JS实现图片的不间断连续滚动的简单实例
Jun 03 Javascript
在html中引入外部js文件,并调用带参函数的方法
Oct 31 Javascript
jQuery中Nicescroll滚动条插件的用法
Nov 10 Javascript
微信小程序 自己制作小组件实例详解
Dec 22 Javascript
JavaScript中localStorage对象存储方式实例分析
Jan 12 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
Vue源码分析之Vue实例初始化详解
Aug 25 Javascript
JavaScript函数柯里化
Nov 07 Javascript
JavaScript判断用户名和密码不能为空的实现代码
May 16 #Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
May 16 #Javascript
js流动式效果显示当前系统时间
May 16 #Javascript
JavaScript禁止复制与粘贴的实现代码
May 16 #Javascript
JavaScript代码性能优化总结(推荐)
May 16 #Javascript
AngularJS学习笔记之依赖注入详解
May 16 #Javascript
javascript表单事件处理方法详解
May 15 #Javascript
You might like
php不写闭合标签的好处
2014/03/04 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
PHP解决中文乱码
2017/04/28 PHP
js树形控件脚本代码
2008/07/24 Javascript
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
详解js静态资源文件请求的处理
2017/08/01 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
实习教师自我鉴定
2013/12/12 职场文书
会计专业自我鉴定
2014/02/10 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
校园元旦活动总结
2014/07/09 职场文书
电话客服工作职责
2014/07/27 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
四年级语文教学反思
2016/03/03 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
排查Tomcat进程假死的问题
2022/05/06 Servers