站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        HTML5實(shí)現(xiàn)對話氣泡點(diǎn)擊動畫

        本篇文章給大家介紹一下使用HTML5實(shí)現(xiàn)對話氣泡點(diǎn)擊動畫的方法。有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對大家有所幫助。

        需求

        還是要先把需求拿出來。 要求:

        1. 對話氣泡要有動畫,動畫總共4秒
        2. 在沒有點(diǎn)擊的時(shí)候,氣泡每隔8秒出現(xiàn)一次
        3. 在點(diǎn)擊的時(shí)候,如果動畫沒有播放完畢就不執(zhí)行,如果動畫播放完畢,立即出現(xiàn)氣泡

        然后還是把完成圖拿出來,就是做成下面這個(gè)樣子:

        HTML5實(shí)現(xiàn)對話氣泡點(diǎn)擊動畫

        思路

        1. 首先要制作氣泡
        2. 其次使用css制作動畫
        3. 添加計(jì)時(shí)器完成點(diǎn)擊動畫和計(jì)時(shí)動畫

        實(shí)現(xiàn)

        半透明氣泡制作

        HTML5實(shí)現(xiàn)對話氣泡點(diǎn)擊動畫

        html結(jié)構(gòu)

        <p class="select-toast" id="select-toast">閉上眼睛,用心祈禱,努力的人有回報(bào)</p>

        less(rem規(guī)則自己換算,也可以使用px)

        .select-toast{     position: absolute;   //確定對話的位置     top: 3.4rem;     right: 0.2rem;     width: 1.45rem;   //確定寬度,高度由文字撐開     padding: 0.18rem;  //確定文字距離對話框外部的距離     line-height: 0.4rem;  //確定文字的行高     color: #d06e5a;  //文字顏色     background-color: rgba(255,255,255,0.85);  //背景色,半透明     border-radius: 0.2rem;  //對話框圓角     opacity: 0;  //初始情況透明度為0     &::before{    //三角的制作         content:"";   //偽元素必需         width: 0;    //本身的寬高為0         height: 0;         border-width: 0.2rem;  //三角形的高         border-color:transparent rgba(255,255,255,0.85) transparent transparent;   //角朝左的三角形         border-style: solid;  //邊框?yàn)閷?shí)心的         position: absolute;  //三角的位置         left: -0.4rem;         top: 0.4rem;     } }

        對話框css動畫

        .select-toast.toastAni{      -webkit-animation: toast 4s;   //對話框的動畫      animation: toast 4s; }  //對話框的動畫定義 @-webkit-keyframes toast {       8%{         opacity: 0.8;         -webkit-transform: scale(0.8);         transform: scale(0.8);     }     16%{         opacity: 1;         -webkit-transform: scale(1.1);         transform: scale(1.1);     }     24%{         opacity: 1;         -webkit-transform: scale(0.95);         transform: scale(0.95);     }     32%{         opacity: 1;         -webkit-transform: scale(1);         transform: scale(1);     }     82.5%{         opacity: 1;         -webkit-transform: scale(1);         transform: scale(1);     }     100%{         opacity: 0;     } }  @keyframes toast {     8%{         opacity: 0.8;         -webkit-transform: scale(0.8);         transform: scale(0.8);     }     16%{         opacity: 1;         -webkit-transform: scale(1.1);         transform: scale(1.1);     }     24%{         opacity: 1;         -webkit-transform: scale(0.95);         transform: scale(0.95);     }     32%{         opacity: 1;         -webkit-transform: scale(1);         transform: scale(1);     }     82.5%{         opacity: 1;         -webkit-transform: scale(1);         transform: scale(1);     }     100%{         opacity: 0;     } }

        添加計(jì)時(shí)器完成點(diǎn)擊動畫和計(jì)時(shí)動畫

        首先要確定一個(gè)點(diǎn)擊的區(qū)域,這個(gè)區(qū)域一點(diǎn)擊,就會觸發(fā)氣泡出現(xiàn)

        <!--點(diǎn)擊<?)))><|出氣泡--> <div class="fish-click" id="fish-click"></div>

        封裝功能函數(shù)

        //隨機(jī)出現(xiàn)的話術(shù)數(shù)組 var toastText = [    "哈哈,早安",    "早上吃飯了嗎?",    "好好學(xué)習(xí),天天向上",    "閉上眼睛,用心祈禱,努力的人有回報(bào)",    "記得早點(diǎn)睡覺", ]  //計(jì)時(shí)器變量 var fishAlert; //彈出功能函數(shù) function textShow(aniTime,spaceTime){     //清空計(jì)時(shí)器     clearInterval(fishAlert);     //解綁事件     $("#fish-click").off("tap");     //設(shè)置顯示的文本,隨機(jī)生成0-4的整數(shù)     var random = Math.floor(Math.random() * 5);     //展示隨機(jī)生成的文本     $("#select-toast").html(toastText[random]).addClass("toastAni");     //4000秒后去掉動畫     setTimeout(function(){         //去掉動畫樣式         $("#select-toast").removeClass("toastAni");         //重新綁定事件         $("#fish-click").off("tap").on("tap",function(){             textShow(4000,8000);         })         //添加8秒計(jì)時(shí)器         fishAlert = setInterval(function(){             //隨機(jī)生成0-4的整數(shù)             var random = Math.floor(Math.random() * 5);             //添加動畫             $("#select-toast").html(toastText[random]).addClass("toastAni");             setTimeout(function(){                 //動畫結(jié)束后移除動畫                 $("#select-toast").removeClass("toastAni");             },aniTime)         },spaceTime);     },aniTime); }

        函數(shù)調(diào)用

        $(document).ready(function(){     //動畫時(shí)間4000ms,間隔時(shí)間8000ms     textShow(4000,8000); })

        整體還是比較簡單的,所以這里做一下記錄。

        更多炫酷特效,推薦訪問:javascript特效大全!

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品日韩欧美在线第3页 | 国产精品一级香蕉一区| 国产精品一区二区久久精品无码| 久久亚洲精品成人av无码网站| 国产精品午夜福利在线无码| 国产精品你懂得| 久久久久人妻精品一区二区三区| 精品国产一区二区三区2021| 精品综合久久久久久97超人| 久久精品国产亚洲AV麻豆网站| 青青久久精品国产免费看| 国产精品一香蕉国产线看观看| 国产精品爽黄69天堂a| 国产成人无码久久久精品一| 亚洲国产第一站精品蜜芽| 日韩精品一区二区三区在线观看 | 无码国内精品久久人妻麻豆按摩| 成人国产精品秘 果冻传媒在线| 色欲国产麻豆一精品一AV一免费 | 精品无码综合一区| 国产精品无码v在线观看| 麻豆精品久久精品色综合| 国产欧美日韩综合精品一区二区| 亚洲av永久无码精品秋霞电影影院 | 国产午夜精品一区二区| 中文字幕成人精品久久不卡| 国产成人精品日本亚洲直接| 91国在线啪精品一区| 国产欧美日韩精品a在线观看| 少妇人妻偷人精品无码视频新浪| 亚洲韩国精品无码一区二区三区| 亚洲а∨天堂久久精品9966| 亚洲第一区精品日韩在线播放| 久热精品视频第一页| 久久精品二区| 欧美激情精品久久久久久久| 麻豆国产高清精品国在线| 人妻少妇看A偷人无码精品视频 | 日韩欧精品无码视频无删节| 日韩精品无码AV成人观看| 精品无码无人网站免费视频|