Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __SCROLLROLLER__ : function($item, settings)
- {
- /*if(false === $item.hasClass('tri4m-ui-scrollroller-y')
- && false === $item.hasClass('tri4m-ui-scrollroller-x'))
- return $item;*/
- var __settings = jQuery.extend
- (
- true,
- {
- items : null,
- sensitive : true,
- ignoreChilds : true,
- easing :
- {
- method : 'easeOutCubic',
- duration : 400,
- callback :
- {
- container :
- {
- init : function(){},
- mouseleave : function(){}
- },
- item :
- {
- activate : function(){},
- deactivate : function(){}
- },
- window :
- {
- resolutionchange : function(){}
- }
- }
- }
- },
- settings
- );
- var __instance = function($item)
- {
- var _element = $item,
- _align = null,
- _isf = function(c) { return (typeof(c) == 'function'); },
- _isset = $.tri4m.global.__PROTO__.__TRI4M__.isset($item, 'scrollroller'),
- _reg = {},
- _bnd = {},
- _x, _y, _f, _m, _a, _c, _j, _dom, _update, _insert, _init;
- _x = function()
- {
- this.cp = function(x,f) { return { a : 'scrollLeft', p : x, c : f}; };
- this.cm = function(e) { return { t : { d : _f.l().outerWidth(), o : _f.l()[0].offsetLeft },
- r : { d : _reg.j.get('c').width(), o : _reg.j.get('c').offset().left },
- i : { d : e.pageX },
- A : { d : _reg.j.get('w').width() },
- m : 4 }; };
- this.cc = function() { return { c : _f.x().data(_reg.n.get('dlm')).i.p.c.x, d : _reg.j.get('c').width() }; };
- this.id = function(t) { return t.outerWidth(true); };
- this.ik = function(p) { return {x : p, y : 0}; };
- this.is = function(d) { return d; };
- this.iw = function(d) { _reg.j.get('l').addClass('ui-helper-clearfix'); if(d > _reg.j.get('c').width()) _reg.j.get('w').width(d); };
- this.ac = function(t) { _c.p(_c.c(), t); };
- this.ap = function(x) { _c.p(x); };
- };
- _y = function()
- {
- this.cp = function(y,f) { return { a : 'scrollTop', p : y, c : f}; };
- this.cm = function(e) { return { t : { d : _f.l().outerHeight(true), o : _f.l()[0].offsetTop },
- r : { d : _reg.j.get('c').height(), o : _reg.j.get('c').offset().top },
- i : { d : e.pageY },
- A : { d : _reg.j.get('w').height() },
- m : 1 }; };
- this.cc = function() { return { c : _f.x().data(_reg.n.get('dlm')).i.p.c.y, d : _reg.j.get('c').height() }; };
- this.id = function(t) { return t.outerHeight(true); };
- this.ik = function(p) { return {x : 0, y : p}; };
- this.is = function(d) { return d - parseInt($('li:first-child', _reg.j.get('l')).css("margin-bottom"), 10); };
- this.iw = function(d) { if(d > _reg.j.get('c').height()) _reg.j.get('w').height(d); };
- this.ac = function(t) { _c.p(_c.c(), t); };
- this.ap = function(y) { _c.p(y); };
- };
- _f =
- {
- f : function() { return $('ul:first > li', _reg.j.get('w')).filter(':first'); },
- l : function() { return $('ul:first > li', _reg.j.get('w')).filter(':last'); },
- a : function() { return $(_reg.j.get('i')).filter(function() { return ($(this).data(_reg.n.get('dls')).a === true); }); },
- x : function() { var a = _f.a(); return (a.length === 1) ? a : _f.f(); },
- e : function(i) { return $('ul:first > li', _reg.j.get('w')).filter(':eq(' + i + ')' ); }
- };
- _m =
- {
- r : function(o)
- {
- var f = (!o.m || o.m === 0) ? 1 : o.m;
- return (((o.i.d - o.r.o) * ((o.t.o + o.t.d + (o.A.d / f)) - o.r.d) / o.r.d ) - (o.A.d / (f * 2)));
- },
- c : function(o) { return o.c - (o.d / 2); }
- };
- _a =
- {
- s : function(o)
- {
- var c = (true === _isf(o.c)) ? o.c : function(){}, a = {}, t = $(this), d = _reg.c.get('easd'), m = _reg.c.get('easm');
- a[o.a] = o.p;
- return _reg.j.get('c').stop().animate(a, d, m,
- // w00t?
- //function() { return c(t); }
- c
- );
- }
- };
- _c =
- {
- c : function() { return _m.c(_align.cc()); },
- m : function(e) { return _m.r(_align.cm(e)); },
- p : function(p,c) { return _a.s(_align.cp(p,c)); }
- };
- _j =
- {
- window : function() { _align.ac(_reg.c.get('ecbr')); },
- mouseleave : function() { _align.ac(_reg.c.get('ecbl')); },
- init : function() { _align.ac(_reg.c.get('ecbi')); },
- activation : function() { _align.ac(_reg.c.get('ecba')); },
- deactivation : function() { _align.ac(_reg.c.get('ecbd')); },
- mousemove : function(p) { _align.ap(p); }
- };
- _dom = function()
- {
- var j = _reg.j, _d = '<div/>', _l = '<ul/>', __d = 'div', __l = 'ul', __i = 'li';
- j.register('c', _element, true);
- var w = _element.find(__d).eq(0);
- j.register('w', ((w.length === 0) ? $(_d).appendTo(j.get('c')) : w), true);
- var l = _reg.j.get('w').find(__l).eq(0);
- j.register('l', ((l.length === 0) ? $(_l).appendTo(j.get('w')) : l), true);
- var i = $(__i, j.get('l'));
- j.register('i', i, false);
- j.get('w').addClass('tri4m-ui-scrollroller-wrapper');
- j.get('l').addClass('tri4m-ui-scrollroller-list');
- j.get('i').addClass('tri4m-ui-scrollroller-listitem');
- j.get('c').addClass('tri4m-ui-scrollroller')
- .css({overflow: 'hidden'})
- .data(_reg.n.get('dcs'), { initialized : false, i : null, mouseover : false });
- };
- _update = function()
- {
- var td = 0, b = _align, j = _reg.j, i = $('li', j.get('l'));
- j.set('i', i);
- i.each(function(index)
- {
- var t = $(this), d = b.id(t), dc = d / 2, p = td, pc = dc + p, k = b.ik(p), kc = b.ik(pc), bi = _bnd.i.toValueObject();
- for(var i in bi) t.unbind(i).bind(i, bi[i]);
- t.data(_reg.n.get('dlm'), { i : { m : { f : d, h : dc }, p : { a : k, c : kc } } })
- .data(_reg.n.get('dls'), { i : index, d : false, a : false })
- /*
- .click(function(e)
- {
- var t = $(e.target);
- t.trigger('activate');
- //alert($(this).data(_reg.n.get('dls')).i);
- })
- */
- ;
- td = b.is(p + d);
- //t.html(index);
- });
- b.iw(td);
- };
- _insert = function(index)
- {
- var l = _reg.j.get('i').length, i = $('<li/>').addClass('tri4m-ui-scrollroller-listitem tri4m-ui-scrollroller-listitem-insert');
- if(index === undefined) index = l;
- (index >= l)
- ? i.appendTo(_reg.j.get('l'))
- : i.insertBefore(_reg.j.get('i')[index]);
- _update();
- };
- _init = function()
- {
- if(true === _isset) return;
- _reg.j = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__();
- _reg.n = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__();
- _reg.c = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__();
- _bnd.r = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__();
- _bnd.c = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__();
- _bnd.i = new $.tri4m.global.__CLASS__.__VARIABLE__.__REGISTRY__();
- _reg.n .register('dls', 'tri4m.ui.scrollroller.listitem.state')
- .register('dlm', 'tri4m.ui.scrollroller.listitem.math')
- .register('dcs', 'tri4m.ui.scrollroller.state');
- _reg.c .register('easd', __settings.easing.duration)
- .register('easm', __settings.easing.method)
- .register('ecbl', __settings.easing.callback.container.mouseleave)
- .register('ecbi', __settings.easing.callback.container.init)
- .register('ecba', __settings.easing.callback.item.activate)
- .register('ecbd', __settings.easing.callback.item.deactivate)
- .register('ecbr', __settings.easing.callback.window.resolutionchange)
- .register('class.active', 'tri4m-ui-scrollroller-listitem-active');
- if(!_element.hasClass('tri4m-ui-scrollroller-x')
- && !_element.hasClass('tri4m-ui-scrollroller-y'))
- _element.addClass('tri4m-ui-scrollroller-x');
- _align = _element.hasClass('tri4m-ui-scrollroller-x')
- ? new _x
- : new _y;
- _bnd.i
- .register('adjust-activate', _j.activation, true)
- .register('adjust-deactivate', _j.deactivation, true)
- .register('activate', function(e, c)
- {
- var t = $(e.target),
- ci = _reg.j.get('c').data(_reg.n.get('dcs')),
- dc = t.data(_reg.n.get('dls')),
- ds = t.data(_reg.n.get('dlm'));
- if(ci.i === dc.i) return;
- _f.a().trigger('deactivate');
- ci.i = dc.i;
- dc.a = true;
- ds.m = { x : e.pageX, y : e.pageY };
- ds.c = { x : (_reg.j.get('c').offset().left), y : (_reg.j.get('c').offset().top) };
- ds.w = { x : (_reg.j.get('w').offset().left), y : (_reg.j.get('w').offset().top) };
- _reg.j.get('c')
- .data(_reg.n.get('dcs'), ci);
- t.toggleClass(_reg.c.get('class.active'))
- .data(_reg.n.get('dlm'), ds)
- .data(_reg.n.get('dls'), dc);
- if(true === _isf(c)) c(t);
- }, true)
- .register('deactivate', function(e, c)
- {
- var t = $(this), ci = _reg.j.get('c').data(_reg.n.get('dcs')), dl = _f.a().data(_reg.n.get('dls'));
- ci.i = null; dl.a = false;
- _reg.j.get('c').data(_reg.n.get('dcs'), ci);
- t.toggleClass(_reg.c.get('class.active')).data(_reg.n.get('dls'), dl);
- if(true === _isf(c)) c(t);
- }, true);
- _bnd.c
- .register('activate-index', function(e, i, c)
- {
- var l = _reg.j.get('i').size() - 1;
- return (i > l || i < 0) ? null : _f.e(i).trigger('activate', [c]).trigger('adjust-activate');
- }, true)
- .register('activate-first', function(e, c)
- {
- var t = $(e.target);
- return t.trigger('activate-index', [0, c]);
- }, true)
- .register('activate-last', function(e, c)
- {
- var t = $(e.target), l = _reg.j.get('i').size() - 1;
- return t.trigger('activate-index', [l, c]);
- }, true)
- .register('activate-next', function(e, c)
- {
- var t = $(e.target), a = _reg.j.get('c').data(_reg.n.get('dcs')).i;
- if(a === null) return null;
- var n = a + 1;
- return t.trigger('activate-index', [n, c]);
- }, true)
- .register('activate-next-or-index', function(e, i, c)
- {
- var t = $(e.target), a = _reg.j.get('c').data(_reg.n.get('dcs')).i;
- return (a === null) ? t.trigger('activate-index', [i, c]) : t.trigger('activate-next', [c]);
- }, true)
- .register('activate-next-or-first', function(e, c)
- {
- var t = $(e.target), l = _reg.j.get('i').size() - 1, a = _reg.j.get('c').data(_reg.n.get('dcs')).i;
- return (a === null || a === l) ? t.trigger('activate-first', [c]) : t.trigger('activate-next', [c]);
- }, true)
- .register('activate-prev', function(e, c)
- {
- var t = $(e.target), a = _reg.j.get('c').data(_reg.n.get('dcs')).i;
- if(a === null) return null;
- var p = a - 1;
- return t.trigger('activate-index', [p, c]);
- }, true)
- .register('activate-prev-or-index', function(e, i, c)
- {
- var t = $(e.target), a = _reg.j.get('c').data(_reg.n.get('dcs')).i;
- return (a === null) ? t.trigger('activate-index', [i, c]) : t.trigger('activate-prev', [c]);
- }, true)
- .register('activate-prev-or-last', function(e, c)
- {
- var t = $(e.target), a = _reg.j.get('c').data(_reg.n.get('dcs')).i;
- if(a === null) return t.trigger('activate-first', [c]);
- return (a === 0) ? t.trigger('activate-last', [c]) : t.trigger('activate-prev', [c]);
- }, true)
- .register('deactivate-item', function(e, c)
- {
- return _f.a().trigger('deactivate', [c]).trigger('adjust-deactivate', [e]);
- }, true)
- .register('disable-item', function(e, i, c)
- {
- }, true)
- .register('disable-items', function(e, iArr, c)
- {
- }, true)
- .register('enable-item', function(e, i, c)
- {
- }, true)
- .register('enable-items', function(e, iArr, c)
- {
- }, true)
- .register('append-item', function(e, i, c)
- {
- }, true)
- .register('prepend-item', function(e, i, c)
- {
- }, true)
- .register('insert-item', function(e, i, item, c)
- {
- }, true)
- .register('disable-all', function(e, c)
- {
- }, true)
- .register('enable-all', function(e, c)
- {
- }, true);
- _bnd.r
- .register('resize.resolutionchange', _j.window, true)
- _dom();
- _update();
- var bc = _bnd.c.toValueObject(), br = _bnd.r.toValueObject(), j = _reg.j;
- for(var i in br) { $(window).bind(i, br[i]); }
- for(var i in bc) j.get('c').unbind(i).bind(i, bc[i]);
- if(true === __settings.sensitive) j.get('c')
- .mouseenter(function(e)
- {
- $(this).data(_reg.n.get('dcs')).mouseover = true;
- })
- .mousemove(function(e)
- {
- _j.mousemove(_c.m(e));
- $(this).data(_reg.n.get('dcs')).mouseover = true;
- })
- .mouseleave(function(e)
- {
- _j.mouseleave();
- $(this).data(_reg.n.get('dcs')).mouseover = false;
- });
- };
- _init();
- this.world = function()
- {
- var a = (_align instanceof _x) ? 'x' : 'y';
- alert(a + ' world');
- }
- }
- var instance = new __instance($item, true);
- $.tri4m.global.__PROTO__.__TRI4M__.register($item, 'scrollroller', instance);
- }
- },
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement