成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

用canvas 寫出滴滴進(jìn)度條效果

hersion / 425人閱讀

摘要:最近學(xué)了點(diǎn),做了個(gè)滴滴的進(jìn)度條效果,由于本人未使用過滴滴,所以不太清楚該具體效果以及該頁(yè)面是怎樣的。這樣就有進(jìn)度條的效果了。進(jìn)度條圓的厚邊框,自行設(shè)置方法將繪圖狀態(tài)置為保存值。

最近學(xué)了點(diǎn)canvas,做了個(gè)滴滴的進(jìn)度條效果,由于本人未使用過滴滴,所以不太清楚該具體效果以及該頁(yè)面是怎樣的。yy出了以下效果:

先從簡(jiǎn)單的圓開始吧!

代碼:

let c = document.getElementById("myCanvas")
// getContext() 方法返回一個(gè)用于在畫布上繪圖的環(huán)境。
let ctx = c.getContext("2d")
// 起始一條路徑,或重置當(dāng)前路徑
ctx.beginPath()
// 創(chuàng)建弧/曲線(用于創(chuàng)建圓形或部分圓)
ctx.arc(100, 75, 50, 0, 2*Math.PI)
// 繪制已定義的路徑
ctx.stroke()

這里貼出arc()函數(shù)說明:

context.arc(x,y,r,sAngle,eAngle,counterclockwise);

有興趣的同學(xué)可以進(jìn)入鏈接查看更多屬性和方法: http://caibaojian.com/html5-c...

接下來我們繪制圓環(huán)以及動(dòng)畫:

let canvas = document.getElementById("myCanvas"),
    context = canvas.getContext("2d"),
    cirX = canvas.width/2,
    cirY = canvas.height/2,
    rad = Math.PI*2/100,
    n = 0,
    r = 45;

繪制圖形并生成動(dòng)畫:

function DreamLoading() {
  // clearRect() 方法清空給定矩形內(nèi)的指定像素。
  context.clearRect(0,0,canvas.width,canvas.height);
  writeCircle();
  writeText(n);
  writeOrange(n);
  if(n < 100) {
    n = n + 0.1
  } else {
    n = 100;
  }
  window.requestAnimationFrame(DreamLoading);
}

當(dāng)我們寫window.requestAnimationFrame(回調(diào)函數(shù))時(shí),瀏覽器會(huì)在下次重繪前執(zhí)行回調(diào)函數(shù)。這樣就有進(jìn)度條的效果了。

畫圓:

function writeCircle() {
  // 畫個(gè)圓
  // save() 方法把當(dāng)前狀態(tài)的一份拷貝壓入到一個(gè)保存圖像狀態(tài)的棧中。這就允許您臨時(shí)地改變圖像狀態(tài),然后,通過調(diào)用 restore() 來恢復(fù)以前的值。
  context.save();
  context.beginPath();
  context.strokeStyle = "#FF8C00";
  context.arc(cirX,cirY,r,0,Math.PI*2,false);
  context.stroke();
  context.restore();
}

進(jìn)度條:圓的厚邊框,lineWidth自行設(shè)置

function writeOrange(n) {
  context.save();
  context.strokeStyle = "#FF8C00";
  context.lineWidth = 3;
  context.beginPath();
  context.arc(cirX,cirY,r,-Math.PI/2,-Math.PI/2+rad*n,false);
  context.stroke();
  // restore() 方法將繪圖狀態(tài)置為保存值。
  context.restore();
}

文本,百分比效果:

function writeText(n) {
  context.save();
  context.strokeStyle = "#FF8C00";
  context.font = "20px Arail";
  context.strokeText(n.toFixed() + "%", cirX-30,cirY+10);
  context.stroke();
  context.restore();
}

百分比進(jìn)度條效果全部代碼:











倒計(jì)時(shí)效果代碼:

let minute = 1
      const Time = minute*60
      let second = 0
      render(minute, second)
      const interval = setInterval(() => {
        if (second < 60) {
          second--
          if (second < 0) {
            second = 59
            minute--
          }
        }
        if(minute == 0 && second == 0) {
            clearInterval(interval)
        }
        render(minute, second)
      },1000)

      function render(minute, second) {
        if (minute < 10) {
          document.querySelector(".minute").innerText = "0" + minute;
        } else {
          document.querySelector(".minute").innerText = minute;
        }
        if (second < 10) {
          document.querySelector(".second").innerText = "0" + second;
        } else {
          document.querySelector(".second").innerText = second;
        }
      }

完整代碼:

   


  
  
  
  Document
  


  
派單中
取消訂單
系統(tǒng)選擇司機(jī)

:

秒倒計(jì)時(shí)

不夠精確,在計(jì)算的時(shí)候有些錯(cuò)誤。希望同學(xué)們能一起解決。謝謝!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/50782.html

相關(guān)文章

  • 滴滴一下,小程序?qū)\噥砹?/b>

    摘要:功能三滴滴費(fèi)用計(jì)算古人云細(xì)節(jié)決定成敗,一個(gè)良好的微信小程序往往就是一些細(xì)節(jié)打動(dòng)人心,居然是模仿,雖做不到百分百,至少還是很希望一模一樣。 最近時(shí)常感嘆道:時(shí)間總是那么的快,轉(zhuǎn)瞬即逝。對(duì)于像我這種剛?cè)腴T的小生來講,技術(shù)每天都在更新,框架也層出不窮,有時(shí)候還沒弄懂這個(gè)知識(shí)大牛們又推出了更好的技術(shù)。當(dāng)然學(xué)習(xí)好的技術(shù)也是十分重要的。但是在學(xué)習(xí)之后怎樣才能夠得到自己想要的呢,一個(gè)好的建議便是靜...

    SwordFly 評(píng)論0 收藏0
  • Vue2.0 仿滴滴出行項(xiàng)目

    摘要:仿滴滴出行項(xiàng)目最近,各大社區(qū)出現(xiàn)很多小伙伴的項(xiàng)目,趁著這股熱潮我也用擼了一個(gè)滴滴出行的項(xiàng)目??墒?,后來在手機(jī)上發(fā)現(xiàn),輸入的時(shí)候居然調(diào)不出軟鍵盤,寫項(xiàng)目的時(shí)候沒考慮到設(shè)備問題,簡(jiǎn)直是大大的失誤。也就是說可以在組件內(nèi)部進(jìn)行請(qǐng)求,不需要提交。 Vue2.0 仿滴滴出行項(xiàng)目 最近,各大社區(qū)出現(xiàn)很多小伙伴的vue項(xiàng)目,趁著這股熱潮我也用vue擼了一個(gè)滴滴出行的項(xiàng)目。 效果預(yù)覽 showImg(h...

    ShevaKuilin 評(píng)論0 收藏0
  • 從無到有打造一個(gè)炫酷的進(jìn)度效果

    摘要:今天這篇文章要介紹的是一個(gè)酷炫的進(jìn)度條的設(shè)計(jì)和實(shí)現(xiàn),在進(jìn)度的文字內(nèi)容顏色以及切換的圖片等都可以自由設(shè)置。那么下面我們就開始從無到有實(shí)現(xiàn)一下這個(gè)酷炫的進(jìn)度效果吧。三利用與來實(shí)現(xiàn)進(jìn)度效果。四利用阻尼動(dòng)畫實(shí)現(xiàn)進(jìn)度條回彈效果。 showImg(/img/remote/1460000006465670); 今天這篇文章要介紹的是一個(gè)酷炫的進(jìn)度條的設(shè)計(jì)和實(shí)現(xiàn),在進(jìn)度的文字內(nèi)容、顏色以及切換的圖片等...

    pekonchan 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<