首页 > 其他分享 >跨页面新手引导 思路

跨页面新手引导 思路

时间:2023-12-26 10:47:54浏览次数:30  
标签:box right console log 一步 driver 新手 思路 页面

<!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">
    <link crossorigin="anonymous" integrity="sha384-cH28etaYXGV0odKyp4NzakDm9jgWghOa00YPrGTYUf1Ka8qTcQw9NO456x/4ZLVY"
        href="https://lib.baomitu.com/driver.js/0.9.8/driver.min.css" rel="stylesheet">
    <script crossorigin="anonymous" integrity="sha384-iw67aNAQa9PD3IxD5gYwEb9FOuItrWzUITZT3EUrQMt+pSzPUdNsJcL2dI2NJ9Mp"
        src="https://lib.baomitu.com/driver.js/0.9.8/driver.min.js"></script>
    <title>driver</title>
    <style>
        .box-1 {
            width: 100px;
            height: 100px;
            background-color: #1aa094;
            display: inline-block;
        }

        .box-2 {
            width: 200px;
            height: 200px;
            background-color: #FF6347;
            float: right;

        }

        .box-3 {
            margin-top: 400px;
            background-color: #00a2d4;
            float: right;

        }

        /*
        * 隐藏引导中的关闭按钮,必须到最后一步才能关闭
        */
        div#driver-popover-item .driver-popover-footer button {
            display: none;
        }
    </style>
</head>

<body>

    <div class="box-1" data-vale="2">
        1
    </div>


    <button class="box-3" onclick="javascript:driver.start();">
        重新引导
    </button>
    <script>
        const steps = [
            {
                element: '.box-1',
                popover: {
                    title: "第一步",
                    description: '这是one',
                    //position: 'top', //位置,可选值: left, left-center, left-bottom, top, top-center, top-right, right, right-center, right-bottom, bottom, bottom-center, bottom-right, mid-center
                    opacity: 0.1,
                    animate: true,
                    closeBtnText: '关闭提示',
                    nextBtnText: 'next->',
                    prevBtnText: '<-prev',
                }
            },
            {
                element: '.box-2',
                popover: {
                    title: "第二步",
                    description: '这是two',
                    position: 'left'
                }
            },
            // {
            //     element: '.box-3',
            //     popover: {
            //         title: "第三步",
            //         description: '这是three',
            //         //position: 'bottom'
            //     }
            // }
        ];
        const channel = new BroadcastChannel('myChannel');
        const driver = new Driver({
            allowClose: false, // 是否点击遮罩关闭
            overlayClickNext: false, //是否允许点击遮罩时移到到下一步
            doneBtnText: "我知道了", // 最终按钮上的文本, 最后一步 按钮文案
            closeBtnText: "跳过", //  默认的 关闭 按钮文案
            nextBtnText: "下一步", // 默认的 下一步 按钮文案
            prevBtnText: "上一步", // 默认的  上一步 按钮文案
            overlayClickNext: true,
            padding: 10,    // 边距
            // 覆盖即将清除时调用
            onReset: (e) => {

                if (driver.hasNextStep()) {
                    console.log("验证是否有下一步", driver.hasNextStep())
                    return false;
                }

            },
            // 在任何步骤转到下一步时调用
            onNext: (e) => {
                const box1 = e.node
                const dataValue = box1.getAttribute('data-vale');
                if (dataValue == 2) {


                    let a = {
                        element: '.box-2',
                        popover: {
                            title: "第二步",
                            description: '这是two',
                            position: 'left'
                        }
                    }
                    channel.postMessage(a);
                }
                console.log("dataValue", dataValue)
                console.log("onNext", e)
            },
            // 在任何步骤转到上一步时调用
            onPrevious: (e) => {
                console.log("onPrevious", e)
                //如果没有上一步,阻止执行
                if (!driver.hasPreviousStep()) {
                    console.log("验证是否有上一步", driver.hasPreviousStep())
                    driver.preventMove();// 阻止当前移动
                    return;
                }

            }
        });

        driver.defineSteps(steps)
        driver.start()

    </script>
</body>

</html>

  

<!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">
    <link crossorigin="anonymous" integrity="sha384-cH28etaYXGV0odKyp4NzakDm9jgWghOa00YPrGTYUf1Ka8qTcQw9NO456x/4ZLVY"
        href="https://lib.baomitu.com/driver.js/0.9.8/driver.min.css" rel="stylesheet">
    <script crossorigin="anonymous" integrity="sha384-iw67aNAQa9PD3IxD5gYwEb9FOuItrWzUITZT3EUrQMt+pSzPUdNsJcL2dI2NJ9Mp"
        src="https://lib.baomitu.com/driver.js/0.9.8/driver.min.js"></script>
    <title>driver</title>
    <style>
        .box-1 {
            width: 100px;
            height: 100px;
            background-color: #1aa094;
            display: inline-block;
        }

        .box-2 {
            width: 200px;
            height: 200px;
            background-color: #FF6347;
            float: right;

        }

        .box-3 {
            margin-top: 400px;
            background-color: #00a2d4;
            float: right;

        }

        /*
        * 隐藏引导中的关闭按钮,必须到最后一步才能关闭
        */
        div#driver-popover-item .driver-popover-footer button {
            display: none;
        }
    </style>
</head>

<body>
    <div class="box-2" data-vale="3">
        2
    </div>

    <script>
        const driver = new Driver({
            allowClose: false, // 是否点击遮罩关闭
            overlayClickNext: false, //是否允许点击遮罩时移到到下一步
            doneBtnText: "我知道了", // 最终按钮上的文本, 最后一步 按钮文案
            closeBtnText: "跳过", //  默认的 关闭 按钮文案
            nextBtnText: "下一步", // 默认的 下一步 按钮文案
            prevBtnText: "上一步", // 默认的  上一步 按钮文案
            overlayClickNext: true,
            padding: 10,    // 边距
            // 覆盖即将清除时调用
            onReset: (e) => {
                console.log("onReset 关闭", e)

                if (driver.hasNextStep()) {
                    console.log("验证是否有下一步", driver.hasNextStep())
                    return false;
                }

            },
            // 在任何步骤转到下一步时调用
            onNext: (e) => {
                const box1 = e.node
                const dataValue = box1.getAttribute('data-vale');
                if (dataValue == 3) {
                    let a = {
                        element: '.box-3',
                        popover: {
                            title: "第三步",
                            description: '这是three',
                            //position: 'bottom'
                        }
                    }
                    channel.postMessage(a);

                }
                console.log("onNext", e)
            },
            // 在任何步骤转到上一步时调用
            onPrevious: (e) => {
                //如果没有上一步,阻止执行
                if (!driver.hasPreviousStep()) {
                    console.log("验证是否有上一步", driver.hasPreviousStep())
                    driver.preventMove();// 阻止当前移动
                    return;
                }
                console.log("onPrevious", e)
            }
        });
        let steps = [
            {
                element: '.box-3',
                popover: {
                    title: "第三步",
                    description: '这是three',
                    //position: 'bottom'
                }
            }
        ];
        const channel = new BroadcastChannel('myChannel');
        channel.onmessage = function (event) {
            steps.unshift(event.data)
            driver.defineSteps(steps)
            driver.start()
            console.log(event.data);
        }


    </script>
</body>

</html>

  

标签:box,right,console,log,一步,driver,新手,思路,页面
From: https://www.cnblogs.com/zxh-bug/p/17927595.html

相关文章

  • Gitlab仓库推送到Gitee仓库的一种思路
    文章目录Gitlab仓库推送到Gitee仓库的一种思路1、创建Gitee的ssh公钥(默认已有Gitlab的ssh公钥)2、添加Gitlab远程仓库地址3、添加Gitee远程仓库地址4、拉取Gitlab远程仓库指定分支到本地仓库指定分支(以test分支为例)5、推送本地仓库指定分支到Gitee远程仓库指定分支(以test分支为例)6......
  • 算法题:剑指 Offer 07. 重建二叉树(题目+思路+代码+注释)时空时间优先选O(N) O(N) 2ms击
    题目剑指Offer07.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例1:Input:preorder=[3,9,20,15,7],inorder=[9,3,15,20,7]Output:[3,9,20,null,null,15,7]示例2:Input:......
  • EasyCVR点击通道后页面分页不显示是什么原因?如何解决?
    有用户反馈,EasyCVR在点击当前通道列表分页后,再点击其他设备时,页面不加载任何通道,如下对比:经过技术人员排查后发现,原因是重新点击设备时,带了之前的分页数据,才导致页面没有数据;查看代码发现,设备编码变更时,没有重置分页参数;于是新增重置分页参数代码,即可解决该问题。......
  • 智能监控平台/视频共享融合系统EasyCVR点击通道后页面分页不显示是什么原因?如何解决?
    TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,包括对人、车、......
  • keycloak~对接login-status-iframe页面判断用户状态变更
    上次我们说了,keycloak的login-status-iframe页面的作用,并解决了跨域情况下,iframe与主页面数据传递的方法,这一次,我们主要分析login-status-iframe.html这个文件的源码,然后分析在我们系统中如何与这个页面对接。login-status-iframe.html源码<script>varinit;function......
  • 使用js进行页面跳转
    场景vue项目,vite配置了基本路径前缀/h5在页面内,通过js进行页面跳转问题使用window.location.href='目标地址',结果发现实际跳转地址会变成本地地址前缀+目标地址,e.g. https://loacalhost:9999/h5/www.baidu.com解决同样使用window.location.href,但是不是直接进行目标地址......
  • java alibaba fastjson自定义序列化反序列化(教你解决问题思路)
    大家版本不一样方式可能不一样,我不管你的fastjson版本是哪个,按照我这个思路去弄就行写一个JSONObject类,导入fastjson的JSONObject,然后CTRL+鼠标左键点进去看JSONObject源码,然后点击IDEA的左上角selectopenedfile来定位到当前打开的文件。然后看当前目录这边可以看到上面有个Seria......
  • 从新手到高手:AI绘画实战中的Midjourney
    ......
  • 窗体设置,按钮跳转页面窗体
    packageframe;importjavax.swing.*;importjava.awt.*;publicclassJframedemoextendsJFrame{  JFramejFrame=newJFrame();  Containercontainer;  voidway1(){    jFrame.setSize(1000,1000);    jFrame.setVisible(false);  ......
  • K8S_IPV6 POD与数据库联通方法以及快速网络调试的一个思路
    K8S_IPV6POD与数据库联通方法以及快速网络调试的一个思路背景前端时间搭建了一套K8SonlyIPV6SingleStack的测试环境因为自己长时间不搞K8S了,并且IPV6的搭建方法墙内的文档很不完整我这边仅是搭建了一套比较基本的K8S_calico_ingress的单栈IPV6的环境但是同事一直......