mirror of
https://github.com/lubuntu-team/lubuntu.me.git
synced 2025-02-23 16:21:07 +00:00
219 lines
6.4 KiB
JavaScript
219 lines
6.4 KiB
JavaScript
/********************************************
|
|
* REVOLUTION 5.0 EXTENSION - PARALLAX
|
|
* @version: 1.0.0 (08.07.2015)
|
|
* @requires jquery.themepunch.revolution.js
|
|
* @author ThemePunch
|
|
*********************************************/
|
|
|
|
(function($) {
|
|
|
|
var _R = jQuery.fn.revolution,
|
|
_ISM = _R.is_mobile();
|
|
|
|
jQuery.extend(true,_R, {
|
|
|
|
checkForParallax : function(container,opt) {
|
|
|
|
var _ = opt.parallax;
|
|
|
|
if (_ISM && _.disable_onmobile=="on") return false;
|
|
|
|
opt.li.each(function() {
|
|
var li = jQuery(this);
|
|
for (var i = 1; i<=10;i++)
|
|
li.find('.rs-parallaxlevel-'+i).each(function() {
|
|
var pw = jQuery(this),
|
|
tpw = pw.closest('.tp-parallax-wrap');
|
|
tpw.data('parallaxlevel',_.levels[i-1])
|
|
tpw.addClass("tp-parallax-container");
|
|
});
|
|
})
|
|
|
|
|
|
|
|
if (_.type=="mouse" || _.type=="scroll+mouse" || _.type=="mouse+scroll") {
|
|
|
|
|
|
container.mouseenter(function(event) {
|
|
|
|
var currslide = container.find('.active-revslide');
|
|
var t = container.offset().top,
|
|
l = container.offset().left,
|
|
ex = (event.pageX-l),
|
|
ey = (event.pageY-t);
|
|
currslide.data("enterx",ex);
|
|
currslide.data("entery",ey);
|
|
|
|
})
|
|
|
|
container.on('mousemove.hoverdir, mouseleave.hoverdir',function(event) {
|
|
|
|
var currslide = container.find('.active-revslide');
|
|
switch (event.type) {
|
|
|
|
case "mousemove":
|
|
|
|
if (_.origo=="enterpoint") {
|
|
var t = container.offset().top,
|
|
l = container.offset().left;
|
|
|
|
if (currslide.data("enterx") ==undefined) currslide.data("enterx",(event.pageX-l));
|
|
if (currslide.data("entery") ==undefined) currslide.data("entery",(event.pageY-t));
|
|
|
|
var mh = currslide.data("enterx"),
|
|
mv = currslide.data("entery"),
|
|
diffh = (mh - (event.pageX - l)),
|
|
diffv = (mv - (event.pageY - t)),
|
|
s = _.speed/1000 || 0.4;
|
|
} else {
|
|
var t = container.offset().top,
|
|
l = container.offset().left,
|
|
diffh = (opt.conw/2 - (event.pageX-l)),
|
|
diffv = (opt.conh/2 - (event.pageY-t)),
|
|
s = _.speed/1000 || 3;
|
|
}
|
|
|
|
currslide.find(".tp-parallax-container").each(function() {
|
|
var pc = jQuery(this),
|
|
pl = parseInt(pc.data('parallaxlevel'),0)/100,
|
|
offsh = diffh * pl,
|
|
offsv = diffv * pl;
|
|
|
|
if (_.type=="scroll+mouse" || _.type=="mouse+scroll")
|
|
punchgs.TweenLite.to(pc,s,{force3D:"auto",x:offsh,ease:punchgs.Power3.easeOut,overwrite:"all"});
|
|
else
|
|
punchgs.TweenLite.to(pc,s,{force3D:"auto",x:offsh,y:offsv,ease:punchgs.Power3.easeOut,overwrite:"all"});
|
|
})
|
|
|
|
break;
|
|
case "mouseleave":
|
|
currslide.find(".tp-parallax-container").each(function() {
|
|
var pc = jQuery(this);
|
|
if (_.type=="scroll+mouse" || _.type=="mouse+scroll")
|
|
punchgs.TweenLite.to(pc,1.5,{force3D:"auto",x:0,ease:punchgs.Power3.easeOut});
|
|
else
|
|
punchgs.TweenLite.to(pc,1.5,{force3D:"auto",x:0,y:0,ease:punchgs.Power3.easeOut});
|
|
})
|
|
break;
|
|
}
|
|
});
|
|
|
|
if (_ISM)
|
|
window.ondeviceorientation = function(event) {
|
|
var y = Math.round(event.beta || 0),
|
|
x = Math.round(event.gamma || 0);
|
|
|
|
var currslide = container.find('.active-revslide');
|
|
|
|
if (jQuery(window).width() > jQuery(window).height()){
|
|
var xx = x;
|
|
x = y;
|
|
y = xx;
|
|
}
|
|
|
|
var curh = 360/container.width() * x,
|
|
curv = 180/container.height() * y;
|
|
|
|
currslide.find(".tp-parallax-container").each(function() {
|
|
var pc = jQuery(this),
|
|
pl = parseInt(pc.data('parallaxlevel'),0)/100,
|
|
offsh = curh * pl,
|
|
offsv = curv * pl;
|
|
punchgs.TweenLite.to(pc,0.2,{force3D:"auto",x:offsh,y:offsv,ease:punchgs.Power3.easeOut});
|
|
})
|
|
}
|
|
}
|
|
|
|
/*if (_.type=="scroll" || _.type=="scroll+mouse" || _.type=="mouse+scroll")
|
|
if (_ISM && opt.parallax.disable_onmobile=="on")
|
|
return false;
|
|
else*/
|
|
_R.scrollTicker(opt,container);
|
|
|
|
|
|
},
|
|
|
|
scrollTicker : function(opt,container) {
|
|
if (opt.scrollTicker!=true) {
|
|
opt.scrollTicker = true;
|
|
punchgs.TweenLite.ticker.fps(150);
|
|
punchgs.TweenLite.ticker.addEventListener("tick",function() {_R.scrollHandling(opt);},container,true,1);
|
|
}
|
|
},
|
|
|
|
|
|
|
|
// - SET POST OF SCROLL PARALLAX -
|
|
scrollHandling : function(opt) {
|
|
|
|
|
|
opt.lastwindowheight = opt.lastwindowheight || jQuery(window).height();
|
|
|
|
var t = opt.c.offset().top,
|
|
st = jQuery(window).scrollTop(),
|
|
b = new Object(),
|
|
_v = opt.viewPort,
|
|
_ = opt.parallax;
|
|
|
|
if (opt.lastscrolltop==st) return false;
|
|
opt.lastscrolltop = st;
|
|
|
|
b.top = (t-st);
|
|
b.h = opt.conh==0 ? opt.c.height() : opt.conh;
|
|
b.bottom = (t-st) + b.h;
|
|
|
|
var proc = b.top<0 ? b.top / b.h : b.bottom>opt.lastwindowheight ? (b.bottom-opt.lastwindowheight) / b.h : 0;
|
|
|
|
var area = 1-Math.abs(proc);
|
|
area = area<0 ? 0 : area;
|
|
|
|
if (_v.enable) {
|
|
|
|
if (1-_v.visible_area<=area) {
|
|
if (!opt.inviewport) {
|
|
opt.inviewport = true;
|
|
_R.enterInViewPort(opt);
|
|
}
|
|
} else {
|
|
if (opt.inviewport) {
|
|
opt.inviewport = false;
|
|
_R.leaveViewPort(opt);
|
|
}
|
|
}
|
|
}
|
|
// SCROLL BASED PARALLAX EFFECT
|
|
if (_ISM && opt.parallax.disable_onmobile=="on") return false;
|
|
|
|
var pt = new punchgs.TimelineLite();
|
|
pt.pause();
|
|
|
|
if (_.type=="scroll" || _.type=="scroll+mouse" || _.type=="mouse+scroll")
|
|
opt.c.find(".tp-parallax-container").each(function(i) {
|
|
var pc = jQuery(this),
|
|
pl = parseInt(pc.data('parallaxlevel'),0)/100,
|
|
offsv = proc * -(pl*opt.conh);
|
|
pc.data('parallaxoffset',offsv);
|
|
pt.add(punchgs.TweenLite.set(pc,{force3D:"auto",y:offsv}),0);
|
|
});
|
|
opt.c.find('.tp-revslider-slidesli .slotholder, .tp-revslider-slidesli .rs-background-video-layer').each(function() {
|
|
|
|
var t = jQuery(this),
|
|
l = t.data('bgparallax') || opt.parallax.bgparallax;
|
|
l = l == "on" ? 1 : l;
|
|
if (l!== undefined || l !== "off") {
|
|
var pl = opt.parallax.levels[parseInt(l,0)-1]/100,
|
|
offsv = proc * -(pl*opt.conh);
|
|
if (jQuery.isNumeric(offsv))
|
|
pt.add(punchgs.TweenLite.set(t,{position:"absolute",top:"0px",left:"0px",backfaceVisibility:"hidden",force3D:"true",y:offsv+"px",overwrite:"auto"}),0);
|
|
}
|
|
});
|
|
|
|
pt.play(0);
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
//// END OF PARALLAX EFFECT
|
|
})(jQuery); |