<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: prototype code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 21 Aug 2008 13:10:22 GMT</pubDate>
    <description>DZone Snippets: prototype code</description>
    <item>
      <title>Mac Menu effect js</title>
      <link>http://snippets.dzone.com/posts/show/4570</link>
      <description>Here the html code&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;title&gt;JS&lt;/title&gt;&lt;br /&gt;&lt;script src="js/prototype.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;script src="fisheye_new_2.js" type="text/javascript"&gt;&lt;/script&gt;&lt;br /&gt;&lt;style&gt;&lt;br /&gt;#menuBar{ width: 100%; text-align: center; position: relative; }&lt;br /&gt;#menuitems { text-align: center; margin-left: auto; margin-right: auto; width: 200px; }&lt;br /&gt;.menuitem { vertical-align: top; display: inline; background-color: #f00; }&lt;br /&gt;.menuitem img { vertical-align: top; width: 20px; height: 20px; border: 0px; }&lt;br /&gt;#logDiv { font-size: 10px; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;	&lt;div id="menubar"&gt;&lt;br /&gt;		&lt;div id="menuitems"&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img1"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img2"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img3"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img4"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img5"&gt;&lt;/div&gt;&lt;br /&gt;			&lt;div class="menuitem"&gt;&lt;img onclick="alert(this.id);" src="test2.jpg" id="img6"&gt;&lt;/div&gt;&lt;br /&gt;		&lt;/div&gt;&lt;br /&gt;	&lt;/div&gt;&lt;br /&gt;	&lt;div id="position"&gt;&lt;/div&gt;&lt;br /&gt;	&lt;div id="logDiv"&gt;&lt;/div&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and the javascript, require prototypejs&lt;br /&gt;&lt;code&gt;&lt;br /&gt;var maxDist = 0;&lt;br /&gt;&lt;br /&gt;function mousemove(e) {&lt;br /&gt;	var eX = Position.page($('menuitems'))[0];&lt;br /&gt;	var eY = Position.page($('menuitems'))[1];&lt;br /&gt;	var eWidth = parseInt($('menuitems').getStyle('width'));&lt;br /&gt;	var pX = Event.pointerX(e);&lt;br /&gt;	var pY = Event.pointerY(e);&lt;br /&gt;	var imgs = $('menuitems').immediateDescendants();&lt;br /&gt;	for (var i = 0; i &lt; imgs.length; i++) {&lt;br /&gt;		var distFromMouse = calcDistFromMouse(pX, pY, imgs[i].firstDescendant());&lt;br /&gt;		if (distFromMouse &lt; 45) {&lt;br /&gt;			var newSize = parseInt(distFromMouse * (-0.4) + 50);&lt;br /&gt;			imgs[i].firstDescendant().setStyle({ width: newSize, height: newSize});&lt;br /&gt;		} else {&lt;br /&gt;			imgs[i].firstDescendant().setStyle({ width: 20, height: 20});&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function resetScaling () {&lt;br /&gt;	var imgs = $('menuitems').immediateDescendants();&lt;br /&gt;	for (var i = 0; i &lt; imgs.length; i++) {&lt;br /&gt;		var newSize = 20;&lt;br /&gt;		imgs[i].setStyle({ width: newSize, height: newSize});&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function calcDistFromMouse(mX, mY, elem) {&lt;br /&gt;	var elemCenterX = parseInt(Position.page(elem)[0]) + (parseInt(elem.getStyle('width')) / 2);&lt;br /&gt;	var elemCenterY = parseInt(Position.page(elem)[1]) + (parseInt(elem.getStyle('height')) / 2);&lt;br /&gt;	var distance = parseInt(Math.sqrt((elemCenterX - mX) * (elemCenterX - mX) + (elemCenterY - mY) * (elemCenterY - mY)));&lt;br /&gt;	return distance;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function checkMousePos(pX, pY, eX, eY, eWidth ){&lt;br /&gt;	if (pY - eY &gt; 200)&lt;br /&gt;		return false;&lt;br /&gt;	if (pX &gt; eX) {&lt;br /&gt;		if (pX - (eX + eWidth) &gt; 200)&lt;br /&gt;			return false;&lt;br /&gt;	} else {&lt;br /&gt;		if (eX - pX &gt; 200)&lt;br /&gt;			return false;&lt;br /&gt;	}&lt;br /&gt;	return true;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Event.observe(window,'load', function() {&lt;br /&gt;  Event.observe(document,'mousemove',mousemove, false);&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 25 Sep 2007 10:48:19 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4570</guid>
      <author>Gne (Paolo)</author>
    </item>
  </channel>
</rss>
