diff -r 4c86151704e9 -r 3daa4039509a web/rsln-opendata/res/metadataplayer/test/interface 1.2/source/fisheye.js --- a/web/rsln-opendata/res/metadataplayer/test/interface 1.2/source/fisheye.js Fri Apr 22 12:31:41 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/** - * Interface Elements for jQuery - * Fisheye menu - * - * http://interface.eyecon.ro - * - * Copyright (c) 2006 Stefan Petre - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - */ - -/** - * Build a Fisheye menu from a list of links - * - * @name Fisheye - * @description Build a Fisheye menu from a list of links - * @param Hash hash A hash of parameters - * @option String items items selection - * @option String container container element - * @option Integer itemWidth the minimum width for each item - * @option Integer maxWidth the maximum width for each item - * @option String itemsText selection of element that contains the text for each item - * @option Integer proximity the distance from element that make item to interact - * @option String valign vertical alignment - * @option String halign horizontal alignment - * - * @type jQuery - * @cat Plugins/Interface - * @author Stefan Petre - */ -jQuery.iFisheye = { - - build : function(options) - { - - return this.each( - function() - { - var el = this; - el.fisheyeCfg = { - items : jQuery(options.items, this), - container: jQuery(options.container, this), - pos : jQuery.iUtil.getPosition(this), - itemWidth: options.itemWidth, - itemsText: options.itemsText, - proximity: options.proximity, - valign: options.valign, - halign: options.halign, - maxWidth : options.maxWidth - }; - jQuery.iFisheye.positionContainer(el, 0); - jQuery(window).bind( - 'resize', - function() - { - el.fisheyeCfg.pos = jQuery.iUtil.getPosition(el); - jQuery.iFisheye.positionContainer(el, 0); - jQuery.iFisheye.positionItems(el); - } - ); - jQuery.iFisheye.positionItems(el); - el.fisheyeCfg.items - .bind( - 'mouseover', - function() - { - jQuery(el.fisheyeCfg.itemsText, this).get(0).style.display = 'block'; - } - ) - .bind( - 'mouseout', - function() - { - jQuery(el.fisheyeCfg.itemsText, this).get(0).style.display = 'none'; - } - ); - jQuery(document).bind( - 'mousemove', - function(e) - { - var pointer = jQuery.iUtil.getPointer(e); - var toAdd = 0; - if (el.fisheyeCfg.halign && el.fisheyeCfg.halign == 'center') - var posx = pointer.x - el.fisheyeCfg.pos.x - (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size())/2 - el.fisheyeCfg.itemWidth/2; - else if (el.fisheyeCfg.halign && el.fisheyeCfg.halign == 'right') - var posx = pointer.x - el.fisheyeCfg.pos.x - el.offsetWidth + el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size(); - else - var posx = pointer.x - el.fisheyeCfg.pos.x; - var posy = Math.pow(pointer.y - el.fisheyeCfg.pos.y - el.offsetHeight/2,2); - el.fisheyeCfg.items.each( - function(nr) - { - distance = Math.sqrt( - Math.pow(posx - nr*el.fisheyeCfg.itemWidth, 2) - + posy - ); - distance -= el.fisheyeCfg.itemWidth/2; - - distance = distance < 0 ? 0 : distance; - distance = distance > el.fisheyeCfg.proximity ? el.fisheyeCfg.proximity : distance; - distance = el.fisheyeCfg.proximity - distance; - - extraWidth = el.fisheyeCfg.maxWidth * distance/el.fisheyeCfg.proximity; - - this.style.width = el.fisheyeCfg.itemWidth + extraWidth + 'px'; - this.style.left = el.fisheyeCfg.itemWidth * nr + toAdd + 'px'; - toAdd += extraWidth; - } - ); - jQuery.iFisheye.positionContainer(el, toAdd); - } - ); - } - ) - }, - - positionContainer : function(el, toAdd) - { - if (el.fisheyeCfg.halign) - if (el.fisheyeCfg.halign == 'center') - el.fisheyeCfg.container.get(0).style.left = (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size())/2 - toAdd/2 + 'px'; - else if (el.fisheyeCfg.halign == 'left') - el.fisheyeCfg.container.get(0).style.left = - toAdd/el.fisheyeCfg.items.size() + 'px'; - else if (el.fisheyeCfg.halign == 'right') - el.fisheyeCfg.container.get(0).style.left = (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size()) - toAdd/2 + 'px'; - el.fisheyeCfg.container.get(0).style.width = el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size() + toAdd + 'px'; - }, - - positionItems : function(el) - { - el.fisheyeCfg.items.each( - function(nr) - { - this.style.width = el.fisheyeCfg.itemWidth + 'px'; - this.style.left = el.fisheyeCfg.itemWidth * nr + 'px'; - } - ); - } -}; - -jQuery.fn.Fisheye = jQuery.iFisheye.build; \ No newline at end of file