Giter VIP home page Giter VIP logo

jquery.marquee's Introduction

jQuery-Marquee with CSS3 Support

Known Vulnerabilities

A ~2KB MINIFIED + GZIPPED (minified) jQuery plugin to scroll the text like the old traditional marquee.

Install:

<script src="//cdn.jsdelivr.net/npm/[email protected]/jquery.marquee.min.js" type="text
/javascript"></script>
  • Bower: bower install jQuery.Marquee
  • Download: zip

Links:

Options:

  • allowCss3Support Force the usage of jQuery's animate method even if the target browser supports CSS3 animations. Default: true
  • css3easing Works when allowCss3Support is set to true. See here for full list. Default: 'linear'
  • easing Requires the jQuery easing plugin. Default: 'linear'
  • delayBeforeStart Time in milliseconds before the marquee starts animating. Default: 1000
  • direction Direction towards which the marquee will animate 'left' / 'right' / 'up' / 'down'. Default: 'left'. Todo: need to change this to ltr/rtl etc
  • duplicated Should the marquee be duplicated to show an effect of continuous flow. Use this only when the text is shorter than the container. Default: false
  • duration Duration in milliseconds in which you want your element to travel. Default: 5000.
  • speed Speed will override duration. Speed allows you to set a relatively constant marquee speed regardless of the width of the containing element. Speed is measured in pixels per second.
  • gap Gap in pixels between the tickers. Will work only when the duplicated option is set to true. Default: 20. Note: 20 means 20px so no need to use '20px' as the value.
  • pauseOnHover Pause the marquee on hover. If the browser supports CSS3 and allowCss3Support is set to true this will be done using CSS3. Otherwise this will be done using the jQuery Pause plugin. Default: false. See demo page for example.
  • pauseOnCycle On cycle, pause the marquee for delayBeforeStart milliseconds.
  • startVisible The marquee will be visible from the start if set to true. Thanks to @nuke-ellington ๐Ÿ‘

Events:

  • beforeStarting: Event will be fired on the element before animation starts.
  • finished: Event will be fired on the element after the animation finishes.
  • paused: Event will be fired on the element when the animation is paused.
  • resumed: Event will be fired on the element when the animation is resumed.

Methods:

These methods can be used like this:

  • First initialize marquee with any options var $mq = $('.marquee').marquee();
  • Then at any time you can call the following methods like this: var $mq.marquee('NAME-OF-METHOD-AS-STRING');

Here is the list of all methods:

  • pause: To pause the marquee at any time.
  • resume: To resume the marquee after being paused previously.
  • toggle: To toggle between pause and resume methods.
  • destroy: To remove the marquee from your element. This method is useful if you are loading/changing the data using Ajax or just another string. You can combine this with the finished event so you can have the marquee show some data and as soon as it finishes showing that, you can destroy it, change the html and then apply the plugin again. See the demo page for details (links provided above).

Usage:

Requiring in The Node.js Environment

Here's how to import the plugin as a CommonJS module:

var $ = require("jquery");
require("jquery.marquee");

HTML:

Usually you assign the marquee class to the desired element. Then you initialize it with an options hash in your code (see below).

<div class='marquee'>Lorem ipsum dolor sit amet, consectetur adipiscing elit END.</div>

Alternatively you can provide all the options listed above as data attributes:

<div class='marquee' data-duration='5000' data-gap='10' data-duplicated='true' >
    Lorem ipsum dolor sit amet, consectetur adipiscing elit END.
</div>

CSS:

.marquee {
  width: 300px; /* the plugin works for responsive layouts so width is not necessary */
  overflow: hidden;
  border:1px solid #ccc;
}

How to Apply Plugin:

/**
 * Example of starting a plugin with options.
 * I am just passing some of the options in the following example.
 * you can also start the plugin using $('.marquee').marquee(); with defaults
*/
$('.marquee').marquee({
	//duration in milliseconds of the marquee
	duration: 15000,
	//gap in pixels between the tickers
	gap: 50,
	//time in milliseconds before the marquee will start animating
	delayBeforeStart: 0,
	//'left' or 'right'
	direction: 'left',
	//true or false - should the marquee be duplicated to show an effect of continues flow
	duplicated: true
});

How to Use in a React Component (Class-Based)

import React, { Component } from 'react';
import $ from 'jquery';
import  'jquery.marquee';

class Marquee extends Component {
  componentDidMount() {
    this.$el.marquee({
      duration: 15000,
      gap: 50,
      delayBeforeStart: 0,
      direction: 'left'
    });
  }

  render() {
    return (
      <div ref={(el) => this.$el = $(el)}>
        I'm using jQuery.Marquee with React!!!!
      </div>
    );
  }
}

How to Use in a React Component (Functional)

import React, { useEffect, useRef } from 'react';
import $ from 'jquery';
import  'jquery.marquee';

function Marquee(props) {
  const el = useRef();

  useEffect(function() {
    const $el = $(el.current);

    $el.marquee({
      duration: 5000,
      gap: 50,
      delayBeforeStart: 0,
      direction: 'left'
    });
  });

  return (
    <div ref={el}>
      I'm using jQuery.Marquee with React!!!!
    </div>
  );
}

How to Use Methods:

var $mq = $('.marquee').marquee();
$('.someLink').click(function(){
  $mq.marquee('pause/resume/toggle');
});

Change content and re-apply the plugin. Check demo page for example: http://aamirafridi.com/jquery/jquery-marquee-plugin#examples

$('.marquee')
	.bind('finished', function(){
		//Change text to something else after first loop finishes
		$(this).marquee('destroy');
		//Load new content using Ajax and update the marquee container
		$(this).html('Some new data loaded using ajax')
			//Apply marquee plugin again
			.marquee()
	})
	.marquee();

How to Use Events:

Check demo page for example: http://aamirafridi.com/jquery/jquery-marquee-plugin#examples

$('.marquee')
    .bind('beforeStarting', function () {
        //code you want to execute before starting the animations
    })
    .bind('finished', function () {
        //code you want to execute before after each animation loop
    })
    //Apply plugin
    .marquee({
        duration: 2000
    });

Images:

If you are using images in marquee, sometimes the plugin cannot calculate accurate widths while images are still loading. You can try this instead of $(document).ready(function(){...})

//if you have images in marquee
$(window).load(function() {
    $('.marquee').marquee();
});

Updates:

Update (8 Mar 2016): Now plugin have new option: startVisible The marquee will be visible in the start if set to true. Thanks to @nuke-ellington ๐Ÿ‘

Update (24 Jan 2014):

Note: people who been asking me how to use this plugin with content being loaded with Ajax, please read notes about this update.

  • New methods added, so now after you start the plugin using var $mq = $('.marquee').marquee();, then you can pause, resume, toggle(pause, resume) and destroy methods e.g to remove the marquee plugin from your element simply use $mq.marquee('destroy');. Similarly you can use pause the marquee any time using $mq.marquee('pause');.

  • If you want to use use Ajax with this plugin i.e you want to change the content after you apply this plugin, please see the examples in demo page (link provided below).

  • Also made some changes so this plugin works with old versions of jQuery. I have tested it with jQuery 1.3.2 but quite sure it should work with some previous versions of jQuery.

PLEASE report any bugs you find.

For details please check the demos at: http://aamirafridi.com/jquery/jquery-marquee-plugin#examples

Update (20 Dec 2013): Now the plugin will detect if browser supports CSS3 animations than it will animate the element using CSS3 which will perform much better than animating using jQuery.

The pauseOnHover also works using CSS3. The plugin just prepares the setup and required CSS3 animation CSS.

Due to some reasons if you want plugin to animate always using jQuery than you need to set allowCss3Support option to false. Also an extra option css3easing is added.

Check demo page for example: http://aamirafridi.com/jquery/jquery-marquee-plugin#examples

Update (27 Nov 2013): Easing option added. Requires jQuery easing plugin.

Update (22 Nov 2013): Now plugin supports the 'up' and 'down' directions. Please have a look at the example to see how to use.

Update (21 Aug 2013): If you want to hide the marquee for certain devices, try using visibility: hidden with height: 0 & position: absolute instead of display: none because jQuery cannot calculate with width etc of hidden elements. For more details:

Update (22 Feb 2013): pauseOnHover option added. Please note that you will need to include jQuery pause plugin: https://github.com/tobia/Pause before the jQuery Marquee plugin.

Update (20 Feb 2013):

  • The plugin is improved to adjust the speed according to the length of the text automatically. For more details read: #1
  • 'duplicated' option added. See the details below in Options section.

jquery.marquee's People

Contributors

aamir-mns avatar aamirafridi avatar aliaghdam avatar brendon avatar cdelafuente72 avatar chimame avatar cuth avatar greggebura avatar hueygeek avatar lukasdrgon avatar naveed-fida avatar nicolasmn avatar nuke-ellington avatar odnamrataizem avatar plough avatar renaud-rsc avatar thomasdunn avatar watermark avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jquery.marquee's Issues

Bug With the "gap" Option

Have a look at this, the second marquee with text "Short content":
http://jsfiddle.net/UUfn2/44/
I agreed that the gap option is a good idea, but I think it's safer not to implement the gap (i.e. duplicate the content) by default, unless it was specified.
Another problem is the speed issue which has been reported as #1 by knowj

Show Content By Default

When Marquee.js - is there a way to show the content by default then start the marquee? This is instead of showing nothing by default, then sliding in the content from whichever direction is it possible to instead how the content showing in it's default position, then start moving off-screen?

Make it draggable?

Hello.

Is it possible to make the marquee draggable by mouse or touch?

Greets

Add support for vertical scroll

Currently there is no marquee or scroll plugin out there that supports endless (duplicated) and vertical scroll at the same time... (I am NOT thinking on anything strange like rotating the text or anything like that, just a vertical paragraph scroll, but smooth)

Bower support

I believe that this repo could benefit from package management with bower, it really could speed up integration with existing projects!

Too much recursion when opened hidden

Hi there,

When I use the plugin on my responsive site, I hide the newsticker for mobile devices. This results in a 'too much recursion' error being thrown in Firefox when I load the page, the ticker then doesn't function when I resize my window to a size where the ticker is visible.

Any ideas how to fix this?

Glitchy in Safari 5.1+

I've tested this plugin, it is very light-weight and useful. Issue I have found is glitchy behavior in Safari.
Marquee will start, but while scrolling will be cut in half horizontally, top half will scroll, bottom half is static.

Pause on Hover does not work in Chrome

I have been testing this in Chrome for a while and have found that the hover pause doesn't not work in this browser. Is there an alternative solution to a hover pause that I could try?

animate() doubles duration on first loop

When using the duplicated option, the animate function will double the duration of the first loop.

on line 255:

if (o.duplicated) {
    //When duplicated, the first loop will be scroll longer so double the duration
    if (loopCount === 1) {
        o._originalDuration = o.duration;
        if (verticalDir) {
            o.duration = o.direction == 'up' ? o.duration + (containerHeight / ((elHeight) / o.duration)) : o.duration * 2;
        } else {
            o.duration = o.direction == 'left' ? o.duration + (containerWidth / ((elWidth) / o.duration)) : o.duration * 2;
        }
        //Adjust the css3 animation as well
        if (animationCss3Str) {
            animationCss3Str = animationName + ' ' + o.duration / 1000 + 's ' + o.delayBeforeStart / 1000 + 's ' + o.css3easing;
        }
        loopCount++;
    }
    //On 2nd loop things back to normal, normal duration for the rest of animations
    else if (loopCount === 2) {
        o.duration = o._originalDuration;
        //Adjust the css3 animation as well
        if (animationCss3Str) {
            animationName = animationName + '0';
            keyframeString = $.trim(keyframeString) + '0 ';
            animationCss3Str = animationName + ' ' + o.duration / 1000 + 's 0s infinite ' + o.css3easing;
        }
        loopCount++;
    }
}

What is the reason behind that? Could we have an option for this instead?

Thanks,

marquee with database value

Hi Aamir,

Could you please help me,how to use database value in jquery marquee function instead of static value.

Appreciate your help.

lots of text....

Hello,

am using your plugins and it's really great but I found little annoying problem to my app.
If I have lots of text then plugin gives margin-left high values which cause 10 or more seconds for text to start scroll.

Can u please advise me.

Thanks.

Resuming seamless after moving within the DOM

Hi,

I am moving the marquee between html sections using

var mq = $(".marquee");
mq.appendTo( $(".marqueeContainer",event.currentSlide));

It moves, but the marquee starts again from the right and its state is not preserved. Is there an (easy) way of achieving this?

tx.,

Start on mouseenter, Pause on mouseout

I am trying to achieve this and struggling immensely. For some reason, I can't just call this:

 .find('.active a').marquee()

        .on({
            mouseenter: function(e) {
                $(this).css('color','black').trigger('resume');
            },

            mouseleave: function(e) {
                $(this).trigger('pause');
            }
        });

duration - function of length

I understand the duration is the amount of time to scroll through a section. I was originally confused thinking it was a "speed" meaning something like how many lines a second would go by (yeah, I know the units are different).
Is there a way (for me or you) to do a speed? I have two sections, one short and one long on the same screen. The short one goes very slow and the long one goes very fast. I would like them to scroll at the same speed.
Thanks!

Call from Web Service

Hi Aamir:

I have an issue with my marquee. First of all I'll explain the context:

  • I'm developing a ASP.NET web application, and when the page loads, I call marquee.js.
  • This file contains a call to a Web Service that returns some data (This call is made with JSON)
  • Then I set the marquee body with $(".marquee").html(responseData.d);.
  • After that I call the $(".marquee").marquee method.

The marquee is shown OK, but for a second the text is displayed like if no marquee was used and then it starts from the border of the div (like it should be).

I hope I'd explained clearly.

Thanks in advance.

pauseOnHover support for IE8?

Hi aamirafridi,

Is there any workaround of pauseOnHover support for IE8?

I have tried using the method but it doesn't work,

thanks alot.

Multiple elements in marquee? Marquee through a list?

Let's say I have the following:

<ul class="marquee">
  <li>My first message</li>
  <li>My second message</li>
</ul>

Is it possible to marquee through each of my list elements? Currently, all elements are shown at the same time. It would be great if each list item was shown one after another.

New feature request

Are you planning to add function to change direction on the go way(after initialization) just like pause, resume?

Help!!!

Nice Plugin ..... :):) i just recently used it ...
:):)
but it would be very very useful for me if u add up/down feature
i tried alot by adjusting size of div etc
but it scrolls always left/right only pls do it as soon as possible

Set Options Feature

Is there a way to set the options on an already instantiated marquee object? It would be nice to do something like this:

var myMarquee = $('#marquee').marquee();
myMarquee.set({
direction: 'up',
speed: 2000
});

Thank you for the consideration!

left/right margin offset breaks Firefox animation

This is probably known, but to have the text start at the very left of the marquee container one can use margin-left: 20 !important' on.js-marquee-wrapper`. Unfortunately this breaks all animations in Firefox.

pauseOnCycle does not works with allowCss3Support:true

$('.marquee').marquee({
  allowCss3Support:false,
    duration: 1000,
   delayBeforeStart :1000,
    pauseOnCycle : true,
    direction: 'left',
    duplicated: true
})
``` this works with a pauseOnCycle between the animation. With the option allowCss3Support:true
 it won't work.

Scroll speed doesn't adjust with screen width

This is pretty solvable with a simple bit of code, but it would be nice if the scroll speed adjusted for the device screen width. A value of around 12000 is perfect for 1080p, but at 1440p is too fast, and on a mobile it crawls.

Something for a future release? Or perhaps there is already a feature and I have overlooked it?

Use translate(x,y) instead of animating Left/Top/Margin-Left/Margin-Top

Hi! I love the plugin, and really appreciate you sharing it.

In my use, I've noticed the plugin is quite choppy in various environments. As I've been researching animation lately, I've learned that it's much better in almost instance to use the CSS animation "translate" to move elements vertically or horizontally, rather than changing the Left, Top, Margin-Left, or Margin-Top properties. These properties were never meant to be animated, and the calculations involved in changing them are more processor-intensive than the translate effect.

I've seen numerous reports about this. In my own anecdotal tests, when trying to mock up my own marquee animation in CSS, the translate effect is much smoother in every browser I have access to. I recognize it may not be available in all older browsers, but where it is, it's significantly smoother.

As far as I can tell, this plugin does not use "translate." I'm sure it would be a lot of work to change, but I thought I would mention this to you. In a page heavy with javascript and css animation effects, this marquee seems to have a visible impact on the overall performance of the site. I'll continue to search for my own optimizations, of course.

Thanks again, and best wishes!

how to detect the last text moved into marquee

Now, the marquee plugin only trigger "finished" event when the last text move out marquee element.

but I want get other event is the last text moved into marquee element, not moved out.

qq 20141203174842

when the message 5 moved into this marquee element, i want get some event and get other data to show into marquee.
how to detect this case?
thank you.

infinite loop - animate() does not stop when destroy is called

I put a console.log("animate") inside the animate function and it continues to log out even when the destroy method is called.

var msgTick = $("#msgTickerL3 div.tickerData")
            .bind('finished', function() {
                $(this).marquee('destroy');
            })
            .marquee({duration: 6000, allowCss3Support: false, delayBeforeStart: 3000, pauseOnCycle: false});

I'm guessing some kind of return needs to be added to the animate function once the marquee has been destroyed so it doesn't keep calling itself.

Continuous Scrolling

I am working on an internal application for my company where it would be very helpful if the scrolling was continuous, like a stock ticker. For example, if I put an entry to 1000 characters into the marquee string, I would like for the marquee to continue at the beginning of the string once it has reached the end of the text without having to wait until the end of the text leaves the screen.

Not starting from outside the marquee

When scrolling from right to left, is there anyway so that the ticker won't start all the way right, but instead just start in the middle or left aligned, then continue scrolling to the left?

Thanks!

Marquee direction 'up' will always pause for at least 2 seconds on the first item

When I use the direction 'up' I noticed that everytime the first item is scrolling upwards the scrolling will pause for at least 1-2 seconds and it happens on the succeeding loops. I tried this on IE, Firefox and chrome and the behavior is the same.

Here is my sample html.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html >
        <head>
            <title>News Ticker Demo</title>
            <style type="text/css">      
                BODY {BACKGROUND-COLOR: #FFF; COLOR: #000;margin:0;padding:0;font-family:Arial, Helvetica, sans-serif;font-size:0.75em;}
                #NewsTickerItems{border:1px solid black;padding:1px;}

                .latestnews .NewsItem{margin-top:30px;margin-left:10px;}
                .latestnews #NewsTickerItems {height: 105px;overflow: hidden;margin-top:10px;}
                .latestnews{padding-left:15px;padding-right:15px;}
            </style>
            <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
            <script type="text/javascript" src="js/jquery.marquee.js"></script>                        
        </head>
        <body>
            <div class="latestnews">
                <div id='NewsTickerItems'>
                    <div class="NewsItem">
                        <b>10/10/2014</b> 
                        Lorem Ipsum is simply dummy text
                    </div>
                    <div class="NewsItem">
                        <b>10/10/2014</b> 
                        Lorem Ipsum is simply dummy text
                    </div>
                    <div class="NewsItem">
                        <b>10/10/2014</b> 
                        Lorem Ipsum is simply dummy text
                    </div>
                </div>
                <div class="clear"></div>
            </div>
            <script type="text/javascript">
                $(document).ready(function () {
                    $('#NewsTickerItems').marquee({
                        //speed in milliseconds of the marquee
                        speed: 4000,
                        //gap in pixels between the tickers
                        delayBeforeStart: 0,
                        //'left' or 'right' or 'up' or 'down'
                        direction: 'up',
                        //true or false - should the marquee be duplicated to show an effect of continues flow
                        duplicated: false,
                        //on hover pause the marquee
                        pauseOnHover: true
                    });
                });
            </script>
        </body>
    </html>

Marquee Speed Suggestion/Feature

Feature request:
Currently the speed is based on the milliseconds which is great if you are working with a static width (It takes 10,000ms to move 800px). However as the content area expands the speed of the marquee increases to potentially un-manageable/un-readable speed.

Suggestion:
Calculate the speed based on distance/time. It would probably be worth having an option to add a parent container that would be taken into account in the speed calculation.

`

  • item 1
  • item 2
  • item 3
  • `

    This approach would mean that the scroll speed would be consistent whether the scrolling content is 500px or 5000px.

    Release a new tag for the latest code

    The last release dates from March. It would be cool if you could release a new version with the current code because it has a couple of bug fixes. I use bower and I have to point to the master branch in order to get the up to date code. If you release a new tag, I could lock to that tag version instead.

    Count number of marquee had pass

    hello. just asking no how to count the number marquee had pass already. thanks

    $('.marquee').marquee({
    speed: 1000,
    duplicated: true,
    gap: 100}).bind('finished', function(){

                        });
                };
    

    Ajax loading text

    Hi.
    Am trying to implement contiunes marquee without gaps. My marquee is filling data from ajax load. Also am using duplicate option. Problem is when after ajax load my duplicates are removed and animation starts from beginning.
    Is it possible to not disturb animation process after ajax load so I dont have any big gaps between loops?

    Thanks.

    Marquee text resets from the beginning

    I'm adding the marquee text via jQuery as follows:
    $('.marquee').text(myMessage);

    Then i fire the animation with:
    var mq = $('.marquee').marquee();

    the problem is that the text restarts from the right side as soon as its first letter touches the left border of the marquee div. Not the last letter. So if the text is long enough, you can't read it all.

    Fire marquee on hover

    There is some way to do the opposite of "pauseOnHover", leave the text stopped until you hover on it, and when you mouseout it comes back to normal? Just like spotify does in their app

    Bounce effect

    Does the plugin support bounce-ing back and forth, left and right, top and bottom?

    Marquee starts invisible

    I'm using a fairly slow Marquee. The problem is that it starts invisible. So you always have to wait a long time until you see the whole text. making it faster makes the text unreadable. Also if the user doesn't start reading the Marquee immediately, he will miss something if it runs too fast.

    delayBeforeStart: 5000 is a good option. But the Marquee should be visible these 5 seconds and not invisible to make sense.

    Maybe a new setting could be added, to set the start-position?

    startVisible: true // default: false

    Text not scrolling

    I am a complete newbie with jquery. I have some of the basics and have managed to make simple things work but I can't seem to master your marquee. I am sure it is something simple I am not grasping.

    If you could take a look here http://jsfiddle.net/jimzook/WEza5/3/ I would appreciate it much.

    Thanks,

    Jim

    Keeps starting from the begining

    I don't know how to explain, just check the page:

    ---removed url----

    Scroll a little bit and you'll see the marquee ticker sliding some brands logos, when it gets to the left side keeps "jumping" logos.

    Ajax loading in Internet Explorer - speeds up each time until crash

    Hi, 1st of all thanks for the great plugin, its very easy to use.

    There seems to be an issue when destroying and recreating the plugin to load different content. I appreciate it isn't the "best" way of doing things, but I thought I'd point it out whilst I think of an alternative for what I need to do.

    Rather than make a JSFiddle, this behavior can be seen on your own example page http://codepen.io/aamirafridi/pen/ayBmF

    It works great in Chrome, it scrolls perfectly fine, finishes, and loads another marquee.
    However in Internet Explorer 8 and 9, it seems to do around 1.5 cycles, disappears, then starts again, only faster. This keeps happening until the browser itself crashes.

    I noticed the speed up because I was using console.log to log each time it "finished" and it got exponentially quicker each time.

    I've tested this on IE8 and 9, seems to do the same for both. Unfortunately I'm at work so can't test anything else.

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google โค๏ธ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.