diff --git a/ui/experiments/infinite-ribbon.html b/ui/experiments/infinite-ribbon.html index aefbfbc6..d5f4aa90 100755 --- a/ui/experiments/infinite-ribbon.html +++ b/ui/experiments/infinite-ribbon.html @@ -10,6 +10,7 @@ function focus(elem){ .addClass('current') .trigger('focus') } + function clickHandler(){ focus(this) } @@ -39,7 +40,10 @@ function shiftFocus(n){ cur.closest('.container') .trigger('shiftfocus', n) + // XXX will adding a singular [direction] branch make things faster + // for n = +/-1 ??? var dir = cur[direction+'All']('.square') + // see if we need to warp arund... if(dir.length < Math.abs(n)){ var sq = cur.closest('.container').children('.square') @@ -48,6 +52,7 @@ function shiftFocus(n){ ? (i + n) % sq.length : sq.length - (Math.abs(i + n) % sq.length) ])) } + // shift the current element... return focus($(dir[Math.abs(n)-1])) } @@ -55,13 +60,16 @@ function shiftFocus(n){ // these will roll the container... +// XXX make this container context-aware... function rollContainer(n){ + var sq = $('.current.square') + .closest('.container') + .children('.square') // right... if(n > 0){ - return $($('.square').splice(0, n)).appendTo($('.container')) + return $(sq.splice(0, n)).appendTo($('.container')) // left... } else if(n < 0){ - var sq = $('.square') var l = sq.length return $(sq.splice(l+n, l)).prependTo($('.container')) // 0... @@ -71,7 +79,8 @@ function rollContainer(n){ } -var UPDATE_ELEMENT_TEXT = false +// misc demo stuff... +var UPDATE_ELEMENT_TEXT = true function toggleNumberUpdate(){ if(UPDATE_ELEMENT_TEXT){ UPDATE_ELEMENT_TEXT = false @@ -81,25 +90,28 @@ function toggleNumberUpdate(){ } + +// init things... $(function(){ $('.container') // NOTE: this event will get completed BEFORE the element is focused. .on('shiftfocus', function(evt, n){ - if(UPDATE_ELEMENT_TEXT){ - var sq = $('.square') + // update squares -- numbers... + if(UPDATE_ELEMENT_TEXT){ + var sq = $(this).children('.square') if(n > 0){ - var s = $('.square').last().text()*1 + 1 + var s = sq.last().text()*1 + 1 } else if(n < 0){ - var s = $('.square').first().text()*1 + n + var s = sq.first().text()*1 + n } else { return } - rollContainer(n).each(function(i, e){ $(this).text(i + s) }) + // roll as-is... } else { rollContainer(n) } @@ -155,9 +167,9 @@ $(function(){   +
-
1
2
3
@@ -169,8 +181,6 @@ $(function(){
- -