日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html5 loader,7种基于GSAP的SVG Loader加载动画特效

發(fā)布時間:2025/3/19 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html5 loader,7种基于GSAP的SVG Loader加载动画特效 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這是一組效果非常炫酷的基于GSAP的SVG Loader加載動畫特效。這組SVG加載動畫特效共有7種效果,分別使用GSAP對SVG進行操縱,制作出各種炫酷的Loading加載動畫效果。

這些SVG加載動畫效果依賴于一個非常強大的插件-DrawSVGPlugin,該插件可以幫助你創(chuàng)建高質(zhì)量的SVG動畫和特效。

注意,這個效果中的例子你可以在本地計算機中自由在查看效果,但是如果你要將這些效果用于服務器中,需要注冊一個GreenSock的會員賬號。

使用方法

下面來看一下這些SVG加載動畫是如何制作的。這里充分利用了GSAP的測序工具TimelineMax和DrawSVGPlugin。DrawSVGPlugin插件用于逐步顯示或隱藏SVG的描邊,這可以非常方便的制作Loader效果。

要了解更多關于GSAP和其它工具,建議查看下面的文章:

HTML結構

下面來看一下第一種效果Jump Loader,這是一個非常有趣的特效-一條半圓形的線條就像從液體中跳出來然后再潛如液體中,很有鯉魚跳龍門的感覺。該效果的HTML結構如下:

這個加載動畫中的SVG圖形是在Adobe Illustrator中創(chuàng)建的。你也可以使用其它工具如:Sketch(只能在Mac上使用)或Inkscape來制作。這個SVG圖形由一個半圓形的線條和兩個橢圓圖形組成,如下圖所示。并且背景設置為紅色的方塊,原因是當你從Illustrator選擇和拷貝SVG圖形到HTML頁面中的時候,SVG的viewBox的尺寸由整個選擇的圖形的大小來決定。也就是說,如果你只選擇線條和橢圓,那么SVG的viewBox的尺寸僅僅是你選擇額圖形形成的一個組的大小。這樣就沒有多余的空間可以進行SVG動畫了。

要創(chuàng)建一個大的SVG動畫區(qū)域,可以像上面這樣創(chuàng)建一個大的矩形區(qū)域,然后將這個區(qū)域一起拷貝到HTML文件中,之后就可以將該矩形區(qū)域的代碼從SVG代碼中刪除,只留下線條和橢圓的代碼,但是這時viewBox的尺寸仍然是原來矩形的尺寸。

結構和布局

首先創(chuàng)建一些變量來引用HTML元素,這種方法可以將引用緩存起來,還可以在你需要這些HTML元素引用的時候不必重復的查找HTML代碼。但是要注意的是這種方法會占用移動手機的寶貴的內(nèi)存資源。所以是否使用這種方法由你決定。

var container = document.getElementById('container');

var loader = document.getElementById('loader');

var circleL = document.getElementById('circleL');

var circleR = document.getElementById('circleR');

var jump = document.getElementById('jump');

在效果中線條有一個反射的倒影,在SVG圖像中沒有創(chuàng)建它。可以在JS代碼中使用克隆函數(shù)將線條克隆一份出來。然后在后面將它翻轉并降低其透明度。

var jumpRef = jump.cloneNode();

loader.appendChild(jumpRef);

下面使用GSAP來簡單的居中定位。這里要使用TweenMax來將包裹容器和它里面的SVG居中對齊,這樣做的原因是居中只需要設置一次,而且它不必成為動畫序列的一部分。代碼中xPercent和yPercent參數(shù)等效于CSS的transform: translate(-50%, -50%),并且包含了所有的瀏覽器廠商的前綴。

TweenMax.set([container, loader], {

position: 'absolute',

top: '50%',

left: '50%',

xPercent: -50,

yPercent: -50

})

最后,在布局中使用TweenMax來翻轉倒影線條。這可以通過改變它的Y軸transform origin到110%,并使用負的scaleY值來實現(xiàn)。

TweenMax.set(jumpRef, {

transformOrigin: '50% 110%',

scaleY: -1,

alpha: 0.05

})

制作跳躍動畫

下面將要使用TimelineMax和鏈式動畫方式來制作線條跳躍動畫特效。

實現(xiàn)要創(chuàng)建一個TimelineMax的新的實例對象。TimelineMax實例對象可以接收一組參數(shù)和事件,如:延遲、yoyo、onComplete等。這里設置無限重復跳動效果:設置repeat為-1。

var myTimeline = new TimelineMax({ repeat: -1 });

下面就可以開始制作動畫序列了。首先使用GSAP的DrawSVGPluginl來將線條和它的倒影分開,分格的空間值設置為一個區(qū)間,這里設置為0% 0%意思是區(qū)間的開始和結束位置都設置為0%,并且它們都是從左向右進行繪制。

這里還使用TweenMax的內(nèi)置語法attr來設置了橢圓形波浪效果X和Y軸半徑都為0(不可見)。注意第一個set函數(shù)之后沒有分號,這是鏈式編程的寫法。

myTimeline.set([jump, jumpRef], {

drawSVG:'0% 0%'

})

.set([circleL, circleR], {

attr: {

rx: 0,

ry: 0,

}

})

上面的代碼只是設置了一些值,真正的動畫效果還沒有開始。動畫時間軸將無限循環(huán)的執(zhí)行,所以每次動畫開始時都必須調(diào)用原始的初始值。現(xiàn)在時間軸的持續(xù)時間仍然是0。

兩條線條都會被動畫到它們總長度的30%,DrawSVG的值0% 30%表示動畫開始的區(qū)間是0%,當前線條的長度是總長度的30%,如下圖所示。同時還使用一個線性的ease效果來制作一個平滑的繪制線條效果。

.to([jump, jumpRef], 0.4, {

drawSVG: '0% 30%',

ease: Linear.easeNone

})

接下來,就要通過rx和ry屬性使左邊的橢圓形波浪放大。如果它們都使用相同的值如+=30那么橢圓就會均勻的放大,這種設置會使波浪沒有立體感,所以這里將兩個值分別設置為不同的值。

在這個動畫的結束處添加了一個額外的offset參數(shù)--=0.1,這個設置的意思是該動畫的時間被設置為0.3秒(0.4-0.1=0.3秒),因為上一個to動畫的時間是0.4秒。

.to(circleL, 2, {

attr:{rx:'+=30',

ry:'+=10'

},

alpha:0,

ease:Power1.easeOut

}, '-=0.1')

下面繼續(xù)制作動畫,現(xiàn)在線條已經(jīng)向前運動,這時它們的尾部要開始出現(xiàn)并執(zhí)行動畫。注意這次的動畫時間是-=1.9,DrawSVG的值設置為50% 80%意思是30%的線條仍然可見,線條從50%處開始,80%處結束。

.to([jump, jumpRef], 1, {

drawSVG:'50% 80%',

ease:Linear.easeNone

}, '-=1.9')

最后,要使線條運動到100%處。

.to([jump, jumpRef], 0.7, {

drawSVG:'100% 100%',

ease:Linear.easeNone

}, '-=0.9')

不要忘記還有右邊的橢圓形波浪,它會被像左邊波浪效果一樣被執(zhí)行動畫。

.to(circleR, 2, {

attr:{rx:'+=30',

ry:'+=10'

},

alpha:0,

ease:Power1.easeOut

}, '-=.5');

myTimeline.timeScale(3);

當這個加載動畫執(zhí)行的時候,它會無限進行循環(huán)。最后的myTimeline.timescale(3);是用于調(diào)整整個動畫的時間,使動畫看起來更加自然。

完整代碼

下面是Jump Loader加載動畫效果的完整代碼:

var container = document.getElementById('container');

var loader = document.getElementById('loader');

var circleL = document.getElementById('circleL');

var circleR = document.getElementById('circleR');

var jump = document.getElementById('jump');

var jumpRef = jump.cloneNode();

loader.appendChild(jumpRef);

TweenMax.set([container, loader], {

position: 'absolute',

top:'50%',

left: '50%',

xPercent: -50,

yPercent: -50

})

TweenMax.set(jumpRef, {

transformOrigin: '50% 110%',

scaleY: -1,

alpha: 0.05

})

var tl = new TimelineMax({

repeat: -1,

yoyo: false

});

tl.timeScale(3);

tl.set([jump, jumpRef], {

drawSVG: '0% 0%'

})

.set([circleL, circleR], {

attr: {

rx: 0,

ry: 0,

}

})

.to([jump, jumpRef], 0.4, {

drawSVG: '0% 30%',

ease: Linear.easeNone

})

.to(circleL, 2, {

attr: {

rx: '+=30',

ry: '+=10'

},

alpha: 0,

ease: Power1.easeOut

}, '-=0.1')

.to([jump, jumpRef], 1, {

drawSVG: '50% 80%',

ease: Linear.easeNone

}, '-=1.9')

.to([jump, jumpRef], 0.7, {

drawSVG: '100% 100%',

ease: Linear.easeNone

}, '-=0.9')

.to(circleR, 2, {

attr: {

rx: '+=30',

ry: '+=10'

},

alpha: 0,

ease: Power1.easeOut

}, '-=.5')

總結

以上是生活随笔為你收集整理的html5 loader,7种基于GSAP的SVG Loader加载动画特效的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久成人精品一区二区 | 色婷婷久久久 | 久久久美女视频 | 中文字幕免费在线观看 | 91极品尤物| 国产在线观看成人 | 欧美自偷自拍 | 大肉大捧一进一出好爽动态图 | 国产精品国产三级国产专播精品人 | 国产精品视频区 | 黄网站在线播放 | 午夜国产福利在线观看 | 不卡一二三 | 午夜不卡在线观看 | 无码少妇一级AV片在线观看 | 影音先锋成人资源网站 | 91大神在线观看视频 | 中文字幕av网址 | 一区二区三区四区国产精品 | 国产精品久久久久久久久久小说 | 亚洲国产精品第一页 | 黄色男同视频 | 色老头av | 日韩av一卡 | 国产成人影视 | www.色午夜.com| 羞羞的视频网站 | 四虎久久久 | 素人一区二区 | 五月天婷婷视频 | 亚洲熟妇av日韩熟妇在线 | 男女在楼梯上高潮做啪啪 | 爱情岛论坛自拍亚洲品质极速最新章 | 精品少妇人妻AV无码专区在线 | 国产伦精品一区二区三区四区免费 | 91成人亚洲 | 欧美激情第五页 | 日韩欧美在线观看 | 国产精品熟女一区二区不卡 | 亚洲精品日韩欧美 | 欧美操穴视频 | 在线观看免费高清在线观看 | 漂亮人妻洗澡被公强 日日躁 | 老司机深夜免费福利 | 深爱五月综合网 | 日本黄a三级三级三级 | 日韩美女免费线视频 | 视色影视 | 呦女精品 | 欧美 日韩 国产 成人 在线观看 | 爽爽视频在线观看 | 亚洲人无码成www久久 | 综合视频| 国产精品国产馆在线真实露脸 | 三级av在线播放 | 国产精品12p| 日本成人在线免费 | 日韩黄色片子 | 国产色自拍 | 精品一区二区精品 | 日本中文字幕第一页 | 清纯粉嫩极品夜夜嗨av | 玖玖网| 日本黄色免费 | 露脸啪啪清纯大学生美女 | www.国产高清 | 久视频在线| 在线视频播放大全 | 亚洲国产一区二区在线 | 一级片99 | 久久91精品 | 久久久ww | 中国免费黄色片 | 可以在线看的av | 狼色网| 日本在线黄色 | 97久久精品 | 成人高清视频在线观看 | 亚洲а∨天堂久久精品2021 | 午夜视频免费在线观看 | 少妇按摩一区二区三区 | 91tv国产成人福利 | 国产 日韩 欧美 成人 | 99re国产在线 | 国产精品中文字幕在线观看 | 五月婷婷在线视频 | 小镇姑娘国语版在线观看免费 | 国产三级短视频 | 日韩欧美一区二区三区四区五区 | 亚洲国产欧美视频 | 久久bb| 日本免费一区二区视频 | 日韩不卡视频在线观看 | 欧美极品jizzhd欧美仙踪林 | 国产精品后入内射日本在线观看 | 黄色成人在线观看 | 性视频久久 | 黑人和白人做爰 | 依人在线|