微信小程序?qū)崿F(xiàn)自定義加載圖標(biāo)功能
效果圖

實(shí)現(xiàn)思路
1.首先通過HTML+CSS實(shí)現(xiàn)加載動(dòng)畫的靜態(tài)效果;
2.根據(jù)需求給每個(gè)動(dòng)畫設(shè)計(jì)不同的動(dòng)畫效果。
例如第一個(gè)加載圖標(biāo)的靜態(tài)繪制
1、首先確定動(dòng)畫的盒子寬高;
2、設(shè)置盒子中每一個(gè)長(zhǎng)方形的寬高以及定位(注意:此處需要將長(zhǎng)方形的旋轉(zhuǎn)中心點(diǎn)移動(dòng)到長(zhǎng)方形的右側(cè)邊終點(diǎn),方便后期以該點(diǎn)旋轉(zhuǎn)。);
3、通過長(zhǎng)方形盒子的偽元素,設(shè)置顯示的長(zhǎng)方形背景和寬高,同時(shí)進(jìn)行定位。
4、由于在第二步的時(shí)候,已經(jīng)將旋轉(zhuǎn)中心移動(dòng),此處我們直接對(duì)每一個(gè)盒子中長(zhǎng)方形進(jìn)行旋轉(zhuǎn)(注意:旋轉(zhuǎn)角度 = 360 / 盒子中長(zhǎng)方形個(gè)數(shù))。
.circle-line{
width: 100px;
height: 100px;
display: inline-block;
position: relative;
}
.circle-line text{
display: block;
width: 50%;
height: 5px;
opacity: .7;
position: absolute;
top: calc(50% - 2.5px);
left: 0px;
transform-origin: center right;
}
.circle-line text::before{
content: '';
display: block;
width: 15px;
height: 5px;
position: absolute;
top: 0;
right: 10px;
background-color: blue;
}
.circle-line text:nth-child(1){
transform: rotate(0deg);
}
.circle-line text:nth-child(2){
transform: rotate(45deg);
}
.circle-line text:nth-child(3){
transform: rotate(90deg);
}
.circle-line text:nth-child(4){
transform: rotate(135deg);
}
.circle-line text:nth-child(5){
transform: rotate(180deg);
}
.circle-line text:nth-child(6){
transform: rotate(225deg);
}
.circle-line text:nth-child(7){
transform: rotate(270deg);
}
.circle-line text:nth-child(8){
transform: rotate(315deg);
}
動(dòng)畫制作
觀察發(fā)現(xiàn)動(dòng)畫只是針對(duì)每個(gè)長(zhǎng)方形的透明度進(jìn)行改變,所以動(dòng)畫采用從0.05到0.9的透明度循環(huán)改變。
@keyframes circle {
0%{
opacity: 0.05;
}
100%{
opacity: 0.9;
}
}
進(jìn)行動(dòng)畫綁定
.circle-line text{
animation: circle 1.5s linear infinite;
}
動(dòng)畫綁定完成,發(fā)現(xiàn)所有的整個(gè)圖標(biāo)一起顯示消失,那么也就是缺少了對(duì)單個(gè)個(gè)體的動(dòng)畫處理,延遲動(dòng)畫時(shí)間,使其依次漸變。
單個(gè)動(dòng)畫處理
.circle-line text:nth-child(1){
animation-delay: 0.2s;
}
.circle-line text:nth-child(2){
animation-delay: 0.4s;
}
.circle-line text:nth-child(3){
animation-delay: 0.6s;
}
.circle-line text:nth-child(4){
animation-delay: 0.8s;
}
.circle-line text:nth-child(5){
animation-delay: 1s;
}
.circle-line text:nth-child(6){
animation-delay: 1.2s;
}
.circle-line text:nth-child(7){
animation-delay: 1.4s;
}
.circle-line text:nth-child(8){
animation-delay: 1.6s;
}
注意:?jiǎn)蝹€(gè)動(dòng)畫延遲的時(shí)間必須超過動(dòng)畫執(zhí)行的總時(shí)間,防止一個(gè)動(dòng)畫執(zhí)行完成后的卡頓。
總結(jié)
以上所述是小編給大家介紹的微信小程序?qū)崿F(xiàn)自定義加載圖標(biāo)功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript實(shí)現(xiàn)網(wǎng)頁跨年倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)網(wǎng)頁跨年倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
JavaScript面向?qū)ο笾叽蠡驹瓌t實(shí)例詳解
這篇文章主要介紹了JavaScript面向?qū)ο笾叽蠡驹瓌t,結(jié)合實(shí)例形式詳細(xì)分析了JavaScript面向?qū)ο笃叽蠡驹瓌t,包括單一職責(zé)、開閉原則、里氏替換、依賴倒置、接口隔離、迪米特法則及組合/聚合復(fù)用原則,需要的朋友可以參考下2020-05-05
javascript權(quán)威指南 學(xué)習(xí)筆記之變量作用域分享
最近一直在看《javascript權(quán)威指南 第五版》,變量作用域這一章,看得真的有點(diǎn)累。不過,收獲還是多多。2011-09-09
Javascript中點(diǎn)擊(click)事件的三種寫法舉例
在JavaScript中Click事件是一種常見的用戶交互事件,表示用戶在網(wǎng)頁上點(diǎn)擊某個(gè)元素的動(dòng)作,這篇文章主要給大家介紹了關(guān)于Javascript中點(diǎn)擊(click)事件的三種寫法,需要的朋友可以參考下2024-06-06
echarts柱狀堆疊圖實(shí)現(xiàn)示例(圖例和x軸都是動(dòng)態(tài)的)
一些柱形圖在數(shù)據(jù)量比較多的時(shí)候,橫向排列受到擠壓,導(dǎo)致柱形圖,變的非常細(xì),影響整體的效果,下面這篇文章主要給大家介紹了關(guān)于echarts柱狀堆疊圖(圖例和x軸都是動(dòng)態(tài)的)的相關(guān)資料,需要的朋友可以參考下2023-04-04
JS實(shí)現(xiàn)的文字間歇循環(huán)滾動(dòng)效果完整示例
這篇文章主要介紹了JS實(shí)現(xiàn)的文字間歇循環(huán)滾動(dòng)效果,涉及javascript結(jié)合時(shí)間函數(shù)定時(shí)觸發(fā)實(shí)現(xiàn)頁面元素動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下2018-02-02
JavaScript encodeURI 和encodeURIComponent
encodeURI和encodeURIComponet函數(shù)都是javascript中用來對(duì)URI進(jìn)行編碼,將相關(guān)參數(shù)轉(zhuǎn)換成UTF-8編碼格式的數(shù)據(jù)。URI在進(jìn)行定位跳轉(zhuǎn)時(shí),參數(shù)里面的中文、日文等非ASCII編碼都會(huì)進(jìn)行編碼轉(zhuǎn)換2015-12-12
分享15個(gè)JavaScript的重要數(shù)組方法
這篇文章主要介紹了分享15個(gè)JavaScript的重要數(shù)組方法,數(shù)組方法的重要一點(diǎn)是有些是可變的,有些是不可變的。在決定針對(duì)特定問題使用哪種方法時(shí),務(wù)必牢記,下文就來分享重要數(shù)組方法,需要的小伙伴可以參考一下2022-05-05

