新手引导 intro.js(转)

本文链接:https://blog.csdn.net/lzq_20150715/article/details/89435203

 1 introJs().setOptions({
 2   prevLabel:"", //上一步骤按钮的文字
 3   nextLabel:"", //下一步骤按钮的文字
 4   skipLabel:'<span class="close"></span>', //退出按钮的文字(可以用html标签)
 5   doneLabel:'<span class="close"></span>',// 完成按钮的文字,不会和skip同时出现
 6   showBullets:false, // 是否显示小圆点
 7   showStepNumbers:false, // 是否显示数字,
 8   exitOnOverlayClick:false,// 点击蒙层是否退出
 9   hidePrev:true,//没有上一个步骤是否隐藏上一步按钮
10   hideNext:true,//没有下一个步骤是否隐藏下一步按钮
11   keyBoardNavigation:false, // 是否可以支持键盘快捷键上下步骤
12 }).addSteps([
13 {
14   element:document.getElementById(""), // 高亮的元素
15   intro:"<div><h1>22</h1><ul><li>2222</li></ul></div>",//提示的内容
16   position:"bottom-middle-aligned",// 提示内容的位置
17   tooltipClass:"", // 提示的内容的类名
18   highlightClass:"", // 高亮的内容的类名
19   disableInteraction:true,// 是否禁止交互,如链接不能点击,输入框无法填写
20   scrollPadding:20px, // 滚动到元素的距离(会自动滚动到元素,可是有时候你希望他再往下滚动一下)
21   
22 }
23 ]).start().onChange(function(){
24  
25  
26 }).onexit(function(){
27  
28 })

intro.js,很强大,因为我这个新手引导定制的地方比较多,它支持我插入div等标签,修改样式等,还可以根据需要用js插入各种元素和事件,我很满意

有的时候获取元素时候,获取不到,所以需要一个等待元素出现的方法

 1 define([],function(){
 2  'use strict';
 3   var util={
 4     // 等待元素出现 参数{id:"",class:""}
 5     waitDom:function(domSelect){
 6      return new Promise((resolve,reject)=>{
 7        var dom;
 8        var timer=setInterval(function(){
 9         if(!(domSelect instanceof Object)){
10           reject("参数格式不正确")
11         } 
12         for(let k in domSelect){
13            switch(k){
14            case 'id':
15             dom=document.getElementById(domSelect[k]);
16             break;
17            case 'class':
18             dom=document.getElementsByClassName(domSelect[k])[0];
19             break;
20           } 
21          }
22         if(dom){
23           resolve(true,timer)
24          }
25        },300)
26  
27      }).then(function(a,timer){
28        if(a){
29         clearInterval(timer)
30       }
31      }).catch(function(e){
32        console.log(e)
33      })
34     }
35   };
36  retruen util
37 })
1 util.waitDom({class:""}).then(function(){})
原文地址:https://www.cnblogs.com/nlyangtong/p/11934424.html