中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5怎么實現有趣的海浪效果

發布時間:2022-03-11 16:44:50 來源:億速云 閱讀:176 作者:iii 欄目:web開發

今天小編給大家分享一下HTML5怎么實現有趣的海浪效果的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

  1、創建觸發條件(按鈕)

  ="Beisizer()"//點擊時觸發JS事件

  οnmοuseοver="bcd()"//鼠標經過時JS事件

  οnmοuseleave="out()"//鼠標離開時JS事件

  id="Anniu">確&nbsp?&nbsp&nbsp&nbsp&nbsp&nbsp?&nbsp&nbsp&nbsp&nbsp定

  2、創建畫布Canvas

  3、創建JS事件(屬性設置)//獲取畫布

  var?beisizer?=?document.getElementById("Theback");?var?ContenofBeisizer?=?beisizer.getContext("2d");?//設置波浪海域(海浪寬度,高度)

  var?beisizerwidth?=?beisizer.width;?var?beisizerheight?=?beisizer.height;?var?beisizerlinewidth?=?2;//曲線

  var?sinX?=?0;?var?sinY?=?beisizerheight/2.0;//軸長

  var?axisLenght?=?beisizerwidth;//弧度寬度

  var?waveWidth?=?0.014;//海浪高度

  var?waveHeight?=?beisizerheight?/?15.0;

  ContenofBeisizer.lineWidth?=?beisizerlinewidth;

  4、畫貝塞爾曲線var?drawSin?=?function?(xofspeed)?{

  ContenofBeisizer.save();//存放貝塞爾曲線的各個點

  var?points?=?[];

  ContenofBeisizer.beginPath();//創建貝塞爾點

  for?(var?x?=?sinX;x?

  var?y?=?-Math.sin((sinX+x)*waveWidth+xofspeed);//?points.push([x,sinY?+?y?*?waveHeight]);?測試請解開注釋,注釋下一行

  points.push([x,rand+y*waveHeight]);

  //ContenofBeisizer.lineTo(x,sinY?+?y?*?waveHeight);測試請解開注釋,注釋下一行

  ContenofBeisizer.lineTo(x,rand?+?y?*?waveHeight);

  }

  ContenofBeisizer.lineTo(axisLenght,beisizerheight);

  ContenofBeisizer.lineTo(sinX,beisizerheight);

  ContenofBeisizer.lineTo(points[0][0],points[0][1]);

  ContenofBeisizer.stroke();

  ContenofBeisizer.restore();?//貝塞爾曲線樣式設置

  ContenofBeisizer.strokeStyle?=?"#3bc777";

  ContenofBeisizer.fillStyle?=?"#3bc777";

  ContenofBeisizer.fill();

  };這一段代碼已經完成靜態貝賽爾曲線的繪制了,可以通過解開以下語句嘗試運行看下效果。

  var y = -Math.sin((sinX+x)*waveWidth);

  points.push([x,rand+y*waveHeight]);

  var y = -Math.sin((sinX+x)*waveWidth+xofspeed);

  運行方法執行 drawSin()

  靜態貝塞爾曲線。png

  5、海浪效果的實現

  需要在屬性中加入一下代碼進行速率的設置

  var speed = 0.1; 數值越大速率越快

  var xofspeed = 0; ?波浪橫向的偏移量

  var rand = beisizerheight;波浪高度var?rendY?=?function?()?{

  ContenofBeisizer.clearRect(0,0,beisizerwidth,beisizerheight);//控制海浪高度

  var?tmp?=?0.1;

  rand-=tmp;var?b?=?beisizerheight?-?rand;

  //控制循環漲潮

  if?(parseInt(b)==beisizerheight){

  rand?=?beisizerheight;

  }

  drawSin(xofspeed);

  drawSinl(xofspeed);

  xofspeed?+=?speed;

  requestAnimationFrame(rendY);

  };通過調用自身產生不同的高度,來產生海浪效果。這里設置的屬性值配合第四步畫貝塞爾曲線一起進行理解。

  運行方式 rendY();

以上就是“HTML5怎么實現有趣的海浪效果”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘德县| 新田县| 西青区| 信宜市| 玉树县| 友谊县| 定兴县| 涞水县| 温泉县| 富宁县| 旬阳县| 深圳市| 年辖:市辖区| 建水县| 贵阳市| 四会市| 太仓市| 防城港市| 桦川县| 三原县| 临江市| 聊城市| 长白| 湟源县| 涟水县| 鹤壁市| 迭部县| 子长县| 罗城| 东丽区| 阜新| 韩城市| 织金县| 玉溪市| 浏阳市| 四子王旗| 汉沽区| 湟源县| 丰县| 克拉玛依市| 庆元县|