婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于HTML代碼實現圖片碎片化加載功能

基于HTML代碼實現圖片碎片化加載功能

熱門標簽:貴陽ai外呼系統 長春極信防封電銷卡公司 智能電銷機器人廣告語 重慶人工智能電銷機器人報價 強訊外呼系統 電銷外呼線路改不外呼線路 愛巢地圖標注 crm外呼系統好不好 電話機器人批發

今天來實現一個圖片碎片化加載效果,效果如下:

 

我們分為 3 個步驟來實現:

  • 定義 html 結構
  • 拆分圖片
  • 編寫動畫函數

定義html結構

這里只需要一個 canvas 元素就可以了。

<html>
  <body>
    <canvas
      id="myCanvas"
      width="900"
      height="600"
      style="background-color: black;"
    ></canvas>
  </body>
</html>

拆分圖片

這個例子中,我們將圖片按照 10 行 10 列的網格,拆分成 100 個小碎片,這樣就可以對每一個小碎片獨立渲染了。

let image = new Image();
image.src = "https://cdn.yinhengli.com/canvas-example.jpeg";
let boxWidth, boxHeight;
// 拆分成 10 行,10 列
let rows = 10,
  columns = 20,
  counter = 0;

image.onload = function () {
  // 計算每一行,每一列的寬高
  boxWidth = image.width / columns;
  boxHeight = image.height / rows;
  // 循環渲染
  requestAnimationFrame(animate);
};

requestAnimationFrame :告訴瀏覽器,你希望執行一個動畫,并且要求瀏覽器在下次重繪之前調用指定的回調函數更新動畫。

編寫動畫函數

接下來我們編寫動畫函數,讓瀏覽器在每一次重繪前,隨機渲染某個小碎片。

這里的核心是 context.drawImage 方法。

let canvas = document.getElementById("myCanvas");
let context = canvas.getContext("2d");

function animate() {
  // 隨機渲染某個模塊
  let x = Math.floor(Math.random() * columns);
  let y = Math.floor(Math.random() * rows);
  // 核心
  context.drawImage(
    image,
    x * boxWidth,  // canvas 中橫坐標起始位置
    y * boxHeight, // canvas 中縱坐標起始位置
    boxWidth,      // 畫圖的寬度(小碎片圖像的寬)
    boxHeight,     // 畫圖的高度(小碎片圖像的高)
    x * boxWidth,  // 從大圖的 x 坐標位置開始畫圖
    y * boxHeight, // 從大圖的 y 坐標位置開始畫圖
    boxWidth,      // 從大圖的 x 位置開始,畫多寬(小碎片圖像的寬)
    boxHeight      // 從大圖的 y 位置開始,畫多高(小碎片圖像的高)
  );
  counter++;
  // 如果模塊渲染了 90%,就讓整個圖片顯示出來。
  if (counter > columns * rows * 0.9) {
    context.drawImage(image, 0, 0);
  } else {
    requestAnimationFrame(animate);
  }
}

完整代碼

<html>
  <body>
    <canvas
      id="myCanvas"
      width="900"
      height="600"
      style="background-color: black;"
    ></canvas>
    <script>
      let image = new Image();
      image.src = "https://cdn.yinhengli.com/canvas-example.jpeg";
      let canvas = document.getElementById("myCanvas");
      let context = canvas.getContext("2d");
      let boxWidth, boxHeight;
      let rows = 10,
        columns = 20,
        counter = 0;

      image.onload = function () {
        boxWidth = image.width / columns;
        boxHeight = image.height / rows;
        requestAnimationFrame(animate);
      };

      function animate() {
        let x = Math.floor(Math.random() * columns);
        let y = Math.floor(Math.random() * rows);
        context.drawImage(
          image,
          x * boxWidth, // 橫坐標起始位置
          y * boxHeight, // 縱坐標起始位置
          boxWidth, // 圖像的寬
          boxHeight, // 圖像的高
          x * boxWidth, // 在畫布上放置圖像的 x 坐標位置
          y * boxHeight, // 在畫布上放置圖像的 y 坐標位置
          boxWidth, // 要使用的圖像的寬度
          boxHeight // 要使用的圖像的高度
        );
        counter++;
        if (counter > columns * rows * 0.9) {
          context.drawImage(image, 0, 0);
        } else {
          requestAnimationFrame(animate);
        }
      }
    </script>
  </body>
</html>

總結

通過這個 Demo,我們使用了 canvasAPI 實現了圖片的碎片加載效果,是不是特別簡單!

到此這篇關于基于HTML代碼實現圖片碎片化加載功能的文章就介紹到這了,更多相關html圖片碎片化加載內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持腳本之家!

標簽:保定 內蒙古 山南 吳忠 廣安 陜西 清遠 上海

巨人網絡通訊聲明:本文標題《基于HTML代碼實現圖片碎片化加載功能》,本文關鍵詞  基于,HTML,代碼,實現,圖片,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于HTML代碼實現圖片碎片化加載功能》相關的同類信息!
  • 本頁收集關于基于HTML代碼實現圖片碎片化加載功能的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕一区二区三区蜜月| 成人动漫在线一区| 日本女优在线视频一区二区| 欧美性生活大片视频| 国产精品麻豆99久久久久久| 粉嫩一区二区三区在线看| 2023国产精品| 国产成人激情av| 中文字幕五月欧美| 在线看日本不卡| 日本麻豆一区二区三区视频| 日韩欧美另类在线| 极品美女销魂一区二区三区| 久久久精品中文字幕麻豆发布| 国产精品亚洲成人| 中文字幕乱码亚洲精品一区| 播五月开心婷婷综合| 亚洲电影一区二区三区| 欧美一区二区三区影视| 国产成人精品aa毛片| 亚洲一区二区三区视频在线| 亚洲精品免费在线| 欧美性欧美巨大黑白大战| 久久精品国产精品亚洲精品| 国产亚洲精品久| 91美女视频网站| 免费在线看成人av| 欧美精品一区二区三区一线天视频| 久久国产福利国产秒拍| 亚洲欧美一区二区久久| 欧美tk—视频vk| 91蜜桃网址入口| 蜜臀久久99精品久久久画质超高清| 久久精品一区八戒影视| 欧美伊人精品成人久久综合97| 久久狠狠亚洲综合| 亚洲免费观看高清在线观看| 精品国产一区二区精华| 在线观看国产一区二区| 国产曰批免费观看久久久| 一区二区三区免费在线观看| 亚洲精品国产一区二区三区四区在线| 日韩欧美区一区二| 欧美日韩国产首页| 99久久精品免费精品国产| 国产原创一区二区三区| 奇米影视一区二区三区小说| 亚洲综合激情网| 中文字幕日韩精品一区| 久久亚洲一区二区三区四区| 欧美精品18+| 日本精品视频一区二区三区| 成人小视频在线| 久久国产精品99精品国产| 日韩av一二三| 亚洲大片免费看| 亚洲精品菠萝久久久久久久| 国产精品久久久久毛片软件| 精品视频免费在线| 色综合天天综合在线视频| 亚洲视频电影在线| 精品福利在线导航| 欧美www视频| 欧美酷刑日本凌虐凌虐| 欧美在线免费观看亚洲| 极品美女销魂一区二区三区免费| 最新热久久免费视频| 亚洲视频在线观看一区| 亚洲精品欧美综合四区| 亚洲国产精品精华液网站| 欧美mv和日韩mv的网站| 久久婷婷国产综合国色天香| 51午夜精品国产| 日韩欧美一区二区久久婷婷| 日韩美女天天操| 国产亚洲精品aa午夜观看| 狠狠色狠狠色综合系列| 日本va欧美va瓶| 经典三级视频一区| 国产999精品久久| 韩国精品主播一区二区在线观看 | 制服丝袜av成人在线看| 日本二三区不卡| 色先锋aa成人| 日本高清不卡视频| 在线欧美日韩精品| 色婷婷国产精品| 欧美日韩免费视频| 欧美videofree性高清杂交| 亚洲精品一区二区三区影院| 国产日韩欧美制服另类| 国产精品欧美一区二区三区| 樱桃国产成人精品视频| 欧美精品在线一区二区三区| 日韩欧美精品在线视频| 国产欧美一区二区精品性| 国产精品萝li| 亚洲三级电影全部在线观看高清| 亚洲国产成人porn| 奇米色一区二区| 成人影视亚洲图片在线| 3atv一区二区三区| 国产精品天美传媒| 手机精品视频在线观看| 成人午夜短视频| 欧美日韩二区三区| 国产欧美日韩精品在线| 亚洲一区二区三区国产| 国产精品 日产精品 欧美精品| 欧美日本不卡视频| 91福利在线免费观看| 精品嫩草影院久久| 亚洲另类中文字| 美腿丝袜一区二区三区| 91亚洲国产成人精品一区二区三| 欧美一级欧美一级在线播放| 国产精品美女久久福利网站| 日韩电影在线免费| 91麻豆产精品久久久久久 | 亚洲一区二区不卡免费| 久久国产精品99精品国产| 欧美性色综合网| 国产精品久久久久一区| 国产一区在线看| 91福利区一区二区三区| 一区视频在线播放| 91福利在线导航| 中文字幕第一页久久| 九九视频精品免费| 在线免费亚洲电影| 欧美韩日一区二区三区四区| 日韩二区在线观看| 国产精品女人毛片| 久久精品国产亚洲a| 欧美视频一区二区三区四区| 亚洲视频 欧洲视频| 国产黄色成人av| 日韩欧美精品在线| 精品在线观看免费| 91福利社在线观看| 亚州成人在线电影| 91国内精品野花午夜精品| 亚洲激情av在线| 欧美日韩精品一区二区| 自拍偷拍欧美激情| 日韩欧美电影在线| 久久国内精品视频| 国产日韩欧美亚洲| 不卡一区二区三区四区| 国产精品免费久久| 91老师国产黑色丝袜在线| 一区二区三区不卡视频| 欧美放荡的少妇| 国产专区综合网| 一区在线中文字幕| 在线观看不卡视频| 日本大胆欧美人术艺术动态| 欧美va亚洲va在线观看蝴蝶网| 国产99久久久国产精品| 中文字幕第一区综合| 日本久久电影网| 麻豆免费看一区二区三区| 久久综合丝袜日本网| jizz一区二区| 天堂一区二区在线| 亚洲国产精品黑人久久久| 色哟哟一区二区三区| 免费观看在线综合| 欧美国产精品专区| 欧美伊人精品成人久久综合97| 麻豆专区一区二区三区四区五区| 2021久久国产精品不只是精品| 色婷婷久久综合| 久久99九九99精品| 国产精品久久久久久户外露出| 欧日韩精品视频| 国产乱淫av一区二区三区| 亚洲一区二区三区影院| 亚洲午夜视频在线| 欧美成人三级电影在线| 成人高清免费在线播放| 日日摸夜夜添夜夜添精品视频| 欧美经典三级视频一区二区三区| 在线一区二区三区做爰视频网站| 九九视频精品免费| 亚洲国产精品久久艾草纯爱| 日本一区二区高清| 欧美一区二区三区男人的天堂| 成人ar影院免费观看视频| 日本在线不卡视频| 亚洲综合图片区| 中文字幕欧美日韩一区| 日韩欧美视频一区| 91福利国产精品| 99久精品国产| 国产精品资源网站| 捆绑调教美女网站视频一区| 亚洲国产成人91porn| 亚洲精品日日夜夜| 日韩理论在线观看|