69 lines
1.2 KiB
JavaScript
69 lines
1.2 KiB
JavaScript
/**
|
|
* Hamburgers plugin helper.
|
|
*
|
|
* @author Htmlstream
|
|
* @version 1.0
|
|
* @requires hamburgers.min.css
|
|
*
|
|
*/
|
|
;(function($){
|
|
'use strict';
|
|
|
|
$.HSCore.helpers.HSHamburgers = {
|
|
|
|
/**
|
|
* Initialize 'hamburgers' plugin.
|
|
*
|
|
* @param String selector
|
|
*
|
|
* @return undefined;
|
|
*/
|
|
init: function(selector) {
|
|
|
|
if( !selector || !$(selector).length ) return;
|
|
|
|
var hamburgers = $(selector),
|
|
timeoutid;
|
|
|
|
hamburgers.each(function(i, el){
|
|
|
|
var $this = $(this);
|
|
|
|
if($this.closest('button').length) {
|
|
$this.closest('button').get(0).addEventListener('click', function(e){
|
|
|
|
var $self = $(this),
|
|
$hamburger = $self.find(selector);
|
|
|
|
if(timeoutid) clearTimeout(timeoutid);
|
|
timeoutid = setTimeout(function(){
|
|
|
|
$hamburger.toggleClass('is-active');
|
|
|
|
}, 10);
|
|
e.preventDefault();
|
|
}, false);
|
|
}
|
|
else {
|
|
$this.get(0).addEventListener('click', function(e){
|
|
|
|
var $self = $(this);
|
|
|
|
if(timeoutid) clearTimeout(timeoutid);
|
|
timeoutid = setTimeout(function(){
|
|
|
|
$self.toggleClass('is-active');
|
|
|
|
}, 10);
|
|
e.preventDefault();
|
|
}, false);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
})(jQuery); |