nz-tour

WebJar for nz-tour

License

License

MIT
GroupId

GroupId

org.webjars.bower
ArtifactId

ArtifactId

nz-tour
Last Version

Last Version

1.2.1
Release Date

Release Date

Type

Type

jar
Description

Description

nz-tour
WebJar for nz-tour
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/nozzle/nzTour

Download nz-tour

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.bower/nz-tour/ -->
<dependency>
    <groupId>org.webjars.bower</groupId>
    <artifactId>nz-tour</artifactId>
    <version>1.2.1</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.bower/nz-tour/
implementation 'org.webjars.bower:nz-tour:1.2.1'
// https://jarcasting.com/artifacts/org.webjars.bower/nz-tour/
implementation ("org.webjars.bower:nz-tour:1.2.1")
'org.webjars.bower:nz-tour:jar:1.2.1'
<dependency org="org.webjars.bower" name="nz-tour" rev="1.2.1">
  <artifact name="nz-tour" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.bower', module='nz-tour', version='1.2.1')
)
libraryDependencies += "org.webjars.bower" % "nz-tour" % "1.2.1"
[org.webjars.bower/nz-tour "1.2.1"]

Dependencies

compile (1)

Group / Artifact Type Version
org.webjars.bower : angular jar [1.2.8,2)

Project Modules

There are no modules declared in this project.

⛔️ DEPRECATED

This repo is no longer being maintained (issues and pull requests are not being monitored). Consider using https://github.com/tourjs/Tour instead. If you would like to take over, please open an issue.


nzTour

Join the chat at https://gitter.im/nozzle/nzTour

Touring and on-boarding made simple for AngularJS.

Awesome Demo

Features

  • Responsive & Intelligent
  • Automagic Positioning
  • Promise Driven Events & Hooks (Because we <3 Angular)
  • nzTour doesn't touch your DOM (more info below)

Installation & Usage

  1. $ bower/npm install nz-tour --save
  2. Include jQuery (before Angular)
  3. Include dist/nz-tour.min.js and dist/nz-tour.min.css files.
  4. Add nzTour as a dependency in your app.
  5. Inject the nzTour service anywhere in your app.

Simple Usage

var tour = {
	config: {} // see config
    steps: [{
        target: '#first-element',
        content: 'This is the first step!',
    }, {
        target: '.some .other .element',
        placementPriority: [ 'right', 'top', 'bottom', 'left' ],
        content: 'Blah blah blah. I prefer to show up on the right.',
    }, {
        target: '#menu-element',
        content: 'I guess this is a menu!',
    }, {
        target: '#last-element',
        content: 'It is over! :(',
    }]
};

nzTour.start(service.tours[tour])
    .then(function() {
        console.log('Tour Finished!');
    })
    .catch(function() {
        console.log('Tour Aborted!')
    });

Config

Defaults:

var tour = {
	config: {
        mask: {
            visible: true, // Shows the element mask
            visibleOnNoTarget: false, // Shows a full page mask if no target element has been specified
            clickThrough: false, // Allows the user to interact with elements beneath the mask
            clickExit: false, // Exit the tour when the user clicks on the mask
            scrollThrough: true // Allows the user to scroll the scrollbox or window through the mask
            color: 'rgba(0,0,0,.7)' // The mask color
        },
        scrollBox: 'body', // The container to scroll when searching for elements
        previousText: 'Previous',
        nextText: 'Next',
        finishText: 'Finish',
        showPrevious: true, // Setting to false hides the previous button
        showNext: true // Setting to false hides the next button
        animationDuration: 400, // Animation Duration for the box and mask
        placementPriority: ['bottom', 'right', 'top','left'],
        dark: false, // Dark mode (Works great with `mask.visible = false`)
        disableInteraction: false, // Disable interaction with the highlighted elements
        highlightMargin: 0, // Margin of the highglighted area
        disableEscExit: false // Disable end of tour when pressing ESC,
        onClose: function() {} //Function called when the tour is closed
        onComplete: function() {} //Function called when the tour is completed
    },
	steps: []
}

Shortcut Keys

  • Left/Right Arrow keys - Previous/Next
  • Esc - Abort the tour
  • 1-9 - Goto step 1-9

API

####.start(tour) - Starts a Tour Params:

  • tour: Tour Object

Returns:

  • Promise that resolves when the tour is finished and rejected when aborted.

####.stop() - Stops a Tour Returns:

  • Promise that resolves when the tour is stopped.

####.pause() - Pauses a Tour Returns:

  • Promise that resolves when the tour is paused and hidden.

####.next() - Goes to the next step in the current tour Returns:

  • Promise that resolves when the next step is reached

####.previous() - Goes to the previous step in the current tour

  • Promise that resolves when the previous step is reached

####.gotoStep(step): - Goes to a specific step in the tour Params:

  • step: The number of the step starting at 1,2,3...

Returns:

  • Promise that resolves when the specific step is reached

Promising Event Hooks

  • Before - function that returns a promise
  • After - function that returns a promise

Example

var tour = {
	steps: [{
        target: '#first-element',
        content: 'This is the first step!',
    }, {
        target: '.some .other .element',
        content: 'Blah blah blah.',
        showPrevious: false,
        before: function(direction){
            if(direction === -1)
                console.log('coming from next step');
            else if (direction === 1)
                console.log('coming from previous step');
            else
                console.log('started at this step');

        	var d = $q.defer();
        	// Do something amazing
        	d.resolve(); // or d.reject()
        	return d.promise
    	}
    }, {
        target: '#menu-element',
        content: 'I guess this is a menu!',
        after: function(direction){
        	var d = $q.defer();
        	// Do some more cool stuff
        	d.resolve(); // or d.reject()
        	return d.promise
    	}
    }, {
        target: '#last-element',
        content: 'It is over! :(',
    }]
}

Roadmap & Contributing

  • Update example
  • Reduce footprint
  • Dynamic Masking (opening select boxes and dynamically moving content)
  • Remove dependency on jQuery
  • Use angular $animate for animations and class changes
  • Add more hooks and config for customization

All PR's and contributions are more than welcome!

Versions

Version
1.2.1
1.0.1