|
@@ -10,7 +10,10 @@
|
|
*/
|
|
*/
|
|
|
|
|
|
jQuery(document).ready(function($) {
|
|
jQuery(document).ready(function($) {
|
|
- console.log('Hello Jee');
|
|
|
|
|
|
+ // console.log('Hello Jee');
|
|
|
|
+
|
|
|
|
+ // http://stackoverflow.com/questions/2890898/preventing-mouse-emulation-events-ie-click-from-touch-events-in-mobile-safari
|
|
|
|
+ // FastClick.attach(document.body);
|
|
|
|
|
|
var _debug = true,
|
|
var _debug = true,
|
|
_avgDelay = 1,
|
|
_avgDelay = 1,
|
|
@@ -49,6 +52,8 @@ jQuery(document).ready(function($) {
|
|
|
|
|
|
var _$loader = $('<div>').attr('id','loader').appendTo(_$body);
|
|
var _$loader = $('<div>').attr('id','loader').appendTo(_$body);
|
|
|
|
|
|
|
|
+ var _touch_started = false;
|
|
|
|
+
|
|
function init(){
|
|
function init(){
|
|
if(_debug)
|
|
if(_debug)
|
|
initDebug();
|
|
initDebug();
|
|
@@ -132,7 +137,7 @@ jQuery(document).ready(function($) {
|
|
|
|
|
|
function launchNav(){
|
|
function launchNav(){
|
|
|
|
|
|
- $(document)
|
|
|
|
|
|
+ $("#block-system-main")
|
|
/*
|
|
/*
|
|
____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
|
|
____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
|
|
| \| __| __| | |_ _| | _ | | __| | | __| | |_ _| __|
|
|
| \| __| __| | |_ _| | _ | | __| | | __| | |_ _| __|
|
|
@@ -140,12 +145,18 @@ jQuery(document).ready(function($) {
|
|
|____/|_____|_____|__|__| |_| |_____|__| |_____|\___/|_____|_|___| |_| |_____|
|
|
|____/|_____|_____|__|__| |_| |_____|__| |_____|\___/|_____|_|___| |_| |_____|
|
|
*/
|
|
*/
|
|
.on('mousemove', function(e){
|
|
.on('mousemove', function(e){
|
|
- console.log('document mousedown');
|
|
|
|
- clearTimeout(_timeout_dragging);
|
|
|
|
|
|
+ e.preventDefault();
|
|
|
|
|
|
- if(_previewed_chapter || _loaded_chapter || _loaded_static)
|
|
|
|
|
|
+ // prevent firing mousemove with touch events
|
|
|
|
+ if(_touch_started)
|
|
return false;
|
|
return false;
|
|
|
|
|
|
|
|
+ console.log('document mousemove');
|
|
|
|
+ clearTimeout(_timeout_dragging);
|
|
|
|
+
|
|
|
|
+ // if(_previewed_chapter || _loaded_chapter || _loaded_static)
|
|
|
|
+ // return false;
|
|
|
|
+
|
|
// activate dragging if already activated
|
|
// activate dragging if already activated
|
|
if(!_dragging){
|
|
if(!_dragging){
|
|
_dragging = true;
|
|
_dragging = true;
|
|
@@ -156,6 +167,7 @@ jQuery(document).ready(function($) {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
.on('mouseup', function(e){
|
|
.on('mouseup', function(e){
|
|
|
|
+ e.preventDefault();
|
|
console.log('document mouseup');
|
|
console.log('document mouseup');
|
|
|
|
|
|
if(_loaded_chapter || _loaded_static)
|
|
if(_loaded_chapter || _loaded_static)
|
|
@@ -170,8 +182,12 @@ jQuery(document).ready(function($) {
|
|
| | | | | | | --| | | __| | | __| | | | | | |__ |
|
|
| | | | | | | --| | | __| | | __| | | | | | |__ |
|
|
|_| |_____|_____|_____|__|__| |_____|\___/|_____|_|___| |_| |_____|
|
|
|_| |_____|_____|_____|__|__| |_____|\___/|_____|_|___| |_| |_____|
|
|
*/
|
|
*/
|
|
- .on('document touchstart', function(e){
|
|
|
|
- console.log('touchstart');
|
|
|
|
|
|
+ .on('touchstart', function(e){
|
|
|
|
+ // e.preventDefault();
|
|
|
|
+ console.log('document touchstart');
|
|
|
|
+
|
|
|
|
+ _touch_started = true;
|
|
|
|
+
|
|
clearTimeout(_timeout_dragging);
|
|
clearTimeout(_timeout_dragging);
|
|
|
|
|
|
if(_loaded_chapter || _loaded_static)
|
|
if(_loaded_chapter || _loaded_static)
|
|
@@ -187,6 +203,7 @@ jQuery(document).ready(function($) {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
.on('touchmove', function(e){
|
|
.on('touchmove', function(e){
|
|
|
|
+ // e.preventDefault();
|
|
console.log('document touchmove');
|
|
console.log('document touchmove');
|
|
|
|
|
|
if(_loaded_chapter || _loaded_static)
|
|
if(_loaded_chapter || _loaded_static)
|
|
@@ -195,12 +212,16 @@ jQuery(document).ready(function($) {
|
|
updateNavPos(e.originalEvent.touches[0].clientX, e.originalEvent.touches[0].clientY, true, false);
|
|
updateNavPos(e.originalEvent.touches[0].clientX, e.originalEvent.touches[0].clientY, true, false);
|
|
})
|
|
})
|
|
.on('touchend', function(e){
|
|
.on('touchend', function(e){
|
|
|
|
+ // e.preventDefault();
|
|
console.log("document touchend");
|
|
console.log("document touchend");
|
|
|
|
|
|
if(_loaded_chapter || _loaded_static)
|
|
if(_loaded_chapter || _loaded_static)
|
|
return false;
|
|
return false;
|
|
|
|
|
|
stopMoveNav();
|
|
stopMoveNav();
|
|
|
|
+
|
|
|
|
+ setTimeout(function(){_touch_started = false;}, 500);
|
|
|
|
+
|
|
});
|
|
});
|
|
|
|
|
|
// TODO : nav on scroll events
|
|
// TODO : nav on scroll events
|
|
@@ -279,19 +300,19 @@ jQuery(document).ready(function($) {
|
|
},3000);
|
|
},3000);
|
|
};
|
|
};
|
|
|
|
|
|
- function moveToChapter(chapter){
|
|
|
|
|
|
+ // function moveToChapter(chapter){
|
|
|
|
|
|
- // fake a mousdown by providing first pos as current pos
|
|
|
|
- _prev_mouse_pos.x = _nav_pos.x;
|
|
|
|
- _prev_mouse_pos.y = _nav_pos.y;
|
|
|
|
|
|
+ // // fake a mousdown by providing first pos as current pos
|
|
|
|
+ // _prev_mouse_pos.x = _nav_pos.x;
|
|
|
|
+ // _prev_mouse_pos.y = _nav_pos.y;
|
|
|
|
|
|
- // calculate the second pos of faked mousemove
|
|
|
|
- _nav_pos.x = - (chapter.pos.x - _center.x) - chapter.geom.w/2;
|
|
|
|
- _nav_pos.y = 100 - chapter.pos.y;
|
|
|
|
|
|
+ // // calculate the second pos of faked mousemove
|
|
|
|
+ // _nav_pos.x = - (chapter.pos.x - _center.x) - chapter.geom.w/2;
|
|
|
|
+ // _nav_pos.y = 100 - chapter.pos.y;
|
|
|
|
|
|
- startMoveNav();
|
|
|
|
- stopMoveNav();
|
|
|
|
- };
|
|
|
|
|
|
+ // startMoveNav();
|
|
|
|
+ // stopMoveNav();
|
|
|
|
+ // };
|
|
|
|
|
|
function onFullScreen(e){
|
|
function onFullScreen(e){
|
|
if(_$body.is('fullscreen')){
|
|
if(_$body.is('fullscreen')){
|
|
@@ -339,6 +360,7 @@ jQuery(document).ready(function($) {
|
|
|
|
|
|
function onCloseStatic(e){
|
|
function onCloseStatic(e){
|
|
_$static_wrapper.removeClass('visible');
|
|
_$static_wrapper.removeClass('visible');
|
|
|
|
+ _loaded_static = false;
|
|
};
|
|
};
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -365,7 +387,8 @@ jQuery(document).ready(function($) {
|
|
}
|
|
}
|
|
this.pos = {x:0,y:0};
|
|
this.pos = {x:0,y:0};
|
|
this.trans = {x:0, y:0,z:0};
|
|
this.trans = {x:0, y:0,z:0};
|
|
- this.ease = randB(0.05, 0.3);
|
|
|
|
|
|
+ this.trans_previewed = {x:0, y:0,z:0};
|
|
|
|
+ this.ease = randB(0.05, 0.2);
|
|
|
|
|
|
//drifting
|
|
//drifting
|
|
this.$title = $('h2.node-title', this.$e);
|
|
this.$title = $('h2.node-title', this.$e);
|
|
@@ -386,8 +409,9 @@ jQuery(document).ready(function($) {
|
|
this.$parties = $('.field-name-field-partie', e);
|
|
this.$parties = $('.field-name-field-partie', e);
|
|
this.parts_pos = {xs:new Array(), ys:new Array()};
|
|
this.parts_pos = {xs:new Array(), ys:new Array()};
|
|
this.lines = new Array();
|
|
this.lines = new Array();
|
|
- this.linesAnimeStartTime = 0,
|
|
|
|
- this.linesAnimeDuration = 2000; // milli sec
|
|
|
|
|
|
+ this.displayPreviewAnimeStartTime = 0,
|
|
|
|
+ this.displayPreviewAnimeDuration = 4000, // milli sec
|
|
|
|
+ this.are_lines_animated = false;
|
|
|
|
|
|
// chapter
|
|
// chapter
|
|
this.$n = false;
|
|
this.$n = false;
|
|
@@ -446,7 +470,10 @@ jQuery(document).ready(function($) {
|
|
this.pos.x = Math.round(_center.x+this.geom.r * this.geom.c) - this.geom.w/2;
|
|
this.pos.x = Math.round(_center.x+this.geom.r * this.geom.c) - this.geom.w/2;
|
|
this.pos.y = Math.round(_center.y+this.geom.r * -this.geom.s) - this.geom.h/2;
|
|
this.pos.y = Math.round(_center.y+this.geom.r * -this.geom.s) - this.geom.h/2;
|
|
|
|
|
|
- console.log('this', this);
|
|
|
|
|
|
+ // calculate the translation needed for the previewed position (center top)
|
|
|
|
+ this.trans_previewed.x = -(this.pos.x - _center.x) - this.geom.w*0.5;
|
|
|
|
+ this.trans_previewed.y = -this.pos.y+this.$e.find('.node-title').height()*1.3;
|
|
|
|
+
|
|
this.$e.css({
|
|
this.$e.css({
|
|
left:this.pos.x,
|
|
left:this.pos.x,
|
|
top:this.pos.y
|
|
top:this.pos.y
|
|
@@ -456,11 +483,14 @@ jQuery(document).ready(function($) {
|
|
Chapter.prototype.setEvents = function(){
|
|
Chapter.prototype.setEvents = function(){
|
|
//http://technify.me/user-experience/javascript/jquery/trigger-custom-events-with-jquery/
|
|
//http://technify.me/user-experience/javascript/jquery/trigger-custom-events-with-jquery/
|
|
// click to preview chapter
|
|
// click to preview chapter
|
|
- $('h2.node-title, .field-name-field-partie:first>.field-name-field-vignette', this.$e)
|
|
|
|
|
|
+ // $('h2.node-title, .field-name-field-partie:first>.field-name-field-vignette', this.$e)
|
|
|
|
+ this.$e
|
|
.on('click', this, function(e){
|
|
.on('click', this, function(e){
|
|
// e.stopImmediatePropagation();
|
|
// e.stopImmediatePropagation();
|
|
|
|
+ console.log('click on chapter');
|
|
e.stopPropagation();
|
|
e.stopPropagation();
|
|
e.preventDefault();
|
|
e.preventDefault();
|
|
|
|
+
|
|
e.data.preview(e);
|
|
e.data.preview(e);
|
|
return false;
|
|
return false;
|
|
});
|
|
});
|
|
@@ -505,6 +535,9 @@ jQuery(document).ready(function($) {
|
|
};
|
|
};
|
|
|
|
|
|
Chapter.prototype.move = function(){
|
|
Chapter.prototype.move = function(){
|
|
|
|
+ if(this.is_previewed)
|
|
|
|
+ return false;
|
|
|
|
+
|
|
this.trans.x += (_nav_pos.x - this.trans.x)*this.ease;
|
|
this.trans.x += (_nav_pos.x - this.trans.x)*this.ease;
|
|
this.trans.y += (_nav_pos.y - this.trans.y)*this.ease;
|
|
this.trans.y += (_nav_pos.y - this.trans.y)*this.ease;
|
|
|
|
|
|
@@ -528,7 +561,7 @@ jQuery(document).ready(function($) {
|
|
|
|
|
|
Chapter.prototype.preview = function(){
|
|
Chapter.prototype.preview = function(){
|
|
// don't relaunch preview more that one time
|
|
// don't relaunch preview more that one time
|
|
- if(this.is_previewed) return;
|
|
|
|
|
|
+ if(this.is_previewed) return false;
|
|
|
|
|
|
_previewed_chapter = this;
|
|
_previewed_chapter = this;
|
|
|
|
|
|
@@ -545,41 +578,31 @@ jQuery(document).ready(function($) {
|
|
|
|
|
|
this.displayPreview();
|
|
this.displayPreview();
|
|
|
|
|
|
- moveToChapter(this);
|
|
|
|
|
|
+ // moveToChapter(this);
|
|
};
|
|
};
|
|
|
|
|
|
Chapter.prototype.displayPreview = function(e){
|
|
Chapter.prototype.displayPreview = function(e){
|
|
// define randomly position of parties
|
|
// define randomly position of parties
|
|
this.resetPartsPos();
|
|
this.resetPartsPos();
|
|
|
|
|
|
- // apply new position to parties
|
|
|
|
- var that = this;
|
|
|
|
- this.$parties.each(function(i, e) {
|
|
|
|
- setTimeout(
|
|
|
|
- (function(i, e, xs, ys){
|
|
|
|
- return function(){
|
|
|
|
- $(e).translate3d({x:xs[i],y:ys[i]});
|
|
|
|
- }
|
|
|
|
- }(i, e, that.parts_pos.xs, that.parts_pos.ys)),
|
|
|
|
- 10);
|
|
|
|
-
|
|
|
|
- }); // each $parties
|
|
|
|
-
|
|
|
|
- this.$e.addClass('previewed');
|
|
|
|
- requestAnimationFrame(this.animeLines.bind(this));
|
|
|
|
|
|
+ this.are_lines_animated = false;
|
|
|
|
+ requestAnimationFrame(this.animePreviewDisplay.bind(this));
|
|
};
|
|
};
|
|
|
|
|
|
Chapter.prototype.resetPartsPos = function(){
|
|
Chapter.prototype.resetPartsPos = function(){
|
|
this.parts_pos = {xs:new Array(), ys:new Array()};
|
|
this.parts_pos = {xs:new Array(), ys:new Array()};
|
|
|
|
+
|
|
|
|
+ var h = _container.h * 0.6;
|
|
|
|
+
|
|
for (var i = 0; i < 2; i++) {
|
|
for (var i = 0; i < 2; i++) {
|
|
switch(i){
|
|
switch(i){
|
|
case 0:
|
|
case 0:
|
|
this.parts_pos.xs.push(randB(180,280));
|
|
this.parts_pos.xs.push(randB(180,280));
|
|
- this.parts_pos.ys.push(randB(250,350));
|
|
|
|
|
|
+ this.parts_pos.ys.push(randB(h*0.55,h*0.6));
|
|
break;
|
|
break;
|
|
case 1:
|
|
case 1:
|
|
this.parts_pos.xs.push(randB(-280,-180));
|
|
this.parts_pos.xs.push(randB(-280,-180));
|
|
- this.parts_pos.ys.push(randB(430,530));
|
|
|
|
|
|
+ this.parts_pos.ys.push(randB(h*0.65,h));
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
@@ -588,7 +611,7 @@ jQuery(document).ready(function($) {
|
|
|
|
|
|
// always place the first circle on top center
|
|
// always place the first circle on top center
|
|
this.parts_pos.xs.unshift(randB(-30,30));
|
|
this.parts_pos.xs.unshift(randB(-30,30));
|
|
- this.parts_pos.ys.unshift(randB(120,140));
|
|
|
|
|
|
+ this.parts_pos.ys.unshift(120);
|
|
};
|
|
};
|
|
|
|
|
|
Chapter.prototype.closePreview = function(){
|
|
Chapter.prototype.closePreview = function(){
|
|
@@ -597,9 +620,11 @@ jQuery(document).ready(function($) {
|
|
this.$e.removeClass('previewed')
|
|
this.$e.removeClass('previewed')
|
|
.find('.field-name-field-partie')
|
|
.find('.field-name-field-partie')
|
|
.css({transform:"none"});
|
|
.css({transform:"none"});
|
|
- requestAnimationFrame(this.animeLines.bind(this));
|
|
|
|
|
|
+
|
|
this.is_previewed = false;
|
|
this.is_previewed = false;
|
|
_previewed_chapter = false;
|
|
_previewed_chapter = false;
|
|
|
|
+
|
|
|
|
+ requestAnimationFrame(this.animePreviewDisplay.bind(this));
|
|
return this;
|
|
return this;
|
|
};
|
|
};
|
|
|
|
|
|
@@ -623,52 +648,79 @@ jQuery(document).ready(function($) {
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
- Chapter.prototype.animeLines = function(timestamp){
|
|
|
|
|
|
+ Chapter.prototype.animePreviewDisplay = function(timestamp){
|
|
// console.log("anime line "+this.nid);
|
|
// console.log("anime line "+this.nid);
|
|
// get the time on first anime launch
|
|
// get the time on first anime launch
|
|
- if(this.linesAnimeStartTime === 0)
|
|
|
|
- this.linesAnimeStartTime = timestamp;
|
|
|
|
|
|
+ if(this.displayPreviewAnimeStartTime === 0)
|
|
|
|
+ this.displayPreviewAnimeStartTime = timestamp;
|
|
|
|
|
|
// limit the animation time
|
|
// limit the animation time
|
|
- if(timestamp - this.linesAnimeStartTime < this.linesAnimeDuration){
|
|
|
|
- requestAnimationFrame(this.animeLines.bind(this));
|
|
|
|
|
|
+ if(timestamp - this.displayPreviewAnimeStartTime < this.displayPreviewAnimeDuration){
|
|
|
|
+ requestAnimationFrame(this.animePreviewDisplay.bind(this));
|
|
}else{
|
|
}else{
|
|
- this.linesAnimeStartTime = 0;
|
|
|
|
|
|
+ this.displayPreviewAnimeStartTime = 0;
|
|
}
|
|
}
|
|
|
|
|
|
- // get the lines length
|
|
|
|
- var l, a, pos1, pos2;
|
|
|
|
- for (var i = 0; i < this.lines.length; i++) {
|
|
|
|
- pos1 = this.$parties.eq(i).position();
|
|
|
|
- pos2 = this.$parties.eq(i+1).position();
|
|
|
|
-
|
|
|
|
- l = Math.sqrt(
|
|
|
|
- Math.pow(
|
|
|
|
- pos2.left - pos1.left
|
|
|
|
- ,2
|
|
|
|
- )
|
|
|
|
- +
|
|
|
|
- Math.pow(
|
|
|
|
- pos2.top - pos1.top
|
|
|
|
- ,2
|
|
|
|
- )
|
|
|
|
- );
|
|
|
|
-
|
|
|
|
- // get the rotation
|
|
|
|
- a = 180 / 3.14 * Math.acos((pos2.top - pos1.top) / l);
|
|
|
|
- if(pos2.left > pos1.left)
|
|
|
|
- a *= -1;
|
|
|
|
-
|
|
|
|
- // console.log("a = "+a);
|
|
|
|
- this.lines[i].$line.css({
|
|
|
|
- 'height':l,
|
|
|
|
- transform:"rotate3d(0,0,1,"+a+"deg)"
|
|
|
|
- });
|
|
|
|
|
|
+ // first move chapter to previewed pos (center top screen)
|
|
|
|
+ if(this.is_previewed && !this.are_lines_animated){
|
|
|
|
+ this.trans.x = this.trans.x + (this.trans_previewed.x - this.trans.x)*0.4;
|
|
|
|
+ this.trans.y = this.trans.y + (this.trans_previewed.y - this.trans.y)*0.4;
|
|
|
|
+ this.$e.translate3d({x:this.trans.x,y:this.trans.y});
|
|
|
|
+
|
|
|
|
+ // append just once when positioning is done
|
|
|
|
+ if(Math.abs(this.trans_previewed.x - this.trans.x) < 5){
|
|
|
|
+ // apply new position to parties
|
|
|
|
+ var that = this;
|
|
|
|
+ this.$parties.each(function(i, e) {
|
|
|
|
+ setTimeout(
|
|
|
|
+ (function(i, e, xs, ys){
|
|
|
|
+ return function(){
|
|
|
|
+ $(e).translate3d({x:xs[i],y:ys[i]});
|
|
|
|
+ }
|
|
|
|
+ }(i, e, that.parts_pos.xs, that.parts_pos.ys)),
|
|
|
|
+ 10);
|
|
|
|
+ }); // each $parties
|
|
|
|
+
|
|
|
|
+ //activate lines anime for next frame
|
|
|
|
+ this.are_lines_animated = true;
|
|
|
|
+ this.$e.addClass('previewed');
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- };
|
|
|
|
|
|
+ // after positiong juste anime lines
|
|
|
|
+ if(this.are_lines_animated){
|
|
|
|
+ // get the lines length
|
|
|
|
+ var l, a, pos1, pos2;
|
|
|
|
+ for (var i = 0; i < this.lines.length; i++) {
|
|
|
|
+ pos1 = this.$parties.eq(i).position();
|
|
|
|
+ pos2 = this.$parties.eq(i+1).position();
|
|
|
|
+
|
|
|
|
+ l = Math.sqrt(
|
|
|
|
+ Math.pow(
|
|
|
|
+ pos2.left - pos1.left
|
|
|
|
+ ,2
|
|
|
|
+ )
|
|
|
|
+ +
|
|
|
|
+ Math.pow(
|
|
|
|
+ pos2.top - pos1.top
|
|
|
|
+ ,2
|
|
|
|
+ )
|
|
|
|
+ );
|
|
|
|
+
|
|
|
|
+ // get the rotation
|
|
|
|
+ a = 180 / 3.14 * Math.acos((pos2.top - pos1.top) / l);
|
|
|
|
+ if(pos2.left > pos1.left)
|
|
|
|
+ a *= -1;
|
|
|
|
+
|
|
|
|
+ // console.log("a = "+a);
|
|
|
|
+ this.lines[i].$line.css({
|
|
|
|
+ 'height':l,
|
|
|
|
+ transform:"rotate3d(0,0,1,"+a+"deg)"
|
|
|
|
+ });
|
|
|
|
+ };
|
|
|
|
+ }
|
|
};
|
|
};
|
|
|
|
|
|
-
|
|
|
|
// _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
|
|
// _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____
|
|
// | | _ | __| | | | | | | _ | _ |_ _| __| __ |
|
|
// | | _ | __| | | | | | | _ | _ |_ _| __| __ |
|
|
// | | | __| __| | | | | --| | | __| | | | __| -|
|
|
// | | | __| __| | | | | --| | | __| | | | __| -|
|
|
@@ -866,9 +918,31 @@ jQuery(document).ready(function($) {
|
|
};
|
|
};
|
|
}
|
|
}
|
|
|
|
|
|
- // function translate3d(x, y, z){
|
|
|
|
- // // return
|
|
|
|
- // };
|
|
|
|
|
|
+ // http://davidwalsh.name/fullscreen
|
|
|
|
+ // http://www.sitepoint.com/html5-full-screen-api/
|
|
|
|
+ function launchIntoFullscreen(element) {
|
|
|
|
+ // Find the right method, call on correct element
|
|
|
|
+ if(element.requestFullscreen) {
|
|
|
|
+ element.requestFullscreen();
|
|
|
|
+ } else if(element.mozRequestFullScreen) {
|
|
|
|
+ element.mozRequestFullScreen();
|
|
|
|
+ } else if(element.webkitRequestFullscreen) {
|
|
|
|
+ element.webkitRequestFullscreen();
|
|
|
|
+ } else if(element.msRequestFullscreen) {
|
|
|
|
+ element.msRequestFullscreen();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // Whack fullscreen
|
|
|
|
+ function exitFullscreen() {
|
|
|
|
+ if(document.exitFullscreen) {
|
|
|
|
+ document.exitFullscreen();
|
|
|
|
+ } else if(document.mozCancelFullScreen) {
|
|
|
|
+ document.mozCancelFullScreen();
|
|
|
|
+ } else if(document.webkitExitFullscreen) {
|
|
|
|
+ document.webkitExitFullscreen();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
/*
|
|
/*
|
|
_ _ __
|
|
_ _ __
|
|
@@ -915,41 +989,6 @@ jQuery(document).ready(function($) {
|
|
}());
|
|
}());
|
|
|
|
|
|
|
|
|
|
-/*
|
|
|
|
- ____ ____
|
|
|
|
- / __/_ __/ / / __________________ ___ ____
|
|
|
|
- / /_/ / / / / / / ___/ ___/ ___/ _ \/ _ \/ __ \
|
|
|
|
- / __/ /_/ / / / (__ ) /__/ / / __/ __/ / / /
|
|
|
|
-/_/ \__,_/_/_/ /____/\___/_/ \___/\___/_/ /_/
|
|
|
|
-*/
|
|
|
|
-
|
|
|
|
-// http://davidwalsh.name/fullscreen
|
|
|
|
-// http://www.sitepoint.com/html5-full-screen-api/
|
|
|
|
-
|
|
|
|
-// Find the right method, call on correct element
|
|
|
|
-function launchIntoFullscreen(element) {
|
|
|
|
- if(element.requestFullscreen) {
|
|
|
|
- element.requestFullscreen();
|
|
|
|
- } else if(element.mozRequestFullScreen) {
|
|
|
|
- element.mozRequestFullScreen();
|
|
|
|
- } else if(element.webkitRequestFullscreen) {
|
|
|
|
- element.webkitRequestFullscreen();
|
|
|
|
- } else if(element.msRequestFullscreen) {
|
|
|
|
- element.msRequestFullscreen();
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-// Whack fullscreen
|
|
|
|
-function exitFullscreen() {
|
|
|
|
- if(document.exitFullscreen) {
|
|
|
|
- document.exitFullscreen();
|
|
|
|
- } else if(document.mozCancelFullScreen) {
|
|
|
|
- document.mozCancelFullScreen();
|
|
|
|
- } else if(document.webkitExitFullscreen) {
|
|
|
|
- document.webkitExitFullscreen();
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
____ __ __ _____________ _______
|
|
____ __ __ _____________ _______
|
|
/ __ \/ / / / / / ____/ _/ | / / ___/
|
|
/ __ \/ / / / / / ____/ _/ | / / ___/
|
|
@@ -972,119 +1011,3 @@ function exitFullscreen() {
|
|
};
|
|
};
|
|
})(jQuery);
|
|
})(jQuery);
|
|
|
|
|
|
-// https://css-tricks.com/snippets/jquery/draggable-without-jquery-ui/
|
|
|
|
-// (function($) {
|
|
|
|
-// $.fn.drags = function(opt) {
|
|
|
|
-
|
|
|
|
-// opt = $.extend({handle:"",cursor:"move"}, opt);
|
|
|
|
-
|
|
|
|
-// if(opt.handle === "") {
|
|
|
|
-// var $el = this;
|
|
|
|
-// } else {
|
|
|
|
-// var $el = this.find(opt.handle);
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
-// return $el.css('cursor', opt.cursor).on("mousedown", function(e) {
|
|
|
|
-// if(opt.handle === "") {
|
|
|
|
-// var $drag = $(this).addClass('draggable');
|
|
|
|
-// } else {
|
|
|
|
-// var $drag = $(this).addClass('active-handle').parent().addClass('draggable');
|
|
|
|
-// }
|
|
|
|
-// var z_idx = $drag.css('z-index'),
|
|
|
|
-// drg_h = $drag.outerHeight(),
|
|
|
|
-// drg_w = $drag.outerWidth(),
|
|
|
|
-// pos_y = $drag.offset().top + drg_h - e.pageY,
|
|
|
|
-// pos_x = $drag.offset().left + drg_w - e.pageX;
|
|
|
|
-// $drag.css('z-index', 1000).parents().on("mousemove", function(e) {
|
|
|
|
-// $('.draggable').offset({
|
|
|
|
-// top:e.pageY + pos_y - drg_h,
|
|
|
|
-// left:e.pageX + pos_x - drg_w
|
|
|
|
-// }).on("mouseup", function() {
|
|
|
|
-// $(this).removeClass('draggable').css('z-index', z_idx);
|
|
|
|
-// });
|
|
|
|
-// });
|
|
|
|
-// e.preventDefault(); // disable selection
|
|
|
|
-// }).on("mouseup", function() {
|
|
|
|
-// if(opt.handle === "") {
|
|
|
|
-// $(this).removeClass('draggable');
|
|
|
|
-// } else {
|
|
|
|
-// $(this).removeClass('active-handle').parent().removeClass('draggable');
|
|
|
|
-// }
|
|
|
|
-// });
|
|
|
|
-
|
|
|
|
-// }
|
|
|
|
-// })(jQuery);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-// remove navbar
|
|
|
|
-// $(document).ready(function() {
|
|
|
|
-
|
|
|
|
-// if (navigator.userAgent.match(/Android/i)) {
|
|
|
|
-// window.scrollTo(0,0); // reset in case prev not scrolled
|
|
|
|
-// var nPageH = $(document).height();
|
|
|
|
-// var nViewH = window.outerHeight;
|
|
|
|
-// if (nViewH > nPageH) {
|
|
|
|
-// nViewH -= 250;
|
|
|
|
-// $('BODY').css('height',nViewH + 'px');
|
|
|
|
-// }
|
|
|
|
-// window.scrollTo(0,1);
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
-// });
|
|
|
|
-
|
|
|
|
-// OR
|
|
|
|
-
|
|
|
|
-// function hideAddressBar(){
|
|
|
|
-// if(document.documentElement.scrollHeight<window.outerHeight/window.devicePixelRatio)
|
|
|
|
-// document.documentElement.style.height=(window.outerHeight/window.devicePixelRatio)+'px';
|
|
|
|
-// setTimeout(window.scrollTo(1,1),0);
|
|
|
|
-// }
|
|
|
|
-// window.addEventListener("load",function(){hideAddressBar();});
|
|
|
|
-// window.addEventListener("orientationchange",function(){hideAddressBar();});
|
|
|
|
-
|
|
|
|
-// OR
|
|
|
|
-
|
|
|
|
-// function hideAddressBar() {
|
|
|
|
-// if(!window.location.hash) {
|
|
|
|
-// if(document.height < window.outerHeight)
|
|
|
|
-// document.body.style.height = (window.outerHeight + 50) + 'px';
|
|
|
|
-// setTimeout( function(){
|
|
|
|
-// window.scrollTo(0, 1);
|
|
|
|
-// document.body.style.height = 'auto';
|
|
|
|
-// }, 50 );
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// window.addEventListener("load",function(){hideAddressBar();});
|
|
|
|
-// window.addEventListener("orientationchange",function(){hideAddressBar();});
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-// Drupal.behaviors.init_theme = function (context) {
|
|
|
|
-// // Growl-style system messages
|
|
|
|
-// $('#messages-and-help > div.messages:not(.processed)')
|
|
|
|
-// .addClass('processed')
|
|
|
|
-// .each(function() {
|
|
|
|
-// // If a message meets these criteria, we don't autoclose
|
|
|
|
-// // - contains a link
|
|
|
|
-// // - is an error or warning
|
|
|
|
-// // - contains a lenghthy amount of text
|
|
|
|
-// if ($('a', this).size() || $(this).is('.error') || $(this).is('.warning') || $(this).text().length > 100) {
|
|
|
|
-// $(this).prepend("<span class='close'>X</span>");
|
|
|
|
-// $('span.close', this).click(function() {
|
|
|
|
-// $(this).parent().slideUp('fast');
|
|
|
|
-// });
|
|
|
|
-// }
|
|
|
|
-// else {
|
|
|
|
-// // This essentially adds a 3 second pause before hiding the message.
|
|
|
|
-// $(this).animate({opacity:1}, 5000, 'linear', function() {
|
|
|
|
-// $(this).slideUp('fast');
|
|
|
|
-// });
|
|
|
|
-// }
|
|
|
|
-// });
|
|
|
|
-// };
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|