jQuery feature tour plugin.

Overview

Joyride

Joyride is an easy to configure site tour wizard for Foundation for Sites.

Demo

You can try out Joyride on the Demo Page.

Installation

To install Joyride you can either use NPM (NPM repository) or download the files directly.

  • npm start - Calls the build process and opens the demo in your browser.
  • npm test - Runs the JavaScript tests.
  • npm run test:javascript - Runs tests for JavaScript with Mocha using PhantomJS.
  • npm run test:visual - Runs visual tests/live demos.

Usage

All versions of joyride depend on jQuery and what-input. While jQuery is mandatory, what-input is used for styling purposes and not necessary for joyride to work.

Regardless of the way you use Joyride, you need to initialize it like all Foundation plugins by calling:

$(document).foundation();

The following HTML is an example on how to use Joyride. You can also have a look at the visual test cases in the test/visual/ folder.

<ol data-joyride data-autostart="true" id="docs-joyride">
  <li data-target="#basic-joyride">
    <p>This is the default one without settings</p>
  </li>
  <li data-target="#footer" data-position="bottom" data-closable="false">
    <p>This one isn't closable</p>
  </li>
  <li>
    <p>If no target is specified, you create a modal.</p>
  </li>
  <li data-target="#open-issues">
    <p>Your ride ends here!</p>
    <p class="text-center">
      <button class="button success" data-joyride-close>OK, thanks!</button>
    </p>
  </li>
</ol>

Foundation plugin

Originally, Joyride is a plugin for Foundation for Sites and leaverages existing plugins and functionalities of the framework. To use Joyride with Foundation, just include the files into your page right after the Foundation files. Then follow the example above to create the ride.

Standalone plugin

To make Joyride available for a broader amount of users, it is also available as a standalone plugin. All relevant Foundation functionalities are bundled with the Joyride files, so Joyride can still benefit from them. To use Joyride with Foundation, just include the files into your page right and follow the example above to create the ride.

Using script loader

Joyride can be used by including its files via HTML-tags and also the most popular script loaders, such as RequireJS. This is done by leveraging UMD.

Testing

  • npm run test:javascript to run JavaScript tests with Mocha using PhantomJS.
  • npm run test:visual to run visual regression tests.

Contributing

Check out our contributing guide to learn how you can contribute to this plugin. You can also browse the Help Wanted tag in our issue tracker to find things to do.

Comments
  • Support for IE7 and right side orientation.

    Support for IE7 and right side orientation.

    • Support for IE7 on.
    • Support for changing the orientation of the tip when it goes outside of the viewport on the right.
    • Some indentation and formatting fixes.
    • Includes the right alignment support in pull request #6
    opened by ianlewis 16
  • use selectors instead of ids.

    use selectors instead of ids.

    I think it's a more flexible and jquery-friendly solution. And also consider that is not always easy to change the already exiting markup in order to add ids. On the other hand I don't see any reason why ids should be used instead of selectors.

    opened by lucaquerella 12
  • Next and Previous done properly(ish), per tip text.

    Next and Previous done properly(ish), per tip text.

    Refactored the code a bit rather than hacking around the previous assumption of a single button. Added some extra settings for default text on the Next and Previous buttons and per tip text works. I'm not sure if all of this works with the "click to start" timer version of joyride, might need to test that use case.

    opened by MattOates 12
  • Provides a 'Previous' button.

    Provides a 'Previous' button.

    I have updated the library to provide a 'Previous' button on tips if settings.prevButton == true and if there are more than 1 tip.

    Any chance I could get some feedback.

    opened by nickschuch 10
  • methods: nextTip, id support for other that 'joyRideTipContent' using class, nubPosition: top-right added

    methods: nextTip, id support for other that 'joyRideTipContent' using class, nubPosition: top-right added

    method: nextTip

    This came up when i tried to fire the nextTip from code, and had no method to do so. Also works with tips that are created using nextButton: false within its init options.

    its called using $(window).joyride('nextTip'); 

    css id support for other that "joyRideTipContent"

    On the documentation says that you can use any ID for the steps container

      , but they are not 'displayed none' on the CSS if they are not called #joyRideTipContent With this you can name your
        differently but attach to them class="joyRideTipContent" so they are not displayed anyway on the html.

        Eg.

        1. Step 1
        1. Step 1

        Added top-right nubPosition

        Usage:

    opened by juuliaans 9
  • Add jQuery 3 support to 2.1.x branch

    Add jQuery 3 support to 2.1.x branch

    In Drupal 8, we use the joyride plugin to power the tour module.

    We're hoping to update to jQuery 3 in Drupal 8.4.0 but don't want to move away from the 2.1.x branch as we have a lot of styling that is made to support the markup/classes as well as a Yaml based API that supports the existing data attributes. We've looked at the 3.x branch and would like to avoid adding the lightweight foundation framework that the solo plugin comes with.

    These minor changes will make the 2.1.x branch support jQuery 3 and are backwards compatible to jQuery 1.7.

    We're hoping you'll consider them.

    opened by larowlan 7
  • Compatibility with Twitter Boostrap...

    Compatibility with Twitter Boostrap...

    Hello..

    I want to ask, is this plugin working with Twitter Bootstrap?

    I have tried it using into Twitter Bootstrap but the position is not put correctly?

    Please, give your hand if I am wrong..

    thanks

    opened by saiful 7
  • Doesn't work in IE7

    Doesn't work in IE7

    The code works for the most part in IE7 but fails because of a few small things like the fact that strings don't have a trim method and arrays don't have a map() method.

    Since joyride depends on jQuery, jQuery's trim() and each() method should be used.

    opened by ianlewis 7
  • Adding modal background option, and an expose element feature

    Adding modal background option, and an expose element feature

    added a modal option for those that want the page darkened out during the tour.

    created an expose feature to expose the highlighted elements that are covered by the modal during the tour. see screenshot...

    expose_on_modal

    added 2 options to turn these features on and off.

    modal: false(default) // setting this to true makes the whole tour happen over a modal background expose: false(default) //setting this and modal to true causes the element to be exposed during a modal'd tour as seen in the screenshot.

    I also added 3 more callbacks: preRideCallback, preStepCallback, and postExposeCallback

    didn't change any filenames or versions, but since I wrote this and its very helpful to me I figured I'd share :)

    opened by ehudokai 6
  • Added Expose Feature

    Added Expose Feature

    Implemented using the same method used by http://jquerytools.org/documentation/toolbox/expose.html. To use simply add "expose" to the "data-options" attribute to one of your tour outline stops including a comma separated list of the items (other than the tip ofcourse) that you wish to expose.

    For example: <li data-id="someID" data-options="expose : #exposeThisElm, .AndThisElm">

    opened by digitalmaster 6
  • Restarting joyride leads to funny results

    Restarting joyride leads to funny results

    When I start a joyride first time it goes through the sequence correctly. However, when I then restart the tour again, I get a different order of tips with some tips missing and it generally just seems a little confused.

    The reason for this is that when you execute $('#joyRideTipContent').joyride(); for a second time, it will re-add all the already added tooltips to the tooltip container again. This should not happen.

    opened by mschipperheyn 6
  • Bump jquery from 2.2.4 to 3.5.0

    Bump jquery from 2.2.4 to 3.5.0

    Bumps jquery from 2.2.4 to 3.5.0.

    Commits
    • 7a0a850 3.5.0
    • 8570a08 Release: Update AUTHORS.txt
    • da3dd85 Ajax: Do not execute scripts for unsuccessful HTTP responses
    • 065143c Ajax: Overwrite s.contentType with content-type header value, if any
    • 1a4f10d Tests: Blacklist one focusin test in IE
    • 9e15d6b Event: Use only one focusin/out handler per matching window & document
    • 966a709 Manipulation: Skip the select wrapper for <option> outside of IE 9
    • 1d61fd9 Manipulation: Make jQuery.htmlPrefilter an identity function
    • 04bf577 Selector: Update Sizzle from 2.3.4 to 2.3.5
    • 7506c9c Build: Resolve Travis config warnings
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by mgol, a new releaser for jquery since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • added tip setting for round expose

    added tip setting for round expose

    Added a tip setting to round the expose highlight to be a circle, used for icons or circular elements. It should maintain the same overall offset size but with an added borderRadius.

    opened by kwilkins 0
  • STANDALONE: Cannot use lists inside tooltips

    STANDALONE: Cannot use lists inside tooltips

    Solution:

    Line#: 2920

    minus: this.$element.find('li').each(function (i) { add: this.$element.find('> li').each(function (i) {

    I don't know how to use git, so this is the best I can do for you. :(

    opened by ronleeross 0
Releases(v2.0.0)
A better way for new feature introduction and step-by-step users guide for your website and project.

Intro.js v3 Lightweight, user-friendly onboarding tour library Where to get You can obtain your local copy of Intro.js from: 1) This github repository

usablica 21.7k Jan 2, 2023
An interactive guide for web page elements using jQuery and CSS3

pageguide.js An interactive, responsive, and smart guide for web page elements using jQuery and CSS3. Works great for dynamic pages and single-page ap

Tracelytics 912 Dec 25, 2022
Guide your users through a tour of your app

Shepherd is maintained by Ship Shape. Contact us for web app consulting, development, and training for your project. Browsers support Edge Firefox Chr

Ship Shape 10.8k Dec 28, 2022
Welcome to Space Traveler's HUB, this web app allows the user to take a fictional tour across the space.

Welcome to Space Traveler's HUB, this web app allows the user to take a fictional tour across the space. The user can choose a rocket from our catalog interface, and reserve it. Also, the user can see recent special missions and join them. Finally, the user will be able to keep track of all your rockets and mission they are subscribed to. Build with React, Redux, React-router, and Railwindcss.

Mihreteab Misganaw 3 Jan 27, 2022
JS Cloudimage 360 View - A simple, interactive resource that can be used to provide a virtual tour of your product

JS Cloudimage 360 View - A simple, interactive resource that can be used to provide a virtual tour of your product

Scaleflex 1.9k Jan 7, 2023
This repo holds my work on Angular tutorial Tour of Heroes.

TourOfHeroes This project was generated with Angular CLI version 14.2.3. Development server Run ng serve for a dev server. Navigate to http://localhos

Veronica Goranova 2 Sep 21, 2022
AutoScroll is a plugin for BetterDiscord that brings the mouse wheel button autoscroll feature to the GNU/Linux and macOS client.

AutoScroll AutoScroll is a plugin for BetterDiscord that brings the mouse wheel button autoscroll feature to the GNU/Linux and macOS client. This plug

Luna 12 Dec 14, 2022
A feature rich message noting plugin for Cumcord

Sperm Bank A feature rich message noting plugin for Cumcord. Features The ability to add messages to a virtual "account" The ability to make multiple

SwishyPlugs 8 Nov 30, 2022
ECMAScript 6: Feature Overview & Comparison

es6-features.org ECMAScript 6: Feature Overview & Comparison Copyright (c) 2015-2017 Ralf S. Engelschall <[email protected]> <@engelschall> Partiall

Dr. Ralf S. Engelschall 6.2k Dec 27, 2022
A better way for new feature introduction and step-by-step users guide for your website and project.

Intro.js v3 Lightweight, user-friendly onboarding tour library Where to get You can obtain your local copy of Intro.js from: 1) This github repository

usablica 21.7k Jan 2, 2023
Pug – robust, elegant, feature rich template engine for Node.js

Pug Full documentation is at pugjs.org Pug is a high-performance template engine heavily influenced by Haml and implemented with JavaScript for Node.j

Pug 21.1k Dec 30, 2022
Feature rich CSS framework for the new decade https://shorthandcss.com

Shorthand Shorthand is a CSS framework and does not include any javascript. You can customize the framework by using .scss only. Size Dist File URL Li

Shorthand 251 Sep 24, 2022
A Bootstrap HTML homepage template with feature boxes - created by Start Bootstrap

Start Bootstrap - Heroic Features Heroic Features is a multipurpose HTML template for Bootstrap created by Start Bootstrap. Preview View Live Preview

Start Bootstrap 160 Nov 27, 2022
Unleash is the open source feature toggle service.

Unleash Unleash is a open source feature flag & toggle system, that gives you a great overview over all feature toggles across all your applications a

Unleash 6.9k Jan 2, 2023
A MERN boilerplate repository with RBAC feature, following all production best practices.

Welcome to the RBAC MERN Boilerplate project A MERN boilerplate repository with RBAC feature, following all production best practices. In this reposit

Foyzul Karim 268 Dec 27, 2022
fardin 8 Oct 18, 2022
A website made using ReactJS library which displays all the best selling books of 2021 and a feature to check them on amazon.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Sumanth Krishna 3 Dec 30, 2021
Gatsby-starter-minimal-blog - Typography driven, feature-rich blogging theme with minimal aesthetics.

Gatsby-starter-minimal-blog - Typography driven, feature-rich blogging theme with minimal aesthetics. Includes tags/categories support and extensive features for code blocks such as live preview, line numbers, and line highlighting.

Priya Chakraborty 0 Jan 29, 2022
A fast, feature rich and simple framework for building dynamic browser applications.

hyperdom A simple, fast, feature rich framework for building dynamic browser applications. Hyperdom supports a simple event-update-render cycle, promi

Featurist 163 Nov 11, 2022
Copypaster Has your project structure gotten so complex that to add a new feature you need to copy

Copypaster Has your project structure gotten so complex that to add a new feature you need to copy, paste and rename tens or hundreds of files each ti

null 2 Nov 4, 2022