我现在要做一个类似这样的网页:tqlm.163.com/?from=nietop
其中有两个难度比较高的效果我目前不知道怎么做,一个是切换屏幕的时候背景图片会有液化消失的效果,一个是标题循环有一种电波闪现的效果。看了下代码是用canvas来实现。
求大神有没有类似的demo网站可提供参考。
其他效果我都能做出来,主要是这两个效果没有头绪跟资料做,里面的代码都压缩过,而且代码量太大很难提取出来。
<span style="font-size:18px;"><!DOCTYPE html>
<head>
<meta charset=utf-8>
<title>PHP100 HTML5视频教程-canvas-吹气球效果</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<canvas id="php100" width="500" height="200" ></canvas>
<br> <!-- 画布 -->
<script type="text/javascript">
var canvas = document.getElementById('php100'); //获取画布
var p100=canvas.getContext("2d"); //设置模式
var dir=0; //设置线条起点
var width=500; //要清除的矩形的宽度
var height=200; //要清除的矩形的高度
var exp=1; //像素移动的位置,正数向下,负数向上
p100.strokeStyle = "rgba(255,0,0,1)"; //定义颜色
function fff(){
p100.clearRect(0,0,width,height); //清除原始图形 0 0 表示矩形的左上角的X Y轴坐标
p100.fillStyle="red"; //定义颜色
p100.beginPath(); //从新开始画,防止冲突重叠
p100.arc(180,dir,dir,0,Math.PI*2,1); //x坐标,y坐标,半径,Math.PI是圆周率 半径也设置成圆点的位置就实现吹气球的效果
p100.closePath(); //结束画布,防止冲突重叠
p100.fill(); //结束渲染
dir=dir+exp; //向下移动
if(dir==0 || dir==height){
exp=exp*-1; //掉头位置//乘以负一用来调整线路方向
}
}
//setInterval(code,millisec) 按照指定的周期来调用函数,返回值为定时器的ID值 赋值给一个变量
//clearInterval(idofsetInterval)取消由setInterval()方法设置的定时器。
</script>
<button onclick="tt=setInterval(fff,20);">开始</button>
<button onclick="clearInterval(tt);">停止</button>
</body>
</html>
</span>
<head>
<meta charset=utf-8>
<title>PHP100 HTML5视频教程-canvas-吹气球效果</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
</head>
<body>
<canvas id="php100" width="500" height="200" ></canvas>
<br> <!-- 画布 -->
<script type="text/javascript">
var canvas = document.getElementById('php100'); //获取画布
var p100=canvas.getContext("2d"); //设置模式
var dir=0; //设置线条起点
var width=500; //要清除的矩形的宽度
var height=200; //要清除的矩形的高度
var exp=1; //像素移动的位置,正数向下,负数向上
p100.strokeStyle = "rgba(255,0,0,1)"; //定义颜色
function fff(){
p100.clearRect(0,0,width,height); //清除原始图形 0 0 表示矩形的左上角的X Y轴坐标
p100.fillStyle="red"; //定义颜色
p100.beginPath(); //从新开始画,防止冲突重叠
p100.arc(180,dir,dir,0,Math.PI*2,1); //x坐标,y坐标,半径,Math.PI是圆周率 半径也设置成圆点的位置就实现吹气球的效果
p100.closePath(); //结束画布,防止冲突重叠
p100.fill(); //结束渲染
dir=dir+exp; //向下移动
if(dir==0 || dir==height){
exp=exp*-1; //掉头位置//乘以负一用来调整线路方向
}
}
//setInterval(code,millisec) 按照指定的周期来调用函数,返回值为定时器的ID值 赋值给一个变量
//clearInterval(idofsetInterval)取消由setInterval()方法设置的定时器。
</script>
<button onclick="tt=setInterval(fff,20);">开始</button>
<button onclick="clearInterval(tt);">停止</button>
</body>
</html>
</span>
温馨提示:答案为网友推荐,仅供参考