Add example for non-animated tour
Browse files- index.html +67 -54
- src/driver.ts +2 -1
index.html
CHANGED
@@ -197,7 +197,8 @@
|
|
197 |
<h2>Tour Feature</h2>
|
198 |
<p>Examples below show the tour usage of driver.js.</p>
|
199 |
<div class="buttons">
|
200 |
-
<button id="basic-tour">
|
|
|
201 |
</div>
|
202 |
|
203 |
<ul>
|
@@ -331,61 +332,73 @@ npm install driver.js</pre
|
|
331 |
<script type="module">
|
332 |
import { driver } from "./src/driver.ts";
|
333 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
334 |
document.getElementById("basic-tour").addEventListener("click", () => {
|
335 |
const driverObj = driver({
|
336 |
-
|
337 |
-
steps: [
|
338 |
-
{
|
339 |
-
element: ".page-header",
|
340 |
-
popover: {
|
341 |
-
title: "New and Improved Driver.js",
|
342 |
-
description:
|
343 |
-
"Driver.js has been written from the ground up. The new version is more powerful, has less surprises, more customizable and tons of new features.",
|
344 |
-
side: "bottom",
|
345 |
-
align: "start",
|
346 |
-
},
|
347 |
-
},
|
348 |
-
{
|
349 |
-
element: ".page-header h1",
|
350 |
-
popover: {
|
351 |
-
title: "No Stacking Issues",
|
352 |
-
description:
|
353 |
-
"Unlike the older version, new version doesn't work with z-indexes so no more positional issues.",
|
354 |
-
side: "left",
|
355 |
-
align: "start",
|
356 |
-
},
|
357 |
-
},
|
358 |
-
{
|
359 |
-
element: ".page-header sup",
|
360 |
-
popover: {
|
361 |
-
title: "Improved Hooks",
|
362 |
-
description:
|
363 |
-
"Unlike the older version, new version doesn't work with z-indexes so no more positional issues.",
|
364 |
-
side: "bottom",
|
365 |
-
align: "start",
|
366 |
-
},
|
367 |
-
},
|
368 |
-
{
|
369 |
-
popover: {
|
370 |
-
title: "No Element",
|
371 |
-
description: "You can now have popovers without elements as well",
|
372 |
-
},
|
373 |
-
},
|
374 |
-
{
|
375 |
-
element: "#scrollable-area",
|
376 |
-
popover: {
|
377 |
-
title: "Scrollable Areas",
|
378 |
-
description: "There are no issues with scrollable element tours as well."
|
379 |
-
}
|
380 |
-
},
|
381 |
-
{
|
382 |
-
element: "#third-scroll-paragraph",
|
383 |
-
popover: {
|
384 |
-
title: "Nested Scrolls",
|
385 |
-
description: "Even the nested scrollable elements work now."
|
386 |
-
}
|
387 |
-
}
|
388 |
-
],
|
389 |
});
|
390 |
|
391 |
driverObj.drive();
|
|
|
197 |
<h2>Tour Feature</h2>
|
198 |
<p>Examples below show the tour usage of driver.js.</p>
|
199 |
<div class="buttons">
|
200 |
+
<button id="basic-tour">Animated Tour</button>
|
201 |
+
<button id="non-animated-tour">Non-Animated Tour</button>
|
202 |
</div>
|
203 |
|
204 |
<ul>
|
|
|
332 |
<script type="module">
|
333 |
import { driver } from "./src/driver.ts";
|
334 |
|
335 |
+
const basicTourSteps = [
|
336 |
+
{
|
337 |
+
element: ".page-header",
|
338 |
+
popover: {
|
339 |
+
title: "New and Improved Driver.js",
|
340 |
+
description:
|
341 |
+
"Driver.js has been written from the ground up. The new version is more powerful, has less surprises, more customizable and tons of new features.",
|
342 |
+
side: "bottom",
|
343 |
+
align: "start",
|
344 |
+
},
|
345 |
+
},
|
346 |
+
{
|
347 |
+
element: ".page-header h1",
|
348 |
+
popover: {
|
349 |
+
title: "No Stacking Issues",
|
350 |
+
description:
|
351 |
+
"Unlike the older version, new version doesn't work with z-indexes so no more positional issues.",
|
352 |
+
side: "left",
|
353 |
+
align: "start",
|
354 |
+
},
|
355 |
+
},
|
356 |
+
{
|
357 |
+
element: ".page-header sup",
|
358 |
+
popover: {
|
359 |
+
title: "Improved Hooks",
|
360 |
+
description:
|
361 |
+
"Unlike the older version, new version doesn't work with z-indexes so no more positional issues.",
|
362 |
+
side: "bottom",
|
363 |
+
align: "start",
|
364 |
+
},
|
365 |
+
},
|
366 |
+
{
|
367 |
+
popover: {
|
368 |
+
title: "No Element",
|
369 |
+
description: "You can now have popovers without elements as well",
|
370 |
+
},
|
371 |
+
},
|
372 |
+
{
|
373 |
+
element: "#scrollable-area",
|
374 |
+
popover: {
|
375 |
+
title: "Scrollable Areas",
|
376 |
+
description: "There are no issues with scrollable element tours as well.",
|
377 |
+
},
|
378 |
+
},
|
379 |
+
{
|
380 |
+
element: "#third-scroll-paragraph",
|
381 |
+
popover: {
|
382 |
+
title: "Nested Scrolls",
|
383 |
+
description: "Even the nested scrollable elements work now.",
|
384 |
+
},
|
385 |
+
},
|
386 |
+
];
|
387 |
+
|
388 |
+
document.getElementById("non-animated-tour").addEventListener("click", () => {
|
389 |
+
const driverObj = driver({
|
390 |
+
animate: false,
|
391 |
+
backdropColor: "blue",
|
392 |
+
opacity: 0.3,
|
393 |
+
steps: basicTourSteps,
|
394 |
+
});
|
395 |
+
|
396 |
+
driverObj.drive();
|
397 |
+
});
|
398 |
+
|
399 |
document.getElementById("basic-tour").addEventListener("click", () => {
|
400 |
const driverObj = driver({
|
401 |
+
steps: basicTourSteps,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
402 |
});
|
403 |
|
404 |
driverObj.drive();
|
src/driver.ts
CHANGED
@@ -88,11 +88,12 @@ export function driver(options: Config = {}) {
|
|
88 |
const hasPreviousStep = steps[stepIndex - 1];
|
89 |
|
90 |
const doneBtnText = currentStep.popover?.doneBtnText || getConfig("doneBtnText") || "Done";
|
|
|
91 |
|
92 |
highlight({
|
93 |
...currentStep,
|
94 |
popover: {
|
95 |
-
showButtons: ["next", "previous", "close"],
|
96 |
nextBtnText: !hasNextStep ? doneBtnText : undefined,
|
97 |
disableButtons: [...(!hasPreviousStep ? ["previous" as AllowedButtons] : [])],
|
98 |
onNextClick: () => {
|
|
|
88 |
const hasPreviousStep = steps[stepIndex - 1];
|
89 |
|
90 |
const doneBtnText = currentStep.popover?.doneBtnText || getConfig("doneBtnText") || "Done";
|
91 |
+
const allowsClosing = getConfig("allowClose");
|
92 |
|
93 |
highlight({
|
94 |
...currentStep,
|
95 |
popover: {
|
96 |
+
showButtons: ["next", "previous", ...(allowsClosing ? ["close" as AllowedButtons] : [])],
|
97 |
nextBtnText: !hasNextStep ? doneBtnText : undefined,
|
98 |
disableButtons: [...(!hasPreviousStep ? ["previous" as AllowedButtons] : [])],
|
99 |
onNextClick: () => {
|