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 相关文章推荐
DOM 脚本编程中的兄弟节点
Oct 31 Javascript
用jQuery中的ajax分页实现代码
Sep 20 Javascript
JS中prototype的用法实例分析
Mar 19 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
Jan 22 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
Mar 05 Javascript
详解bootstrap导航栏.nav与.navbar区别
Nov 23 Javascript
vue input输入框模糊查询的示例代码
May 22 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
JS实现十分钟倒计时代码实例
Oct 18 Javascript
JavaScript内置对象math,global功能与用法实例分析
Jun 10 Javascript
openlayers实现地图弹窗
Sep 25 Javascript
js实现菜单跳转效果
Dec 11 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
ajax php 实现写入数据库
2009/09/02 PHP
PHP 面向对象 PHP5 中的常量
2010/05/05 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
Javascript中对象继承的实现小例
2014/05/12 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
如何实现chrome浏览器关闭页面时弹出“确定要离开此面吗?”
2015/03/05 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
web 前端常用组件之Layer弹出层组件
2016/09/22 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
python查询mysql中文乱码问题
2014/11/09 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
基于python实现生成指定大小txt文档
2020/07/20 Python
浅析关于Keras的安装(pycharm)和初步理解
2020/10/23 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
《商鞅南门立木》教学反思
2014/02/16 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
服务质量承诺书
2014/03/27 职场文书
学校安全责任书
2014/04/14 职场文书
作文评语集锦大全
2014/04/23 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
给老师的感谢信
2015/01/20 职场文书