欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

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

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

          需求

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

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

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

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

          思路

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

          實(shí)現(xiàn)

          半透明氣泡制作

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

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

          <p class="select-toast" id="select-toast">閉上眼睛,用心祈禱,努力的人有回報</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ì)時器完成點(diǎn)擊動畫和計(jì)時動畫

          首先要確定一個點(diǎn)擊的區(qū)域,這個區(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í),天天向上",    "閉上眼睛,用心祈禱,努力的人有回報",    "記得早點(diǎn)睡覺", ]  //計(jì)時器變量 var fishAlert; //彈出功能函數(shù) function textShow(aniTime,spaceTime){     //清空計(jì)時器     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ì)時器         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(){     //動畫時間4000ms,間隔時間8000ms     textShow(4000,8000); })

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

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

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號