
nad at svn
Jun 13, 2012, 8:20 AM
Post #1 of 1
(44 views)
Permalink
|
|
SVN: [115506] trunk/extensions/TreeAndMenu/star.js
|
|
https://www.mediawiki.org/wiki/Special:Code/MediaWiki/115506 Revision: 115506 Author: nad Date: 2012-06-13 15:20:29 +0000 (Wed, 13 Jun 2012) Log Message: ----------- fix starmenu breadcrumbs Modified Paths: -------------- trunk/extensions/TreeAndMenu/star.js Modified: trunk/extensions/TreeAndMenu/star.js =================================================================== --- trunk/extensions/TreeAndMenu/star.js 2012-06-13 11:45:31 UTC (rev 115505) +++ trunk/extensions/TreeAndMenu/star.js 2012-06-13 15:20:29 UTC (rev 115506) @@ -75,7 +75,7 @@ root = { x: div.width() / 2, y: div.height() / 2, - crumbs: [] + openDepth: 0 }; } @@ -143,19 +143,34 @@ var ox = e.position().left + e.width() / 2; var oy = e.position().top + e.height() / 2; - // If closing, flip t, and define final position in crumbs + // If closing, flip t, and move to depth position in crumbs area if( data.open ) { - // At start of close sequence, change icon to "plus" - if( fx.pos == 0 ) $('img', e).attr('src', window.tamBaseUrl + window.star_config.img_node); + // At start of close sequence, change icon to "plus" and set crumbs to parent crumbs state + if( fx.pos == 0 ) { + $('img', e).attr('src', window.tamBaseUrl + window.star_config.img_node); + } // Hide node at end of animation if( t > 0.9 ) display = 'none'; - // Animate the circle's center to the crumbs area - ox += ( root.crumbs.length * ( e.width() + 50 ) - ox ) * t; - oy -= oy * t; + // Animate the circle's center to the crumbs + if( root.openDepth >= d ) { + ox += ( ( d - 1 ) * ( e.width() + 50 ) - ox ) * t; + oy -= oy * t; + } + // animate to parents location + else { + var p = data.parent; + //var px = p.position().left + p.width() / 2; + //var py = p.position().top + p.height() / 2; + //ox += ( px - ox ) * t; + //oy += ( py - oy ) * t; + ox += ( root.x - ox ) * t; + oy += ( root.y - oy ) * t; + } + // Set the angle and radius to match the final opening's state o = window.star_config.out_spin + t * window.star_config.in_spin; t = 1 - t; @@ -167,6 +182,9 @@ // At start of open sequence, if( fx.pos == 0 ) { + // Record depth of currently open node + root.openDepth = d; + // Change icon to "minus" $('img', e).attr('src', window.tamBaseUrl + window.star_config.img_open); @@ -178,11 +196,6 @@ if( ndata.open && !ndata.anim ) animateNode($('#'+id)); } } - - // Remove this node and everything after from the crumbs - var i = root.crumbs.indexOf(e.attr('id')); - if( i >= 0 ) root.crumbs = root.crumbs.slice(0,i); - } // Animate the circle's center to the root center @@ -241,9 +254,6 @@ // Set state to not animating data.anim = false; - - // If closed, add to end of crumbs - if( !data.open ) root.crumbs.push(e.attr('id')); } }); } _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS [at] lists https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|