LayaBox做一个通用的提示弹窗

文章介绍了两种JavaScript实现的弹窗提示功能,分别是Laya引擎中的`showTips`函数,用于创建可淡入淡出的3D效果提示,以及通用的Web版`showTip`函数,使用DOM操作创建并控制CSS样式显示简单的文本提示。
摘要由CSDN通过智能技术生成
function showTips(tipText, fontSize = 36, showTime = 2e3) {
    let arrTips = this._arrTips;
    let text;
    if (arrTips == null) {
        arrTips = [];
        let box = new Laya.Box();
        Laya.stage.addChild(box);
        box.zOrder = this._tipsZOrder;
        for (let index = 0; index < 3; index++) {
            let tipBox = new Laya.Box();
            tipBox.anchorX = tipBox.anchorY = .5;
            tipBox.centerX = 0;
            let bgBox = new Laya.Box();
            bgBox.bgColor = "#000000";
            bgBox.width = 800;
            bgBox.height = 80;
            bgBox.alpha = .7;
            tipBox.addChild(bgBox);
            text = new Laya.Text();
            tipBox.addChild(text);
            text.fontSize = fontSize;
            text.color = "#FFFFFF";
            text.width = 800;
            text.height = 50;
            text.y = 15;
            text.align = "center";
            text.valign = "middle";
            arrTips.push(text);
            box.addChild(tipBox);
            tipBox.visible = false;
        }
        this._arrTips = arrTips;
        box.width = 600;
        box.centerX = 0;
        box.centerY = -100;
    }
    if (arrTips.length == 0)
        return;
    text = arrTips.shift();
    text.text = tipText;
    text.wordWrap = true;
    text.color = "#FFFFFF";
    let time = showTime;
    let tipBox = text.parent;
    tipBox.visible = true;
    tipBox.scale(.8, .8);
    tipBox.alpha = 1;
    Laya.Tween.to(tipBox, {
        scaleX: 1,
        scaleY: 1
    }, 200, Laya.Ease.backOut, Laya.Handler.create(this, function (node) {
        Laya.timer.once(time - 600, this, function () {
            Laya.Tween.to(tipBox, {
                alpha: 0
            }, 400, null, Laya.Handler.create(this, function () {
                node.parent.visible = false;
                arrTips.push(node);
            }));
        });
    }, [text]));
}

还有一种是web通用的弹窗

function showTip(str) {
    const view = document.createElement("div");
    view.id = "tipView";
    document.body.appendChild(view);
    view.innerHTML = str;
    view.style.cssText = "position:absolute;top:30%;left:50%;margin-left:-150px;background:black;width:300px;height:40px;font-size:28px;color:white;opacity:0.8;z-index:999999999;text-align:center;"//位置样式自行调试
    setTimeout(() => {
        let opacity = 0.7;
        var timeId = setInterval(function () {
            opacity = opacity - 0.1;
            if (opacity <= 0) {
                clearInterval(timeId);
                view.remove();
            }
            view.style.opacity = opacity;
        }, 30);
    }, 400);
}

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值