• HTML5实现对话气泡动画方法


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>HTML5实现对话气泡点击动画</title>
        <style type="text/css">
        .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;  //边框为实心的
    
            position: absolute;  //三角的位置
    
            left: -0.4rem;
    
            top: 0.4rem;
    
           }
    
        }
        .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;
    
        }
    
    }
        </style>
        <script type="text/javascript" src="https://www.php.cn/static/js/jquery.min.js"> </script>
    </head>
    <body>
        <p class="select-toast" id="select-toast">测试数据</p>
        <div class="fish-click" id="fish-click">点击</div>
    </body>
    <script type="text/javascript">
        
        //随机出现的话术数组
    
    var toastText = [
    
       "哈哈,早安",
    
       "早上吃饭了吗?",
    
       "好好学习,天天向上",
    
       "闭上眼睛,用心祈祷,努力的人有回报",
    
       "记得早点睡觉",
    
    ]
    
     
    
    //计时器变量
    
    var fishAlert;
    
    //弹出功能函数
    
    function textShow(aniTime,spaceTime){
    
        //清空计时器
    
        clearInterval(fishAlert);
    
        //解绑事件
    
        $("#fish-click").off("tap");
    
        //设置显示的文本,随机生成0-4的整数
    
        var random = Math.floor(Math.random() * 5);
    
        //展示随机生成的文本
    
        $("#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秒计时器
    
            fishAlert = setInterval(function(){
    
                //随机生成0-4的整数
    
                var random = Math.floor(Math.random() * 5);
    
                //添加动画
    
                $("#select-toast").html(toastText[random]).addClass("toastAni");
    
                setTimeout(function(){
    
                    //动画结束后移除动画
    
                    $("#select-toast").removeClass("toastAni");
    
                },aniTime)
    
            },spaceTime);
    
        },aniTime);
    
    }
    $(document).ready(function(){
    
        //动画时间4000ms,间隔时间8000ms
    
        textShow(4000,8000);
    
    })
    </script>
    </html>
  • 相关阅读:
    路由的props参数
    记录基于Vue2.0实现后台系统权限控制
    Object.keys()的详解和用法
    git checkout 命令所有参数用法详解
    JSONP原理及实现2
    珠峰vue笔记
    fastjson漏洞分析历史漏洞(图解)
    github 查询个人邮箱 (备忘)
    nmap 请求修改ua (nmap发送http请求的多种方式)
    如何有效进行回顾会议(上)?
  • 原文地址:https://www.cnblogs.com/mo3408/p/13279259.html
Copyright © 2020-2023  润新知