国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

css3 制作圓環(huán)進(jìn)度條

IamDLY / 718人閱讀

摘要:引子移動(dòng)端做一個(gè)加載的圖標(biāo),跟以往沿用的都不太一樣,是一個(gè)圓環(huán)進(jìn)度條,圓環(huán)進(jìn)度條也就罷了,還得能用百分比控制。

引子
移動(dòng)端做一個(gè) loadiing 加載的圖標(biāo),跟以往沿用的都不太一樣,是一個(gè)圓環(huán)進(jìn)度條,圓環(huán)進(jìn)度條也就罷了,還得能用百分比控制。
CSS3 實(shí)現(xiàn)圓環(huán)

demo

剛開始寫這個(gè)圓環(huán)的時(shí)候是參照帖子上給出的css代碼代入,然后根據(jù)自己的需求改,發(fā)現(xiàn)圓環(huán)可以完美轉(zhuǎn)動(dòng)了,但是好像沒法用百分比控制,所以放棄了隨便copy一個(gè)現(xiàn)成的想法,該動(dòng)動(dòng)腦子還是有必要的。

實(shí)現(xiàn)原理

css實(shí)現(xiàn)圓環(huán)的方法很多,我看大部分都是采用邊框(border)+ 裁剪(clip:rect())來實(shí)現(xiàn)的,所以我也準(zhǔn)備采用這種方式。

主要是布局問題,我看大部分圓環(huán)進(jìn)度條都大同小異,就是布局和轉(zhuǎn)動(dòng)方式不同

// html 

// css .loading { position: fixed; top: 50%; left: 50%; overflow: hidden; z-index: 9999; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%); } .circle{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; border:10px solid #fff; clip:rect(0,100px,100px,50px); } .clip-auto{ clip:rect(auto, auto, auto, auto); } .percent{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; top:-10px; left:-10px; } .left{ -webkit-transition:-webkit-transform ease; transition:-webkit-transform ease; transition:transform ease; border:10px solid #E54B00; clip: rect(0,50px,100px,0); } .right{ border:10px solid #E54B00; clip: rect(0,100px,100px,50px); } .wth0{ width:0; } // js $(".left").animate({ deg: per*3.6 }, { step: function(n, fx) { if(per>180){ $(".circle").addClass("clip-auto"); $(".right").removeClass("wth0"); } $(this).css({ "-webkit-transform":"rotate("+n+"deg)", "-moz-transform":"rotate("+n+"deg)", "transform":"rotate("+n+"deg)" }); }, duration:500 })

通過對(duì) .circle(左右兩側(cè)圓環(huán)的父元素) 的裁剪只顯示左側(cè)的圓環(huán),右側(cè)的圓環(huán)的寬度直接為 0 ,當(dāng)進(jìn)度條進(jìn)行到50%的時(shí)候,即左側(cè)圓環(huán)轉(zhuǎn)動(dòng)角度為 transform: rotate(180deg) ,將 .circle 的裁剪去掉 (.clip-auto),右側(cè)圓環(huán)的寬度恢復(fù)。基本就是這個(gè)套路。

jQuery的 動(dòng)畫方法 animate() 的 step屬性

如果僅用

$(this).css({
    "-webkit-transform":"rotate("+n+"deg)",
    "-moz-transform":"rotate("+n+"deg)",
    "transform":"rotate("+n+"deg)"
});

來控制角度的轉(zhuǎn)動(dòng),沒有絲毫動(dòng)畫顯得比較生硬,這時(shí)候就要考慮給它加個(gè)動(dòng)畫了,而jq提供的 animate 對(duì)只有數(shù)字值可創(chuàng)建動(dòng)畫,而字符串類型的值無法創(chuàng)建動(dòng)畫。

這時(shí)候需要用到 animate的step屬性了。

step介紹

animate的progress屬性是我們經(jīng)常用的,對(duì)數(shù)字值的屬性進(jìn)行操作,但是字符串值的屬性卻并不能用它進(jìn)行操作,這時(shí)候就需要step屬性了。

step 顧名思義就是對(duì)一段動(dòng)畫進(jìn)行步驟分解,在animate方法中,每一步具體是怎么分解的,不是由我們?cè)O(shè)定的CSS屬性值和動(dòng)畫時(shí)長來決定的,是由系統(tǒng)來決定的。

$(".left").animate({left:50},{
    duration:100,
    step:function(now,fx){
        console.log(now) //控制臺(tái)輸出,看看這個(gè)動(dòng)畫被分解成了幾個(gè)片段
    }
});

這個(gè)地方主要是解釋為什么在這里給角度賦值,順便說明一下它到底將該值分成多少個(gè)片段并不是由我們?nèi)藶榭刂频摹?/p> step方法的第二個(gè)參數(shù)——fx

$(".demo").animate({
    first:2,
    second:10
}, {
    step:function(n,fx){
        // 動(dòng)畫元素的每個(gè)動(dòng)畫屬性每一次動(dòng)畫效果的執(zhí)行都將調(diào)用的函數(shù)。第1個(gè)參數(shù)是當(dāng)前動(dòng)畫正在改變的屬性的實(shí)時(shí)值(每1次動(dòng)畫過程中,屬性值的實(shí)時(shí)反饋呈現(xiàn));第2個(gè)參數(shù)為修改Tween 對(duì)象提供了一個(gè)機(jī)會(huì)來改變animate第1個(gè)參數(shù)中設(shè)置的屬性在動(dòng)畫結(jié)束時(shí)的值。
        // fx: jQuery.fx 原型對(duì)象的一個(gè)引用,其中包含了多項(xiàng)屬性,比如
        // 執(zhí)行動(dòng)畫的元素:elem;
        // 動(dòng)畫正在改變的屬性:prop;
        // 正在改變屬性的當(dāng)前值:now;
        // 正在改變屬性的結(jié)束值:end;
        // 正在改變屬性的單位:unit;等
        
        // 可在這里改變animate第1個(gè)參數(shù)中設(shè)置的屬性second在動(dòng)畫結(jié)束時(shí)的值
        if(fx.prop=="second"){fx.end=5}
        console.log(fx.prop+": "+n);
    },
    duration:2000
})
結(jié)束
做這個(gè)動(dòng)畫遇到了自己兩個(gè)知識(shí)盲點(diǎn),clip的運(yùn)用以及jq的step屬性,寫這篇文章主要目的還是加深理解,以及分享。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/113058.html

相關(guān)文章

  • css3 制作圓環(huán)進(jìn)度

    摘要:引子移動(dòng)端做一個(gè)加載的圖標(biāo),跟以往沿用的都不太一樣,是一個(gè)圓環(huán)進(jìn)度條,圓環(huán)進(jìn)度條也就罷了,還得能用百分比控制。 引子 移動(dòng)端做一個(gè) loadiing 加載的圖標(biāo),跟以往沿用的都不太一樣,是一個(gè)圓環(huán)進(jìn)度條,圓環(huán)進(jìn)度條也就罷了,還得能用百分比控制。 CSS3 實(shí)現(xiàn)圓環(huán) demo 剛開始寫這個(gè)圓環(huán)的時(shí)候是參照帖子上給出的css代碼代入,然后根據(jù)自己的需求改,發(fā)現(xiàn)圓環(huán)可以完美轉(zhuǎn)動(dòng)了,但是好像沒...

    xingpingz 評(píng)論0 收藏0
  • css3 制作圓環(huán)進(jìn)度

    摘要:引子移動(dòng)端做一個(gè)加載的圖標(biāo),跟以往沿用的都不太一樣,是一個(gè)圓環(huán)進(jìn)度條,圓環(huán)進(jìn)度條也就罷了,還得能用百分比控制。 引子 移動(dòng)端做一個(gè) loadiing 加載的圖標(biāo),跟以往沿用的都不太一樣,是一個(gè)圓環(huán)進(jìn)度條,圓環(huán)進(jìn)度條也就罷了,還得能用百分比控制。 CSS3 實(shí)現(xiàn)圓環(huán) demo 剛開始寫這個(gè)圓環(huán)的時(shí)候是參照帖子上給出的css代碼代入,然后根據(jù)自己的需求改,發(fā)現(xiàn)圓環(huán)可以完美轉(zhuǎn)動(dòng)了,但是好像沒...

    mzlogin 評(píng)論0 收藏0
  • 實(shí)現(xiàn)環(huán)形進(jìn)度的幾種方法

    摘要:環(huán)形進(jìn)度條的問題,網(wǎng)上有很多的,也有各種不同的實(shí)現(xiàn)方式,很棒的實(shí)現(xiàn)也有很多,我這自己做一下一方面是想開闊一下自己的思路,一方面好久沒看和的東西了,基礎(chǔ)的拿來熟悉下。 環(huán)形進(jìn)度條的問題,網(wǎng)上有很多的demo,也有各種不同的實(shí)現(xiàn)方式,很棒的實(shí)現(xiàn)也有很多,我這自己做一下一方面是想開闊一下自己的思路,一方面好久沒看SVG和Canvas的東西了,基礎(chǔ)的拿來熟悉下。 DIV + CSS3 這個(gè)是最...

    Scliang 評(píng)論0 收藏0
  • clip實(shí)現(xiàn)圓環(huán)進(jìn)度

    摘要:效果圖怎么實(shí)現(xiàn)這樣一個(gè)圓環(huán)進(jìn)度條的效果呢,可以使用等等方式,今天我們來說下使用怎么來實(shí)現(xiàn)。使用才實(shí)現(xiàn)圓環(huán)進(jìn)度還是很簡單的,還不需要考慮兼容性,關(guān)于可以看張鑫旭大神的日志 效果圖 showImg(https://segmentfault.com/img/bV3DbY?w=315&h=300); 怎么實(shí)現(xiàn)這樣一個(gè)圓環(huán)進(jìn)度條的效果呢,可以使用canvas、svg、GIF等等方式,今天我們來說...

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

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

0條評(píng)論

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