Replace Grunt tasks with Gulp
This commit is contained in:
67
_assets/js/_main.js
Normal file
67
_assets/js/_main.js
Normal file
@ -0,0 +1,67 @@
|
||||
/*! Responsive Menu */
|
||||
// http://tympanus.net/codrops/2013/05/08/responsive-retina-ready-menu/
|
||||
// The function to change the class
|
||||
var changeClass = function (r,className1,className2) {
|
||||
var regex = new RegExp("(?:^|\\s+)" + className1 + "(?:\\s+|$)");
|
||||
if( regex.test(r.className) ) {
|
||||
r.className = r.className.replace(regex,' '+className2+' ');
|
||||
}
|
||||
else{
|
||||
r.className = r.className.replace(new RegExp("(?:^|\\s+)" + className2 + "(?:\\s+|$)"),' '+className1+' ');
|
||||
}
|
||||
return r.className;
|
||||
};
|
||||
// Creating our button in JS for smaller screens
|
||||
var menuElements = document.getElementById('site-nav');
|
||||
menuElements.insertAdjacentHTML('afterBegin','<button type="button" role="button" id="menutoggle" class="navtoggle navicon-lines-button x" aria-hidden="true"><span class="navicon-lines"></span>menu</button>');
|
||||
|
||||
// Toggle the class on click to show / hide the menu
|
||||
document.getElementById('menutoggle').onclick = function() {
|
||||
changeClass(this, 'navtoggle active', 'navtoggle');
|
||||
};
|
||||
// http://tympanus.net/codrops/2013/05/08/responsive-retina-ready-menu/comment-page-2/#comment-438918
|
||||
document.onclick = function(e) {
|
||||
var mobileButton = document.getElementById('menutoggle'),
|
||||
buttonStyle = mobileButton.currentStyle ? mobileButton.currentStyle.display : getComputedStyle(mobileButton, null).display;
|
||||
|
||||
if(buttonStyle === 'block' && e.target !== mobileButton && new RegExp(' ' + 'active' + ' ').test(' ' + mobileButton.className + ' ')) {
|
||||
changeClass(mobileButton, 'navtoggle active', 'navtoggle');
|
||||
}
|
||||
};
|
||||
|
||||
/*! Plugin options and other jQuery stuff */
|
||||
|
||||
// FitVids options
|
||||
$(function() {
|
||||
$("article").fitVids();
|
||||
});
|
||||
|
||||
// Table of Contents toggle
|
||||
$(function() {
|
||||
$(".toc h3").click(function () {
|
||||
$("#drawer").toggleClass("js-hidden");
|
||||
});
|
||||
});
|
||||
|
||||
// Add lightbox class to all image links
|
||||
$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.JPG'],a[href$='.png'],a[href$='.gif']").addClass("image-popup");
|
||||
|
||||
// Magnific-Popup options
|
||||
$(document).ready(function() {
|
||||
$('.image-popup').magnificPopup({
|
||||
type: 'image',
|
||||
tLoading: 'Loading image #%curr%...',
|
||||
gallery: {
|
||||
enabled: true,
|
||||
navigateByImgClick: true,
|
||||
preload: [0,1] // Will preload 0 - before current, and 1 after the current image
|
||||
},
|
||||
image: {
|
||||
tError: '<a href="%url%">Image #%curr%</a> could not be loaded.',
|
||||
},
|
||||
removalDelay: 300, // Delay in milliseconds before popup is removed
|
||||
// Class that is added to body when popup is open.
|
||||
// make it unique to apply your CSS animations just to this exact popup
|
||||
mainClass: 'mfp-fade'
|
||||
});
|
||||
});
|
83
_assets/js/plugins/jquery.fitvids.js
Normal file
83
_assets/js/plugins/jquery.fitvids.js
Normal file
@ -0,0 +1,83 @@
|
||||
/*global jQuery */
|
||||
/*jshint browser:true */
|
||||
/*!
|
||||
* FitVids 1.1
|
||||
*
|
||||
* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
|
||||
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
|
||||
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
|
||||
*
|
||||
*/
|
||||
|
||||
(function( $ ){
|
||||
|
||||
"use strict";
|
||||
|
||||
$.fn.fitVids = function( options ) {
|
||||
var settings = {
|
||||
customSelector: null,
|
||||
ignore: null
|
||||
};
|
||||
|
||||
if(!document.getElementById('fit-vids-style')) {
|
||||
// appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js
|
||||
var head = document.head || document.getElementsByTagName('head')[0];
|
||||
var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}';
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>';
|
||||
head.appendChild(div.childNodes[1]);
|
||||
}
|
||||
|
||||
if ( options ) {
|
||||
$.extend( settings, options );
|
||||
}
|
||||
|
||||
return this.each(function(){
|
||||
var selectors = [
|
||||
"iframe[src*='player.vimeo.com']",
|
||||
"iframe[src*='youtube.com']",
|
||||
"iframe[src*='youtube-nocookie.com']",
|
||||
"iframe[src*='kickstarter.com'][src*='video.html']",
|
||||
"object",
|
||||
"embed"
|
||||
];
|
||||
|
||||
if (settings.customSelector) {
|
||||
selectors.push(settings.customSelector);
|
||||
}
|
||||
|
||||
var ignoreList = '.fitvidsignore';
|
||||
|
||||
if(settings.ignore) {
|
||||
ignoreList = ignoreList + ', ' + settings.ignore;
|
||||
}
|
||||
|
||||
var $allVideos = $(this).find(selectors.join(','));
|
||||
$allVideos = $allVideos.not("object object"); // SwfObj conflict patch
|
||||
$allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video.
|
||||
|
||||
$allVideos.each(function(){
|
||||
var $this = $(this);
|
||||
if($this.parents(ignoreList).length > 0) {
|
||||
return; // Disable FitVids on this video.
|
||||
}
|
||||
if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; }
|
||||
if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width'))))
|
||||
{
|
||||
$this.attr('height', 9);
|
||||
$this.attr('width', 16);
|
||||
}
|
||||
var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(),
|
||||
width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(),
|
||||
aspectRatio = height / width;
|
||||
if(!$this.attr('id')){
|
||||
var videoID = 'fitvid' + Math.floor(Math.random()*999999);
|
||||
$this.attr('id', videoID);
|
||||
}
|
||||
$this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+"%");
|
||||
$this.removeAttr('height').removeAttr('width');
|
||||
});
|
||||
});
|
||||
};
|
||||
// Works with either jQuery or Zepto
|
||||
})( window.jQuery || window.Zepto );
|
2049
_assets/js/plugins/jquery.magnific-popup.js
Normal file
2049
_assets/js/plugins/jquery.magnific-popup.js
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user