Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

vue-js-driver

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-js-driver

基于driver.js封装的vue2版本轻量级新手引导库

  • 1.0.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
15
increased by36.36%
Maintainers
1
Weekly downloads
 
Created
Source

vue-js-driver

npm GitHub top language GitHub file size in bytes NPM

基于driver.js封装的vue2版轻量级新手引导库

✨ 特性

  • 🚀 简单轻量
  • 💪 高度可定制
  • ✋ 阻止用户交互
  • ⌨️ 支持键盘控制
  • 👏 突出显示任何内容
  • 🆓 开源版本支持免费商用
  • 🌀 所有主流浏览器表现一致

🎬 在线体验

Live Demo

demo.gif

📦 安装

npm install vue-js-driver
yarn add vue-js-driver
pnpm add vue-js-driver

👉 快速上手

引入

// main.js全局引入 或 HelloWorld.vue组件内引入
import Vue from 'vue';

import vueJsDriver from 'vue-js-driver';
import driverConfig from '@/config/driverConfig.js';

Vue.use(vueJsDriver, driverConfig);

配置Driver

// driverConfig.js
export default {
  className: '', // 包裹Driver弹窗的类名,避免css作用域污染
  allowClose: false, // 是否允许点击遮罩时关闭
  opacity: 0, // 背景透明度,`0` 表示只弹窗无遮罩
  padding: 0, // 元素与边缘的距离
  stageBackground: 'transparent', // 高亮元素的背景颜色
  prevBtnText: '上一步->', // 当前步骤上一步按钮的文本
  nextBtnText: '下一步->', // 当前步骤下一步按钮的文本
  closeBtnText: '关闭x', // 当前步骤关闭按钮的文本
  doneBtnText: '完成√', // 最后一个按钮的文本
  showButtons: false // 是否显示底部的控制按钮
  ...
}

配置步骤

// steps.js
export default {
  homeSteps: [ // 首页步骤
    {
      element: '#welcome', // 高亮的元素,内部通过querySelector获取元素,还可通过DOM的方法获取,例如document.getElementById('welcome')
      popover: {
          title: '这是标题', // 弹窗的标题,为空则不显示,注:支持HTML
          description: '这是描述', // 弹窗的主体内容,注:支持HTML
          position: 'right', // 弹窗显示的位置
      },
      padding: 25 // 弹窗与高亮元素的内边距,会扩大高亮元素的宽/高
      ...
      // 更多配置:https://github.com/kamranahmedse/driver.js/blob/master/src/index.js
    }
  ],
  otherSteps: [], // 其他页面步骤
  ...
}

使用

<!-- HelloWorld.vue -->
<template>
  <div class="hello">
    <h1 id="welcome">{{ msg }}</h1>
    <p class="description">
      For a guide and recipes on how to configure / customize this project,<br>
      check out the
      <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
    </p>
    <h3 @click="showDriver">显示引导Show Demo</h3>
    <h3 @click="highSingleElement">突出单个元素</h3>
    <h3 @click="highSingleElement2">突出单个元素(含配置)</h3>
  </div>
</template>

<script>
import steps from '../steps.js';

export default {
  props: {
    msg: String
  },
  methods: {
    showDriver () {

      // 通过$vueJsDriver来调用,1代表跳转到第二步,不传默认跳转至第一步
      this.$vueJsDriver.showDriver(steps.homeSteps, 1);
    },
    highSingleElement () {
      this.$sfDriverJs.highlight('#welcome');
    },
    highSingleElement2 () {
      this.$sfDriverJs.highlight({
        element: '#welcome',
        popover: {
          title: 'Title for the Popover',
          description: 'Description for it',
          position: 'bottom',
          offset: 20
        }
      });
    }
  },
  ...
}

API

Driver选项

参数说明类型/回调参数可选值默认值
className包裹Driver弹窗的类名stringvue-js-driver
animate是否开启过渡动画booleantrue
opacity背景透明度,0 表示只弹窗无遮罩number0-10.75
padding元素与边缘的距离number10
allowClose是否允许点击遮罩时关闭booleantrue
overlayClickNext是否允许点击遮罩时移动到下一步booleanfalse
stageBackground高亮元素的背景颜色string#ffffff
doneBtnText最后一个按钮的文本string完成
closeBtnText当前步骤关闭按钮的文本string关闭
nextBtnText当前步骤下一步按钮的文本string下一步
prevBtnText当前步骤上一步按钮的文本string上一步
showButtons是否显示底部的控制按钮booleantrue
keyboardControl是否允许键盘控制,Esc关闭、操作键(←上一步、→下一步)用于移动booleantrue
scrollIntoViewOptionsscrollIntoView() 方法的选项objectnull
onHighlightStarted元素即将高亮时调用function(element){}
onHighlighted元素完全高亮时调用function(element){}
onDeselected取消选择时调用function(element){}
onReset遮罩将要关闭时调用function(element){}
onNext任何步骤中移动到下一步时调用function(element){}
onPrevious任何步骤中移动到上一步时调用function(element){}

Step步骤选项

参数说明类型/回调参数可选值默认值
element需高亮的选择器字符或Node,内部通过querySelector获取元素,还可通过DOM的方法获取string/Node
stageBackground高亮元素的背景颜色string#ffffff
padding弹窗与高亮元素的内边距,会扩大高亮元素的宽/高number
onNext从当前步骤移动到下一步时调用function(element){}
onPrevious从当前步骤移动到上一步时调用function(element){}
popover弹窗的配置项,具体参考以下选项,注:为空不会显示弹窗object
className除了Driver选项中的通用类名称之外,还可以指定包裹当前指定步骤弹窗的类名string''
title弹窗的标题,为空则不显示,注:支持HTMLstring
description弹窗的主体内容,注:支持HTMLstring
position弹窗的位置stringleft, left-center, left-bottom, top, top-center, top-right, right, right-center, right-bottom,bottom, bottom-center, bottom-right, mid-centerbottom
offset弹窗的平移距离,如弹窗在高亮元素下方,offet控制左右位移,margin控制上下number可负数
margin弹窗与高亮元素的外边距number可负数
padding弹窗与高亮元素的内边距number可负数
showButtons是否显示底部的控制按钮booleantrue
doneBtnText最后一个按钮的文本stringDone
closeBtnText当前步骤关闭按钮的文本stringClose
nextBtnText当前步骤下一步按钮的文本stringNext
prevBtnText当前步骤上一步按钮的文本stringPrevious

方法

事件名称说明参数
showDriver启用Driver(steps, index)steps所有步骤的参数,index开始高亮的索引
isActivated检查Driver是否激活,注:非事件,为Driver的属性true激活,false未激活
defineSteps设置要高亮显示的步骤数据(steps)高亮步骤的数组
start启用引导(stepNumber)开始高亮的位置,默认为0
moveNext移动到步骤列表中的下一步
movePrevious移动到步骤列表中的上一步
hasNextStep检查是否有可移动到的下一步的元素
hasPreviousStep检查是否有可移动到的上一步的元素
preventMove阻止当前移动,如果要执行某些异步任务并手动移动到下一步,则在onNextonPrevious中很有用
highlight使用查询选择器或步骤定义高亮显示的元素(string|stepDefinition)查询选择器或步骤数据
refresh重新定位弹出窗口和突出显示的元素
reset重置遮罩并且清屏(immediate)立即重置,不要动画,默认为false
hasHighlightedElement检查是否有高亮元素
const activeElement = $vueJsDriver.getHighlightedElement()获取当前高亮元素
activeElement.getCalculatedPosition获取当前高亮元素的坐标
activeElement.hidePopover隐藏弹窗
activeElement.showPopover显示弹窗
activeElement.getNode获取当前高亮元素后面的DOM元素
const lastActiveElement = $vueJsDriver.getLastHighlightedElement()获取最后一个高亮元素

您可以使用各种选项来实现您可能想要的任何选择

🔑 License

MIT

Keywords

FAQs

Package last updated on 11 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc