Skip to content

Instantly share code, notes, and snippets.

@zerosignalproductions
zerosignalproductions / admin.js
Last active November 21, 2018 17:16
Insert an image into the wordpress editor always wrapped in a figure tag. The javascript is used to remove the figure element from the editor if the delete button is used. Note that the inline edit does not work with this code.
(function($) {
$(document).ready(function() {
$('body').on('mousedown', '#wp_delimgbtn', function(e) {
var editor = tinyMCE.activeEditor,
element = editor.selection.getNode();
if(element.tagName !== 'FIGURE') {
$(element).parents('figure').remove();
}
});
@zerosignalproductions
zerosignalproductions / custom_captions.php
Created January 15, 2014 20:28
Overhauled the insert image + captions in Wordpress to product html5 output
function custom_insert_image($html, $id, $caption, $title, $align, $url, $size, $alt ) {
//Always return an image with a <figure> tag, regardless of link or caption
//Grab the image tag
$image_tag = get_image_tag($id, '', $title, 'None', $size);
//Let's see if this contains a link
$linkptrn = "/<a[^>]*>/";
$found = preg_match($linkptrn, $html, $a_elem);
@zerosignalproductions
zerosignalproductions / throttleresize.js
Last active January 6, 2017 19:33
JS Throttled Resize event using requestAnimationFrame
/**
* Throttled Resize event
* Updated to use requestAnimationFrame instead of setTimeout
* Original: https://github.com/louisremi/jquery-smartresize
*/
var $specialThrottle,
dummy = {_:0},
frame = 0,
wasResized,
@zerosignalproductions
zerosignalproductions / swipe-support.js
Created January 28, 2014 23:32
Add swipe support to websites. Not very generic at the moment.
(function($, window) {
var self = $('html'),
dragDelta = 500;
friction = 0.35;
mouseDown = false,
touchDelta = 0;
startSwipe = 0,
isDragging = false;
//Assume no touch on load
@zerosignalproductions
zerosignalproductions / jquery-animation.js
Last active January 4, 2016 21:09
New animation function to auto switch between CSS and JS animation depending on browser support
// Updated: 01/28/2014
// Changes:
// Removed all non animation specific code
// Updated to allow passing in of positioning
var cssAnimation = (function($) {
var speed = 250,
easing = 'linear',
cssTransition = 'cubic-bezier(0.39, 0.575, 0.565, 1)',
done = false,
@zerosignalproductions
zerosignalproductions / tracking.js
Last active December 26, 2015 19:09
DoubleClick / SiteCatalyst Tracking
/**
* Adds DoubleClick or SiteCatalyst to any element using supplied
* selectors. If no selectors are given, function defaults to
* data-dctracking and data-tracking.
*
* @param {string or array} selectors elements to set tracking
*/
function setupTracking(selectors) {
//Can pass in selectors as string or array
@zerosignalproductions
zerosignalproductions / detectVendorPrefix.js
Created July 23, 2013 15:44
Detect the vendor prefix and return it as an object. Source: http://davidwalsh.name/vendor-prefix
var prefix = (function () {
var styles = window.getComputedStyle(document.documentElement, ''),
pre = (Array.prototype.slice
.call(styles)
.join('')
.match(/-(moz|webkit|ms)-/) || (styles.OLink === '' && ['', 'o'])
)[1],
dom = ('WebKit|Moz|MS|O').match(new RegExp('(' + pre + ')', 'i'))[1];
return {
dom: dom,
@zerosignalproductions
zerosignalproductions / requestAnimationFrame.js
Created July 23, 2013 14:52
Add requestionAnimationFrame/cancelAnimationFrame support for all browsers. Source: https://gist.github.com/paulirish/1579671/#comment-846392
(function(window) {
'use strict';
var lastTime = 0,
vendors = ['moz', 'webkit', 'o', 'ms'],
x;
// Remove vendor prefixing if prefixed and break early if not
for (x = 0; x < vendors.length && !window.requestAnimationFrame; x += 1) {
window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
var rtime = new Date(1, 1, 2000, 12,00,00);
var timeout = false;
var delta = 200;
$(window).resize(function() {
rtime = new Date();
if (timeout === false) {
timeout = true;
setTimeout(resizeend, delta);
}
});
function Set_Cookie( name, value, expires, path, domain, secure ) {
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );
/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/