Optimize index.js and add style consistency
Declared all jQuery objects once where needed instead of diving into the DOM multiple times for the same object. Added style consistency between variable declarations, if/else statements and functions.
This commit is contained in:
parent
e669b29895
commit
2cf5c0cb87
|
@ -3,22 +3,50 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* globals jQuery, document */
|
/* globals jQuery, document */
|
||||||
(function ($) {
|
(function ($, sr, undefined) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
$(document).ready(function(){
|
var $document = $(document),
|
||||||
|
|
||||||
$(".post-content").fitVids();
|
// debouncing function from John Hann
|
||||||
|
// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
|
||||||
|
debounce = function (func, threshold, execAsap) {
|
||||||
|
var timeout;
|
||||||
|
|
||||||
function casperFullImg() {
|
return function debounced () {
|
||||||
|
var obj = this, args = arguments;
|
||||||
|
function delayed () {
|
||||||
|
if (!execAsap) {
|
||||||
|
func.apply(obj, args);
|
||||||
|
}
|
||||||
|
timeout = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (timeout) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
} else if (execAsap) {
|
||||||
|
func.apply(obj, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
timeout = setTimeout(delayed, threshold || 100);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
$document.ready(function () {
|
||||||
|
|
||||||
|
var $postContent = $(".post-content");
|
||||||
|
$postContent.fitVids();
|
||||||
|
|
||||||
|
var casperFullImg = function () {
|
||||||
$("img").each(function () {
|
$("img").each(function () {
|
||||||
var contentWidth = $(".post-content").outerWidth(); // Width of the content
|
var $this = $(this),
|
||||||
var imageWidth = $(this)[0].naturalWidth; // Original image resolution
|
contentWidth = $postContent.outerWidth(), // Width of the content
|
||||||
|
imageWidth = $this[0].naturalWidth; // Original image resolution
|
||||||
|
|
||||||
if (imageWidth >= contentWidth) {
|
if (imageWidth >= contentWidth) {
|
||||||
$(this).addClass('full-img');
|
$this.addClass('full-img');
|
||||||
} else {
|
} else {
|
||||||
$(this).removeClass('full-img');
|
$this.removeClass('full-img');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -30,61 +58,38 @@
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}(jQuery));
|
|
||||||
|
|
||||||
(function($,sr){
|
|
||||||
|
|
||||||
// debouncing function from John Hann
|
|
||||||
// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/
|
|
||||||
var debounce = function (func, threshold, execAsap) {
|
|
||||||
var timeout;
|
|
||||||
|
|
||||||
return function debounced () {
|
|
||||||
var obj = this, args = arguments;
|
|
||||||
function delayed () {
|
|
||||||
if (!execAsap)
|
|
||||||
func.apply(obj, args);
|
|
||||||
timeout = null;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (timeout)
|
|
||||||
clearTimeout(timeout);
|
|
||||||
else if (execAsap)
|
|
||||||
func.apply(obj, args);
|
|
||||||
|
|
||||||
timeout = setTimeout(delayed, threshold || 100);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// smartresize
|
// smartresize
|
||||||
jQuery.fn[sr] = function(fn) { return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
|
jQuery.fn[sr] = function(fn) { return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); };
|
||||||
|
|
||||||
})(jQuery,'smartresize');
|
|
||||||
|
|
||||||
// Arctic Scroll by Paul Adam Davis
|
// Arctic Scroll by Paul Adam Davis
|
||||||
// https://github.com/PaulAdamDavis/Arctic-Scroll
|
// https://github.com/PaulAdamDavis/Arctic-Scroll
|
||||||
(function ($) {
|
|
||||||
$.fn.arctic_scroll = function (options) {
|
$.fn.arctic_scroll = function (options) {
|
||||||
|
|
||||||
var defaults = {
|
var defaults = {
|
||||||
elem: $(this),
|
elem: $(this),
|
||||||
speed: 500
|
speed: 500
|
||||||
};
|
},
|
||||||
var options = $.extend(defaults, options);
|
|
||||||
|
|
||||||
options.elem.click(function(event){
|
allOptions = $.extend(defaults, options);
|
||||||
|
|
||||||
|
allOptions.elem.click(function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
var offset = ($(this).attr('data-offset')) ? $(this).attr('data-offset') : false,
|
var $this = $(this),
|
||||||
position = ($(this).attr('data-position')) ? $(this).attr('data-position') : false;
|
$htmlBody = $('html, body'),
|
||||||
|
offset = ($this.attr('data-offset')) ? $this.attr('data-offset') : false,
|
||||||
|
position = ($this.attr('data-position')) ? $this.attr('data-position') : false,
|
||||||
|
toMove;
|
||||||
|
|
||||||
if (offset) {
|
if (offset) {
|
||||||
var toMove = parseInt(offset);
|
toMove = parseInt(offset);
|
||||||
$('html,body').stop(true, false).animate({scrollTop: ($(this.hash).offset().top + toMove) }, options.speed);
|
$htmlBody.stop(true, false).animate({scrollTop: ($(this.hash).offset().top + toMove) }, allOptions.speed);
|
||||||
} else if (position) {
|
} else if (position) {
|
||||||
var toMove = parseInt(position);
|
toMove = parseInt(position);
|
||||||
$('html,body').stop(true, false).animate({scrollTop: toMove }, options.speed);
|
$htmlBody.stop(true, false).animate({scrollTop: toMove }, allOptions.speed);
|
||||||
} else {
|
} else {
|
||||||
$('html,body').stop(true, false).animate({scrollTop: ($(this.hash).offset().top) }, options.speed);
|
$htmlBody.stop(true, false).animate({scrollTop: ($(this.hash).offset().top) }, allOptions.speed);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
})(jQuery);
|
})(jQuery, 'smartresize');
|
||||||
|
|
Loading…
Reference in New Issue