Driver.js 引導
一、介紹
Driver.js 是一個輕量級(~ 4kb gzip),無需依賴但功能強大的原生 JavaScript 。相容所有主流瀏覽器,可幫助你將使用者的注意力集中在頁面上。
特色功能:
突出顯示頁面上的任何任何專案
鎖定使用者互動
建立功能介紹
為使用者新增聚焦器
高度可定製 – 可在任何地方使用,可覆蓋
介面友好 – 可通過按鍵控制
輕量級 – gzip 壓縮後只有約4kb
在所有主流瀏覽器中保持一致的行為
https://github.com/kamranahmedse/driver.js
https://kamranahmed.info/driver.js/
二、安裝
vue:
npm install driver.js
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';
Vue.prototype.$driver = new Driver();
或下載後直接引入
<link rel="stylesheet" href="/dist/driver.min.css">
<script src="/dist/driver.min.js"></script>
三、用法:
1、突出單個元素,無彈窗
示例1:突出顯示
this.$driver.highlight('#status');
示例2:當使用者與之互動時突出顯示一個元素(文字框獲得焦點時突出)
document.getElementById('creation-input')
.addEventListener('focus', (e) => {
this.$driver.focus('#creation-input');
});
2、突出顯示和彈出框
可以使用彈出視窗在突出顯示的元素旁邊顯示其他詳細資訊。
ps:如果未指定位置或將其指定為auto,它將自動找到彈出框的合適位置並顯示。
ps:title與description可指定html。
this.$driver.highlight({
element: '#status',
popover: {
title: '彈窗標題',//也可以使用HTML標籤
description: '彈窗內容',//也可以使用HTML標籤
position: 'bottom',//位置,可選值: left, left-center, left-bottom, top, top-center, top-right, right, right-center, right-bottom, bottom, bottom-center, bottom-right, mid-center
offset: 20,//位移大小
}
});
3、設定分步引導介紹
this.$driver.defineSteps([
{
element: '#status1',
popover: {
title: '彈窗1',
description: 'Body of the popover',
position: 'left'
}
},
{
element: '#status2',
popover: {
title: '彈窗2',
description: 'Body of the popover',
position: 'top'
}
},
{
element: '#status3',
popover: {
title: '彈窗3',
description: 'Body of the popover',
position: 'right'
}
},
]);
this.$driver.start();
4、禁用外部點選關閉
const driver = new Driver({
allowClose: false,//禁用外部點選關閉
});
driver.highlight({
element: '#some-element',
popover: {
title: '<em>An italicized title</em>',
description: 'Description may also contain <strong>HTML</strong>'
}
});
如果使用此選項,則對於多步驅動程式,將在完成彈出視窗後將其關閉,或者可以通過程式設計方式將其關閉。對於單元素彈出框,您需要正確關閉它,否則它不會被關閉。
driver.reset()
5、無遮罩層
只需要將不透明度設定為“ 0”。
const driver = new Driver({
opacity: 0,
});
driver.highlight({
element: '#run-element-without-popover',
popover: {
title: 'Title for the Popover',
description: 'Description for it',
position: 'top', // can be `top`, `left`, `right`, `bottom`
}
});
6、api
驅動定義:
const driver = new Driver({
className: 'scoped-class', // 包裝類名
animate: true, // 動畫
opacity: 0.75, // 遮罩層不透明度(0表示僅彈出且不覆蓋)
padding: 10, // 邊距
allowClose: true, // 點選遮罩層是否關閉
overlayClickNext: false, // Should it move to next step on overlay click
doneBtnText: 'Done', // 最後一個按鈕上的文字
closeBtnText: 'Close', // “關閉”按鈕上的文字
nextBtnText: 'Next', // “下一步”按鈕上的文字
prevBtnText: 'Previous', // “上一步”按鈕上的文字
showButtons: false, // 不顯示控制按鈕(彈窗底部)
keyboardControl: true, // 允許通過鍵盤進行控制(esc以關閉,箭頭鍵移動)
scrollIntoViewOptions: {}, // We use `scrollIntoView()` when possible, pass here the options for it if you want any
onHighlightStarted: (Element) {}, // 在元素即將突出顯示時呼叫
onHighlighted: (Element) {}, // 當元素完全突出顯示時呼叫
onDeselected: (Element) {}, // 取消選擇元素時呼叫
onReset: (Element) {}, // 覆蓋即將清除時呼叫
onNext: (Element) => {}, // 在任何步驟轉到下一步時呼叫
onPrevious: (Element) => {}, // 在任何步驟轉到上一步時呼叫
});
步驟定義:
會覆蓋new Driver()定義的內容。
const stepDefinition = {
element: '#some-item',
popover: {
className: 'popover-class', // 包裝類名
title: 'Title', // 彈窗標題
description: 'Description', // 彈窗內容
showButtons: false, // 不顯示控制按鈕(彈窗底部)
closeBtnText: 'Close', // “關閉”按鈕上的文字
nextBtnText: 'Next', // “下一步”按鈕上的文字
prevBtnText: 'Previous', // “上一步”按鈕上的文字
}
};
api方法:
const driver = new Driver(driverOptions);
const isActivated = driver.isActivated; //檢查驅動程式是否處於活動狀態
driver.defineSteps([ stepDefinition1, stepDefinition2, stepDefinition3 ]); // 步驟列表
driver.start(stepNumber = 0); // 開始執行定義的步驟,stepNumber步驟索引
driver.moveNext(); // 轉到步驟列表defineSteps中的下一步
driver.movePrevious(); // 轉到步驟列表中的上一步
driver.hasNextStep(); // 檢查是否有下一步
driver.hasPreviousStep(); // 檢查是否有上一步
// 阻止當前移動。如果要執行某些非同步任務並手動移到下一步,則在“onNext”或“onPrevious”中很有用
driver.preventMove();
driver.highlight(string|stepDefinition); // 使用查詢選擇器或步驟定義突出顯示元素
driver.refresh(); // 重新定位彈出視窗和突出顯示的元素
driver.reset(); // 重置覆蓋並清除螢幕
//當你想在一個驅動程式執行時執行另一個驅動程式例項時,可以傳遞一個布林引數來立即清除,而不執行動畫等操作
driver.reset(clearImmediately = false);
driver.hasHighlightedElement(); // 檢查是否有突出顯示的元素
const activeElement = driver.getHighlightedElement(); // 獲取螢幕上當前突出顯示的元素
const lastActiveElement = driver.getLastHighlightedElement(); // 獲取最後一個突出顯示的元素
activeElement.getCalculatedPosition(); // 獲取活動元素的螢幕座標
activeElement.hidePopover(); // 隱藏彈窗
activeElement.showPopover(); // 顯示彈窗
activeElement.getNode(); // 獲取此元素後面的DOM元素
相關文章
- vue driver.js頁面分步引導VueJS
- vue 中使用driver.js來進行頁面分步引導VueJS
- 在vue專案中 使用driver.js來進行頁面分步引導VueJS
- 在Vue專案中使用driver.js(頁面分佈引導)外掛VueJS
- Linux引導過程和GRUB引導器Linux
- iOS引導頁iOS
- 全面瞭解遊戲引導:6大引導形式,哪個最好?遊戲
- 引導分析原則
- Nginx 新手配置引導Nginx
- Mac黑蘋果引導工具Mac蘋果
- 引導濾波GuidedFilterGUIIDEFilter
- Android新手引導ViewAndroidView
- iOS新特性引導頁iOS
- 引導系統-MBR(轉)
- linux引導和服務Linux
- 重建Windows引導分割槽Windows
- win10如何修復引導 win10引導怎麼修復Win10
- histb 引導核心 boot_cmd 引數含義boot
- win10怎麼修復uefi引導_win10如何重建uefi引導Win10
- 用 Win7 引導 grub4dos,以及用 grub 引導 Win7Win7
- Netty 框架學習 —— 引導Netty框架
- Gradle系列-引導篇(一)Gradle
- udev控制磁碟引導順序dev
- iOS引導頁的編寫iOS
- 主引導扇區的理解
- 從EPROM引導Linux(轉)Linux
- 加快Linux的引導(轉)Linux
- 建立多重引導系統(轉)
- win10引導選項在哪 win10設定引導選項的辦法Win10
- Linux 引導過程內幕Linux
- 使用Java程式設計引導JPAJava程式設計
- 轉載分享:淺談引導盤
- 不同型別的Syslinux 引導型別Linux
- Linux與Windows雙引導風險LinuxWindows
- Android高亮引導控制元件Android控制元件
- Netty中的引導類BootstrapNettyboot
- mysql -- 基本的鎖機制導引MySql
- 使用Grub Rescue恢復Ubuntu引導Ubuntu