JS原生非dialog信息提示框的示例代码

2023-09-11实例代码
86

JS原生非dialog信息提示框的示例代码,很简单的一个功能,点击问号,下边出现一个信息框,再次点击信息框消失,代码如下:
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            height: 100vh;
        }
 
        .msg-box {
            width: 20px;
            height: 20px;
            line-height: 20px;
            text-align: center;
            background-color: #ccc;
            position: relative;
            border-radius: 50%;
            color: #fff;
            cursor: pointer;
            top: 100px;
            left: 50%;
        }
 
        .msg {
            width: 300px;
            height: 100px;
            color: #fff;
            background-color: green;
            position: absolute;
            top: 150%;
            right: -20%;
            display: none;
            /* 圆角 */
            border-radius: 5px;
        }
 
        .msg .arrow {
            position: absolute;
            top: -20px;
            right: 4px;
            width: 0;
            height: 0;
            font-size: 0;
            border: 10px solid transparent;
            border-bottom-color: red;
        }
    </style>
</head>
 
<body>
 
    <div class="msg-box" data-show="0">
        ?
        <div class="msg">
            <div class="arrow"></div>
            信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容信息内容
        </div>
    </div>
 
</body>
 
</html>
 
<script>
    let box = document.querySelector('.msg-box')
    let msg = document.querySelector('.msg')
    // addEventListener() 事件监听器:监听元素的事件,并设置事件发生时触发的函数,以及事件流(冒泡、捕获)
    box.addEventListener('click', (e) => {
        // stopPropagation作用是阻止目标元素的冒泡事件,但是会不阻止默认行为
        // console.log(e, 'e');
        e.stopPropagation()
        // e.target.dataset是指获取当前点击dom的值,若没有对应的值则取的是undefined
        let show = e.target.dataset.show
        // console.log(e.target.dataset, 'e.target.dataset.show');
        if (Number(show)) {
            // setAttribute() 方法添加指定的属性,并为其赋指定的值。
            // 如果这个指定的属性已存在,则仅设置/更改值。
            e.target.setAttribute('data-show', 0)
            msg.style.display = 'none'
        } else {
            e.target.setAttribute('data-show', 1)
            msg.style.display = 'block'
        }
    })
    document.body.addEventListener('click', () => {
        box.setAttribute('data-show', 0)
        msg.style.display = 'none'
    })
</script>
 
The End

相关推荐

layui后台布局实例代码
layui后台布局的实例代码,以下是详细代码: !DOCTYPE htmlhtmlhead meta charset="utf-8" meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" titlelayout 后台大布局 - Layui/title link rel="stylesheet" ...
2025-10-15 实例代码
68

可自动切换的tab实例代码
可自动切换的tab实例代码,html代码如下: !-- tab标签代码begin --div class="tab1" id="tab1" div class="menu" ul li id="one1" onclick="setTab('one',1)"新闻/li li id="one2" onclick="setTab('one',2)"活动/li li id="one3" onclick="setTab('one',3)"...
2025-09-16 实例代码
114

php数据处理:数组根据某字段进行分组
php数据处理:数组根据某字段进行分组,实例代码如下: /** * @description:根据数据 * @param {dataArr:需要分组的数据;keyStr:分组依据} * @return: */ protected function dataGroup(array $dataArr,string $keyStr) :array { $newArr=[]; foreach ($data...
2025-06-12 实例代码
188

LayUI登录页面页设计实例
实例代码如下: !DOCTYPE htmlhtml lang="en" head meta charset="utf-8" link rel="stylesheet" href="layui/css/layui.css" style type="text/css" .container{ width: 420px; height: 320px; min-height: 320px; max-height: 320px; position: absolute; t...
2025-04-13 实例代码
234

MUI Picker Input设置默认时间回显实例代码
MUI Picker Input设置默认时间回显实例代码 mui('body').on('tap', '#begTime', function () { //日期选择 var dtPicker = new mui.DtPicker({ type: 'date' }); /*参数:'datetime'-完整日期视图(年月日时分) 'date'--年视图(年月日) 'time' --时间视图(时分...
2025-01-09 实例代码
139

layui实现带清除按钮的输入框
layui实现带清除按钮的输入框,首先html文件如下: !DOCTYPE htmlhtmlhead meta charset="utf-8" meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" title测试 - layui/title link rel="stylesheet" href="layui/css/lay...
2024-12-31 实例代码
200