This repository has been archived by the owner on Feb 18, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 187
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Version 1.1.1. Fixed bug with conflict between keyboard shortcuts and…
… inputs. - Various JS resource updates. - Renamed files for easier future development.
- Loading branch information
1 parent
71652d1
commit 74b6a67
Showing
19 changed files
with
10,136 additions
and
65 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
/*! jRespond.js v 0.9 | Author: Jeremy Fields [[email protected]], 2013 | License: MIT */ | ||
/*! viewportSize | Author: Tyson Matanich, 2013 | License: MIT */ | ||
|
||
(function(win,doc,undefined) { | ||
|
||
'use strict'; | ||
|
||
win.jRespond = function(breakpoints) { | ||
|
||
// array for registered functions | ||
var mediaListeners = []; | ||
|
||
// array that corresponds to mediaListeners and holds the current on/off state | ||
var mediaInit = []; | ||
|
||
// array of media query breakpoints; adjust as needed | ||
var mediaBreakpoints = breakpoints; | ||
|
||
// store the current breakpoint | ||
var curr = ''; | ||
|
||
// window resize event timer stuff | ||
var resizeTimer; | ||
var resizeW = 0; | ||
var resizeTmrFast = 100; | ||
var resizeTmrSlow = 500; | ||
var resizeTmrSpd = resizeTmrSlow; | ||
|
||
// send media to the mediaListeners array | ||
var addFunction = function(elm) { | ||
|
||
var brkpt = elm['breakpoint']; | ||
var entr = elm['enter'] || undefined; | ||
|
||
// add function to stack | ||
mediaListeners.push(elm); | ||
|
||
// add corresponding entry to mediaInit | ||
mediaInit.push(false); | ||
|
||
if (testForCurr(brkpt)) { | ||
if (entr !== undefined) { | ||
entr.call(); | ||
} | ||
mediaInit[(mediaListeners.length - 1)] = true; | ||
} | ||
}; | ||
|
||
// loops through all registered functions and determines what should be fired | ||
var cycleThrough = function() { | ||
|
||
var enterArray = []; | ||
var exitArray = []; | ||
|
||
for (var i = 0; i < mediaListeners.length; i++) { | ||
var brkpt = mediaListeners[i]['breakpoint']; | ||
var entr = mediaListeners[i]['enter'] || undefined; | ||
var exit = mediaListeners[i]['exit'] || undefined; | ||
|
||
if (brkpt === '*') { | ||
if (entr !== undefined) { | ||
enterArray.push(entr); | ||
} | ||
if (exit !== undefined) { | ||
exitArray.push(exit); | ||
} | ||
} else if (testForCurr(brkpt)) { | ||
if (entr !== undefined && !mediaInit[i]) { | ||
enterArray.push(entr); | ||
} | ||
mediaInit[i] = true; | ||
} else { | ||
if (exit !== undefined && mediaInit[i]) { | ||
exitArray.push(exit); | ||
} | ||
mediaInit[i] = false; | ||
} | ||
} | ||
|
||
// loop through exit functions to call | ||
for (var j = 0; j < exitArray.length; j++) { | ||
exitArray[j].call(); | ||
} | ||
|
||
// then loop through enter functions to call | ||
for (var k = 0; k < enterArray.length; k++) { | ||
enterArray[k].call(); | ||
} | ||
}; | ||
|
||
// checks for the correct breakpoint against the mediaBreakpoints list | ||
var returnBreakpoint = function(width) { | ||
|
||
var foundBrkpt = false; | ||
|
||
// look for existing breakpoint based on width | ||
for (var i = 0; i < mediaBreakpoints.length; i++) { | ||
|
||
// if registered breakpoint found, break out of loop | ||
if (width >= mediaBreakpoints[i]['enter'] && width <= mediaBreakpoints[i]['exit']) { | ||
foundBrkpt = true; | ||
|
||
break; | ||
} | ||
} | ||
|
||
// if breakpoint is found and it's not the current one | ||
if (foundBrkpt && curr !== mediaBreakpoints[i]['label']) { | ||
curr = mediaBreakpoints[i]['label']; | ||
|
||
// run the loop | ||
cycleThrough(); | ||
|
||
// or if no breakpoint applies | ||
} else if (!foundBrkpt && curr !== '') { | ||
curr = ''; | ||
|
||
// run the loop | ||
cycleThrough(); | ||
} | ||
|
||
}; | ||
|
||
// takes the breakpoint/s arguement from an object and tests it against the current state | ||
var testForCurr = function(elm) { | ||
|
||
// if there's an array of breakpoints | ||
if (typeof elm === 'object') { | ||
if (elm.join().indexOf(curr) >= 0) { | ||
return true; | ||
} | ||
|
||
// if the string is '*' then run at every breakpoint | ||
} else if (elm === '*') { | ||
return true; | ||
|
||
// or if it's a single breakpoint | ||
} else if (typeof elm === 'string') { | ||
if (curr === elm) { | ||
return true; | ||
} | ||
} | ||
}; | ||
|
||
// self-calling function that checks the browser width and delegates if it detects a change | ||
var checkResize = function() { | ||
|
||
// get current width | ||
var w = viewportSize.getWidth(); | ||
|
||
// if there is a change speed up the timer and fire the returnBreakpoint function | ||
if (w !== resizeW) { | ||
resizeTmrSpd = resizeTmrFast; | ||
|
||
returnBreakpoint(w); | ||
|
||
// otherwise keep on keepin' on | ||
} else { | ||
resizeTmrSpd = resizeTmrSlow; | ||
} | ||
|
||
resizeW = w; | ||
|
||
// calls itself on a setTimeout | ||
setTimeout(checkResize, resizeTmrSpd); | ||
}; | ||
checkResize(); | ||
|
||
// return | ||
return { | ||
addFunc: function(elm) { addFunction(elm); }, | ||
getBreakpoint: function() { return curr; } | ||
}; | ||
|
||
}; | ||
|
||
}(this,this.document)); | ||
|
||
|
||
/*! viewportSize | Author: Tyson Matanich, 2013 | License: MIT */ | ||
(function(n){n.viewportSize={},n.viewportSize.getHeight=function(){return t("Height")},n.viewportSize.getWidth=function(){return t("Width")};var t=function(t){var f,o=t.toLowerCase(),e=n.document,i=e.documentElement,r,u;return n["inner"+t]===undefined?f=i["client"+t]:n["inner"+t]!=i["client"+t]?(r=e.createElement("body"),r.id="vpw-test-b",r.style.cssText="overflow:scroll",u=e.createElement("div"),u.id="vpw-test-d",u.style.cssText="position:absolute;top:-1000px",u.innerHTML="<style>@media("+o+":"+i["client"+t]+"px){body#vpw-test-b div#vpw-test-d{"+o+":7px!important}}<\/style>",r.appendChild(u),i.insertBefore(r,e.head),f=u["offset"+t]==7?i["client"+t]:n["inner"+t],i.removeChild(r)):f=n["inner"+t],f}})(this); |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.