vue+intro.js插件實(shí)現(xiàn)引導(dǎo)功能
前言:
使用 intro.js這個(gè)插件,來(lái)實(shí)現(xiàn)一個(gè)引導(dǎo)性的效果,適用場(chǎng)景,比如:新手引導(dǎo)頁(yè),操作說(shuō)明等等
效果圖:

官網(wǎng)地址:點(diǎn)我
實(shí)現(xiàn)步驟:
1、安裝
npm install intro.js --save pnpm/cnpm 用法一樣 yarn add intro.js
2、使用方法1,新建一個(gè)單獨(dú)vue組件
template部分:
<template>
<div class='card-demo'>我是界面寫(xiě)入的元素</div>
</template>js部分:
import intro from "intro.js" // introjs庫(kù) import "intro.js/introjs.css" // introjs默認(rèn)css樣式
data() {
return {
option: {
// 參數(shù)對(duì)象
prevLabel: "上一步",
nextLabel: "下一步",
skipLabel: "跳過(guò)",
doneLabel: "完成",
tooltipClass: "intro-tooltip" /* 引導(dǎo)說(shuō)明文本框的樣式 */,
// highlightClass: 'intro-highlight', /* 說(shuō)明高亮區(qū)域的樣式 */
exitOnEsc: true /* 是否使用鍵盤(pán)Esc退出 */,
exitOnOverlayClick: false /* 是否允許點(diǎn)擊空白處退出 */,
keyboardNavigation: true /* 是否允許鍵盤(pán)來(lái)操作 */,
showBullets: false /* 是否使用點(diǎn)顯示進(jìn)度 */,
showProgress: false /* 是否顯示進(jìn)度條 */,
scrollToElement: true /* 是否滑動(dòng)到高亮的區(qū)域 */,
skipHighlight: true,
overlayOpacity: 0.5, // 遮罩層的透明度 0-1之間
positionPrecedence: [
"bottom",
"top",
"right",
"left",
] /* 當(dāng)位置選擇自動(dòng)的時(shí)候,位置排列的優(yōu)先級(jí) */,
disableInteraction: false /* 是否禁止與元素的相互關(guān)聯(lián) */,
hidePrev: true /* 是否在第一步隱藏上一步 */,
hideNext: false /* 是否在最后一步隱藏下一步 */,
steps: [] /* steps步驟,可以寫(xiě)個(gè)工具類保存起來(lái) */,
},
}
}methods:{
init(){
let steps= [{
title: 'Welcome',
intro: 'Hello World! ??'
},
{ // 圖片的可以展示
intro: '<img src="https://i.giphy.com/media/ujUdrdpX7Ok5W/giphy.webp" onerror="this.onerror=null;this.src=\'https://i.giphy.com/ujUdrdpX7Ok5W.gif\';" alt="">'
},
{ // 可以指定界面上的元素,然后顯示指定內(nèi)容
element: document.querySelector('.card-demo'),
intro: 'This step focuses on an element'
}]
introJs().setOptions({
...this.option,// 配置屬性
steps: steps // 每一步展示的內(nèi)容
})
.oncomplete(() => { console.log("點(diǎn)擊結(jié)束按鈕后執(zhí)行的事件") })
.onexit(() => { console.log("點(diǎn)擊跳過(guò)按鈕后執(zhí)行的事件") })
.onbeforeexit(() => { console.log('確認(rèn)完畢之后執(zhí)行的事件') })
.start()
},
}mounted(){
this.init()
}3、使用方法2
- data-title:標(biāo)題文字
- data-intro:提示信息內(nèi)容
- data-step:步驟的編號(hào)(優(yōu)先級(jí))
- data-tooltipClass:為提示定義CSS類
- data-highlightClass:將CSS類附加到helperLayer
- data-position:提示的位置,默認(rèn)是bottom
- data-scrollTo:滾動(dòng)到的元素,element或tooltip。默認(rèn)值為element。
- data-disable-interaction:是否禁用與突出顯示的框內(nèi)的元素的交互
template部分:
<template>
<div data-title="test1" data-intro="intro-test1" data-step='1'>
第一步
</div>
<div data-title="test2" data-intro="intro-test2" data-step='2'>
第二步
</div>
<div data-title="test3" data-intro="intro-test3" data-step='3'>
第三步
</div>
</template>js部分:
mounted(){
introJs().start()
}4、鍵盤(pán)事件
window.addEventListener('keydown', function(event) {
// 左箭頭
if(event.keyCode == 37) {
console.log('左箭頭被按下');
// 在此處處理左箭頭的邏輯
}
// 右箭頭
else if(event.keyCode == 39) {
console.log('右箭頭被按下');
// 在此處處理右箭頭的邏輯
}
});到此這篇關(guān)于vue+intro.js插件實(shí)現(xiàn)引導(dǎo)功能的文章就介紹到這了,更多相關(guān)vue引導(dǎo)功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Elementui表格組件+sortablejs實(shí)現(xiàn)行拖拽排序的示例代碼
這篇文章主要介紹了Elementui表格組件+sortablejs實(shí)現(xiàn)行拖拽排序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
圖文詳解如何在vue3+vite項(xiàng)目中使用svg
SVG指可伸縮矢量圖形,用來(lái)定義用于網(wǎng)絡(luò)的基于矢量的圖形,下面這篇文章主要給大家介紹了關(guān)于如何在vue3+vite項(xiàng)目中使用svg的相關(guān)資料,需要的朋友可以參考下2021-11-11
vue中使用echarts制作圓環(huán)圖的實(shí)例代碼
這篇文章主要介紹了vue中使用echarts制作圓環(huán)圖的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
關(guān)于element-ui表單中限制輸入純數(shù)字的解決方式
這篇文章主要介紹了關(guān)于element-ui表單中限制輸入純數(shù)字的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09
vue中ref和$refs獲取元素dom、獲取子組件數(shù)據(jù)與方法調(diào)用示例
在Vue3中要獲取子組件的DOM節(jié)點(diǎn),你可以使用ref來(lái)引用子組件,然后通過(guò)$refs來(lái)訪問(wèn)子組件的DOM,下面這篇文章主要給大家介紹了關(guān)于vue中ref和$refs獲取元素dom、獲取子組件數(shù)據(jù)與方法調(diào)用的相關(guān)資料,需要的朋友可以參考下2024-07-07

