Driverjs的改进使用


一、前言

某个项目中使用到了driverjs引导组件,在之前交原型网页的时候需求方还是很满意的,后面改进的发现要做的功能用这个引导组件不能满足,而且发现,对比introjs,还是少了不少功能…含泪选的跪着也要用完。


二、改进使用

2.1.隐藏“关闭”按钮

图片1

由于引导设置为强制引导,用户不可跳过,查了半天的driverjs的文档发现并没有提供隐藏“关闭”、“上一步”、“下一步”的属性(introjs貌似也只提供了隐藏“上一步”、“下一步”按钮的属性)。只能改相应的class了,查到该关闭按钮的class为driver-close-btn,可设置如下class:

[class*="driver-close-btn"] {
    visibility: hidden;
}

设置之后就没有关闭按钮了,使用display: none实测无效,它貌似内部有个自己设置的display样式优先级比自己设置的高,所以无法覆盖。
在这里插入图片描述


2.2.隐藏“上一步”按钮

跟上方同理,修改class样式

[class*="driver-prev-btn"] {
    visibility: hidden;
}

图片3

2.3.修改样式

由于使用了ant design,发现这些按钮的样式跟antd的按钮样式不太一样,修改一下按钮的class。使用的是antd默认的那个蓝色样式

div#driver-popover-item .driver-popover-footer button {
    background-color: #1890FF;
    color: white;
    text-shadow: none; /* 取消原来的text阴影,不然会有文字重叠的感觉 */
    border: none; /* 取消原来它自己按钮设置的border */
    line-height: 1.8;
    border-radius: 4px;
}

div#driver-popover-item .driver-popover-footer button:hover {
    background-color: #50ABFF;
}

div#driver-popover-item .driver-popover-footer button:active {
    background-color: #1269BA;
}

图片


2.4.根据引导步骤动态控制内容显示

监听onNext方法,根据element可判断进行到哪一步,从而进行一些内容的动态显示

//在新建driver对象的时候设置onNext的回调方法,这样可以得到element对象。
new Driver({
    ...
    onNext: (Element) => {
        //todo
    }
    ...
})

//或者在设置引导步骤数组的相应步骤对象里设置onNext的回调方法
let steps = [
	...
    {
        element: '#serial-console-card',
        popover: {
            title: '顺序存储·认知实验',
            description: '这是一个描述',
            position: 'right',
        },
        onNext: (Element) => {
        	//todo
    	}
    },
    ...
]

2.5 增加完成引导回调事件

啊,这个driver没有想intro一样提供引导完成、引导取消的事件…倒是有个onReset回调,不过完成、取消、调用reset、refresh方法都会触发这个onReset回调。唉只能触发的时候判断一下了。下面的方法只适合屏蔽了关闭按钮时使用。若有关闭按钮,在最后一步点击关闭也会触发。

let driver = new Driver({
     ...
     onReset: (Element) => {
         let steps = driver.getSteps();
         if (steps[steps.length - 1] == Element) {
             console.log('done');
         }
     }
     ...
});
  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值