最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JS實(shí)現(xiàn)帶動(dòng)畫效果的流程進(jìn)度條

 更新時(shí)間:2018年06月01日 09:46:13   作者:趙寶寶在不在  
當(dāng)在使用流程的時(shí)候,比如有一個(gè)審核流程,有三個(gè)階段:開始,審核中,審核成功。當(dāng)在不同的階段,做相應(yīng)的進(jìn)度顯示,當(dāng)顯示時(shí),是以動(dòng)畫的形式顯示的。下面通過代碼給大家介紹JS實(shí)現(xiàn)帶動(dòng)畫效果的流程進(jìn)度條,感興趣的朋友一起看看吧

當(dāng)在使用流程的時(shí)候,比如有一個(gè)審核流程,有三個(gè)階段:開始,審核中,審核成功。當(dāng)在不同的階段,做相應(yīng)的進(jìn)度顯示,當(dāng)顯示時(shí),是以動(dòng)畫的形式顯示的。話不多說,我們開始打造吧。

    首先,我考慮的是使用canvas來(lái)打造這個(gè)控件,于是我現(xiàn)在demo.html里新建了一個(gè)canvas用來(lái)顯示測(cè)試用,并且先預(yù)計(jì)了幾個(gè)屬性值,在做的過程中增增改改,最終屬性如下:

<canvas id="myCanvas" width="800" height="100" style="background:#efefef" data-show="開始|審核中|預(yù)審核|結(jié)束" data-font-size="16" 
    data-r="15" dara-progress="3" data-speed="20" data-fill-colour="#ffff00" data-padding="10"> 
  您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。</canvas> 

然后開始編寫相應(yīng)的js文件,我將其命名為ct_progress.js。我的目的是打造一款使用者可以自由配置的顯示控件,于是定義了一下可配置的屬性:

var c=document.getElementById("myCanvas"); 
var showStr = c.getAttribute("data-show"); 
var showStrs = showStr.split("|"); 
var r = c.hasAttribute("data-r")?Number(c.getAttribute("data-r")):15; 
var ctx=c.getContext("2d"); 
var padding = c.hasAttribute("data-padding")?Number(c.getAttribute("data-padding")):10;//左右上的間隔 
var space = (c.getAttribute("width")-2*r-2*padding)/(showStrs.length-1); 
var speed = c.hasAttribute("data-speed")?Number(c.getAttribute("data-speed")):20;//動(dòng)畫速度 
var fillColour = c.hasAttribute("data-fill-colour")?c.getAttribute("data-fill-colour"):"#ffff00";//填充色 
var fontSize = c.hasAttribute("data-font-size")?Number(c.getAttribute("data-font-size")):15; 

屬性完成,開始使用canvas使用這些屬性值開始進(jìn)行初始化畫圖:

for(var i in showStrs) 
{ 
  ctx.beginPath(); 
  ctx.fillStyle="#ffffff"; 
  ctx.arc(r+i*space+padding,r+padding,r,0,2*Math.PI);//前面兩個(gè)參數(shù)為圓心坐標(biāo),第三個(gè)為半徑,第四個(gè)為起始角。第五個(gè)為結(jié)束角 
  ctx.fill(); 
  if(i!=0) 
  { 
    ctx.fillRect(r+(i-1)*space+padding,r/2+padding,space,r);//前面兩個(gè)左上角坐標(biāo),后面兩個(gè)寬高 
  } 
  ctx.beginPath(); 
  ctx.fillStyle="#333333"; 
  ctx.font=fontSize+"px Georgia";//一定要指定字體否則大小沒有用 
  ctx.fillText(showStrs[i],r+i*space-r+padding,r*2+fontSize+10+padding);//左下角為起點(diǎn) 
  ctx.stroke(); 
} 

此時(shí)畫出了一個(gè)靜態(tài)的沒有進(jìn)度的流程進(jìn)度條。然后為這個(gè)進(jìn)度條加上顯示時(shí)的動(dòng)畫:

var proW = 0;//進(jìn)度長(zhǎng)度 
var progress = c.hasAttribute("dara-progress")?Number(c.getAttribute("dara-progress")):showStrs.length;// 
var showW = space*progress;//計(jì)算應(yīng)該顯示的進(jìn)度長(zhǎng)度 
var i=0,j; 
var int = setInterval(function () { 
  //清除 
  //ctx.clearRect(0, 0, c.width, c.height);//不清除在原圖上畫了覆蓋 
  j=i; 
  i = parseInt(proW/space); 
  if(i>j) 
  { 
    ctx.beginPath(); 
    ctx.fillStyle=fillColour; 
    ctx.fillRect(r+j*space+padding,r/2+padding,space,r);//前面兩個(gè)左上角坐標(biāo),后面兩個(gè)寬高 
    //clearArc(ctx,r+j*space+padding,r+padding,r,1);//清除圓部 
  } 
  else 
  { 
    if(i<progress) 
    { 
      ctx.beginPath(); 
      ctx.fillStyle=fillColour; 
      ctx.fillRect(r+i*space+padding,r/2+padding,proW-i*space,r);//前面兩個(gè)左上角坐標(biāo),后面兩個(gè)寬高 
    } 
  } 
  //clearArc(ctx,r+i*space+padding,r+padding,r,1);//清除圓部 
  ctx.beginPath(); 
  ctx.fillStyle=fillColour; 
  ctx.arc(r+i*space+padding,r+padding,r,0,2*Math.PI);//前面兩個(gè)參數(shù)為圓心坐標(biāo),第三個(gè)為半徑,第四個(gè)為起始角。第五個(gè)為結(jié)束角 
  ctx.fill(); 
  if(proW>=showW) 
  { 
    clearInterval(int); 
  } 
  proW+=speed; 
}, 150); 

這樣便完成了一個(gè)簡(jiǎn)單的帶顯示動(dòng)畫的流程進(jìn)度條。最終效果如下:

具體控件使用以及源碼,詳見github:點(diǎn)擊打開鏈接希望學(xué)習(xí)或有用到的童鞋star一下,感謝

總結(jié)

以上所述是小編給大家介紹的基于JS實(shí)現(xiàn)帶動(dòng)畫效果的流程進(jìn)度條,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • JS生成某個(gè)范圍的隨機(jī)數(shù)【四種情況詳解】

    JS生成某個(gè)范圍的隨機(jī)數(shù)【四種情況詳解】

    下面小編就為大家?guī)?lái)一篇JS生成某個(gè)范圍的隨機(jī)數(shù)【四種情況詳解】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧
    2016-04-04
  • JavaScript實(shí)現(xiàn)仿新浪微博大廳和騰訊微博首頁(yè)滾動(dòng)特效源碼

    JavaScript實(shí)現(xiàn)仿新浪微博大廳和騰訊微博首頁(yè)滾動(dòng)特效源碼

    最近看到朋友用JavaScript實(shí)現(xiàn)仿新浪微博大廳和未登錄騰訊微博首頁(yè)滾動(dòng)效果,朋友使用jquery實(shí)現(xiàn)的,在網(wǎng)上看到有用js制作的也比較好,于是把我的內(nèi)容整理分享給大家,具體詳解請(qǐng)看本文
    2015-09-09
  • 使用webpack和rollup打包組件庫(kù)的方法

    使用webpack和rollup打包組件庫(kù)的方法

    這篇文章主要介紹了使用webpack和rollup打包組件庫(kù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • javascript實(shí)現(xiàn)的textarea運(yùn)行框效果代碼 不用指定id批量指定

    javascript實(shí)現(xiàn)的textarea運(yùn)行框效果代碼 不用指定id批量指定

    今天在寫一個(gè)網(wǎng)頁(yè)的時(shí)候用到了N多嵌套在textarea標(biāo)簽里的代碼,定義雙擊運(yùn)行其內(nèi)的代碼段。但是每次創(chuàng)建一個(gè)這樣的可運(yùn)行的實(shí)例都要給textarea元素自定義一個(gè)id值和寫入雙擊事件,好不麻煩。
    2009-12-12
  • JS實(shí)現(xiàn)鼠標(biāo)滑過折疊與展開菜單效果代碼

    JS實(shí)現(xiàn)鼠標(biāo)滑過折疊與展開菜單效果代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)鼠標(biāo)滑過折疊與展開菜單效果代碼,涉及JavaScript基于鼠標(biāo)事件動(dòng)態(tài)改變頁(yè)面元素樣式的相關(guān)實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-09-09
  • 微信小程序控制view隱藏顯示的5種方法匯總

    微信小程序控制view隱藏顯示的5種方法匯總

    在微信小程序開發(fā)時(shí),經(jīng)常要用到一個(gè)控件會(huì)根據(jù)不同的情況和環(huán)境動(dòng)態(tài)顯示與隱藏這種情況,下面這篇文章主要給大家介紹了關(guān)于微信小程序控制view隱藏顯示的5種方法,需要的朋友可以參考下
    2022-04-04
  • javascript如何寫熱點(diǎn)圖

    javascript如何寫熱點(diǎn)圖

    這篇文章主要介紹了javascript如何寫熱點(diǎn)圖,熱點(diǎn)圖是以點(diǎn)的形式展示,通過補(bǔ)全周邊變化顏色也會(huì)相應(yīng)的調(diào)整漸變,對(duì)熱點(diǎn)圖感興趣的朋友可以參考一下
    2015-12-12
  • js實(shí)現(xiàn)Form欄顯示全格式時(shí)間時(shí)鐘效果代碼

    js實(shí)現(xiàn)Form欄顯示全格式時(shí)間時(shí)鐘效果代碼

    這篇文章主要介紹了js實(shí)現(xiàn)Form欄顯示全格式時(shí)間時(shí)鐘效果代碼,可讀取當(dāng)前的完整時(shí)間并實(shí)時(shí)顯示,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-08-08
  • layui 圖片上傳+表單提交+ Spring MVC的實(shí)例

    layui 圖片上傳+表單提交+ Spring MVC的實(shí)例

    今天小編就為大家分享一篇layui 圖片上傳+表單提交+ Spring MVC的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-09-09
  • js判斷日期時(shí)間有效性的方法

    js判斷日期時(shí)間有效性的方法

    這篇文章主要介紹了判斷js驗(yàn)證日期時(shí)間有效性的方法,需要的朋友可以參考下
    2015-10-10

最新評(píng)論

台南县| 陇南市| 合作市| 格尔木市| 潮州市| 墨脱县| 清原| 广灵县| 彭阳县| 临澧县| 辰溪县| 巨野县| 缙云县| 抚顺市| 务川| 荔浦县| 烟台市| 绥化市| 丰原市| 中山市| 瓦房店市| 大埔区| 原阳县| 汽车| 海南省| 繁昌县| 邯郸市| 当阳市| 武乡县| 义马市| 吉隆县| 七台河市| 延安市| 赤峰市| 三门峡市| 庐江县| 龙川县| 民丰县| 阿拉善盟| 海丰县| 米泉市|