import $ from 'jquery'; import '../../node_modules/waypoints/lib/jquery.waypoints'; class StatisticsOne { constructor(element) { this.$element = $(element); this.$counter = this.$element.find('.counter__count'); this.init(); } init() { this.$counter.each((index, element) => { let $this = $(element); let countTo = $this.attr('data-count'); $this.waypoint({ handler: function (direction) { $({ countNum: $this.text() }).animate( { countNum: countTo, }, { duration: 3000, easing: 'linear', step: function () { $this.text(Math.floor(this.countNum)); }, complete: function () { $this.text( Math.abs(this.countNum) > 999 ? Math.sign(this.countNum) * (Math.abs(this.countNum) / 1000).toFixed(1) + 'K+' : Math.sign(this.countNum) * Math.abs(this.countNum) + '+', ); Waypoint.destroyAll(); }, }, ); }, offset: '90%', }); }); } } $('[data-statistics-one]').each((index, element) => new StatisticsOne(element));
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter