站長資訊網(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號
        主站蜘蛛池模板: 亚洲欧美日韩国产一区二区三区精品| 亚洲爆乳无码精品AAA片蜜桃| 韩国三级中文字幕hd久久精品| 久久婷婷国产综合精品| 成人国产精品日本在线观看| 久久精品国产亚洲av麻豆小说 | 国产精品国产三级国产AV主播| 日韩一区二区精品观看| 国产精品偷窥熟女精品视频| 精品一区二区三区免费| 国产美女精品一区二区三区| 伊人久久综合精品无码AV专区| 久久精品国产亚洲Aⅴ蜜臀色欲| 国产成人精品cao在线| 久久国产精品-久久精品| 99国产欧美精品久久久蜜芽| 久久丫精品国产亚洲av不卡| 亚洲精品无码成人AAA片| 久久精品无码av| 国产伦精品一区二区三区视频猫咪 | 久久国产成人亚洲精品影院| 91精品一区二区综合在线| 国产精品视频网站| 国产福利91精品一区二区| 国产精品国产三级国产av品爱网| 精品麻豆丝袜高跟鞋AV| 久久精品国产亚洲AV高清热| 色欲精品国产一区二区三区AV| 亚洲国产精品成人午夜在线观看| 久久99精品九九九久久婷婷| 精品一区二区三区色花堂| 国产三级精品三级在线观看专1| 国产精品高清在线观看| 9re热国产这里只有精品| 91精品婷婷国产综合久久| 91精品国产91久久久久久蜜臀| 久久精品国产久精国产| 久久精品一区二区| 91久久精品电影| 国产伦精品一区二区三区视频猫咪 | 老子影院午夜精品无码 |