引导页Intro.js使用

介绍:

  Intro.js是一个轻量级的js库,可以快速实现新手引导功能。

安装:

  npm install intro.js --save

引入:

// main.js中引入

import intro from 'intro.js'
import 'intro.js/introjs.css'

Vue.prototype.$intro = intro;

使用:

<template>
 <el-dropdown @command="handleCommand">
	<el-dropdown-menu slot="dropdown">
	    <el-dropdown-item command="loginOut">退出登录</el-dropdown-item>
	    <el-dropdown-item command="beginIntro">新手引导</el-dropdown-item>
	</el-dropdown-menu>
 </el-dropdown>
</template>

<script>
export default {
  data() {
    return {
      introOption: { 
        prevLabel: '上一步',
        nextLabel: '下一步',
        skipLabel: '跳过',
        doneLabel: '开始使用',
        tooltipClass: 'intro-tooltip', /* 引导说明文本框的样式 */
        exitOnEsc: true, /* 是否使用键盘Esc退出 */
        exitOnOverlayClick: false, /* 是否允许点击空白处退出 */
        keyboardNavigation: true, /* 是否允许键盘来操作 */
        showBullets: false, /* 是否显示小圆点 */
        showStepNumbers: true, /* 是否显示数字 */
        stepNumbersOfLabel: '/', 
        showProgress: false, /* 是否显示进度条 */
        scrollToElement: true, /* 是否滑动到高亮的区域 */
        overlayOpacity: 0.65, // 遮罩层的透明度 0-1之间
        positionPrecedence: ['bottom', 'top', 'right', 'left'], /* 当位置选择自动的时候,位置排列的优先级 */
        disableInteraction: true, /* 是否禁止与元素的相互关联 */
        hidePrev: false, /* 是否在第一步隐藏上一步 */
        hideNext: false, /* 是否在最后一步隐藏下一步 */
        steps: [], /* steps步骤 */
      }
   };
},
methods: {
	initGuide() {
      // 绑定标签元素的选择器数组
      this.introOption.steps = [
        { title: '左侧菜单', element: '.el-menu', intro: "点击左侧菜单,可以进入相应的页面"},
        { title: '顶部菜单', element: '.tags-view-item.active', intro: "点击菜单,可以快速定位到浏览过的页面" },
        { title: '主题设置', element: '.el-icon-s-tools', intro: '点击此处可修改主题色' }
      ]
      this.$intro()
        .setOptions(this.introOption)
        // 点击结束按钮后执行的事件
        .oncomplete(() => {
          console.log('点击结束按钮后执行的事件')
        })
        // 点击跳过按钮后执行的事件
        .onexit(() => {
          console.log('点击跳过按钮后执行的事件')
        })
        // 确认完毕之后执行的事件
        .onbeforeexit(() => {
          console.log('确认完毕之后执行的事件')
        })
        .start()
	},
	handleCommand(type){
	  if(type == 'loginOut'){
	    this.loginOut();
	  }else if(type == 'beginIntro'){
	    this.initGuide();
	  }
	}
  }
}
</script>
<style lang="less">
/* 重置引导组件样式 */
.intro-tooltip {
  width: 500px;
  max-width: 500px;
  padding: 32px;
  border-radius: 16px;
  box-sizing: border-box;
}
/* 引导提示框的位置 */
.introjs-bottom-left-aligned {
  left: 45% !important;
}
.introjs-right,
.introjs-left {
  top: 30%;
}
.intro-highlight {
  background: rgba(255,255,255,0.5);
}
.introjs-arrow {
  border: 8px solid transparent;
}
.introjs-arrow.top {
  left: 16px;
  top: -16px;
}
.introjs-arrow.left {
  left: -16px;
  top: 16px;
}
.introjs-arrow.top-right {
  right: 16px;
  top: -16px;
}
.introjs-tooltip-header {
  padding: 0 !important;
}
.introjs-tooltip-title {
  font-size: 20px;
}
.introjs-skipbutton {
  width: auto;
  height: auto;
  line-height: 30px;
  color: rgba(0,0,0,.45) !important;
  font-size: 16px !important;
  font-weight: normal !important;
}
.introjs-tooltiptext {
  line-height: 32px;
  font-size: 16px !important;
  padding: 15px 0 !important;
  color: rgba(0,0,0,.65);
}
.introjs-helperNumberLayer {
  display: inline-block;
  position: absolute;
  bottom: 32px;
  padding: 22px 0;
}
/* 提示框按钮 */
.introjs-tooltipbuttons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  border: none !important;
}
.introjs-button {
  text-align: center;
  text-shadow: none;
  padding: 9px 20px !important;
  font-size: 16px !important;
  border-radius: 4px !important;
  border: none !important;
  &:focus {
    box-shadow: none!important;
  }
}
.introjs-prevbutton {
  color: rgba(0,0,0,0.45);
  background: #fff !important;
}
.introjs-nextbutton {
  margin-left: 4px;
  color: #fff !important;
  background-color: #D0392D !important;
}
</style>

演示:  

https://v-blog.csdnimg.cn/asset/2f620f9fb2288de7ebf7cf028760cc6e/play_video/cb12d2c358681aef5932316cb2cc6c83.m3u8 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 Intro.js 生成引导面的示例代码。这个示例中,我们将介绍如何创建一个简单的引导面,并使用一些样式来美化它: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Intro.js 示例</title> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/intro.js/3.3.1/introjs.min.css"> <style> .introjs-tooltip { max-width: 400px; border-radius: 3px; box-shadow: 0 0 20px rgba(0,0,0,0.3); background-color: #fff; color: #333; } .introjs-arrow { border-top-color: #fff; } .introjs-tooltipbuttons { text-align: center; } .introjs-button { background-color: #e1e1e1; color: #333; border-radius: 3px; padding: 5px 10px; margin: 5px; cursor: pointer; } .introjs-button:hover { background-color: #d2d2d2; } .introjs-button:focus { outline: none; } </style> </head> <body> <h1>Intro.js 示例</h1> <p>这是一个使用 Intro.js 创建的引导面示例。</p> <button id="startBtn">开始引导</button> <script src="https://cdnjs.cloudflare.com/ajax/libs/intro.js/3.3.1/intro.min.js"></script> <script> document.getElementById("startBtn").addEventListener("click", function() { introJs().setOptions({ steps: [ { element: document.querySelector('h1'), intro: "这是面的标题。" }, { element: document.querySelector('p'), intro: "这是面的主体内容。" }, { element: document.querySelector('#startBtn'), intro: "这是开始引导按钮。", position: 'bottom' } ], showBullets: false, exitOnOverlayClick: false, exitOnEsc: false }).start(); }); </script> </body> </html> ``` 在这个示例中,我们使用了一些 CSS 样式来美化 Intro.js 的工具提示框和按钮。我们还使用了 `setOptions()` 方法来设置引导面的参数选项,例如 `steps`、`showBullets`、`exitOnOverlayClick` 和 `exitOnEsc` 等。最后,我们在按钮的点击事件中调用 `introJs().start()` 方法启动引导面。 你可以根据自己的需求调整这个示例代码,以生成自己的引导面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值