====== About the script ====== * Purpose : This script will give you a beautiful page transition animation and an optional horizontal & vertical page loop * Author : [[https://plus.google.com/+LukasMorawietz|LM13]] * Current Version : 2.0 * Link: https://plus.google.com/115366157037831519359/posts/QHC7KRy8tVg * Video : https://plus.google.com/115366157037831519359/posts/4Ktw58WRMji * Download avialable! (Check repository) ====== Changelog ====== * Version 1.0 (18/5/2014): initial release in wiki * Version 2.0 (24/7/2014): standalone, reworked structure, fix for pre-scaled items ====== How to use the script ====== * Set the script to the positionchanged event of your container * enable infinte scrolling if you want a page loop, disable it if you don't want to loop through pages * in this container: create a shortcut to the script * one click on the shortcut will enable the animation, clicking again will disable the animation. * BE SURE TO DISABLE THE ANIMATION BEFORE YOU EDIT, MOVE OR ADD ITEMS! ====== Issues and Hints ====== * 1-direction pinned items are not supported //please report all bugs in the g+ community!// ====== Script ====== var e=LL.getEvent(); var d=e.getContainer(); var cont=JSON.parse(d.getTag()||"null"); var items=d.getItems(); var dwidth=d.getWidth(); var dheight=d.getHeight(); if(e.getSource()!="C_POSITION_CHANGED") { if(cont==null)cont=new Object(); var box=d.getBoundingBox(); cont.minx=box.getLeft(); cont.maxx=box.getRight(); cont.miny=box.getTop(); cont.maxy=box.getBottom(); var minpagex=Math.floor(cont.minx/dwidth); var minpagey=Math.floor(cont.miny/dheight); if(cont.setup!=true) { cont.pages=[]; for(x=0;x0.005&&percent<99.995&&dposx>cont.minx-dwidth&&dposy>cont.miny-dheight) { var scrollLimit=d.getProperties().getBoolean("noScrollLimit"); if(dposx>cont.maxx-dwidth&&scrollLimit) d.setPosition(cont.minx-dwidth,dposy,1,false); else if(dposy>cont.maxy-dheight&&scrollLimit)d.setPosition(dposx,cont.miny-dheight,1,false); if(dposx=0.5?1:1-percent*2)*data.sx,(percent>=0.5?1:1-percent*2)*data.sy); item.setPosition(dposx+((data.posx%dwidth+dwidth)%dwidth)+percent*(dwidth-((data.posx%dwidth+dwidth)%dwidth)*2),dposy+((data.posy%dheight+dheight)%dheight)+percent*(dheight-((data.posy%dheight+dheight)%dheight)*2)); item.setVisibility(percent<0.5); } } if(percentx==percent) { var items=(cont.pages[currentx+1-minpagex]||[])[(cont.statey?maxpagey:currenty)-minpagey]; } else { var items=(cont.pages[(cont.statex?maxpagex:currentx)-minpagex]||[])[currenty+1-minpagey]; } if(items!=null) { for(z=0;z=0.5); } } } else { d.setPosition(dposx,dposy); d.setPosition(dposx