<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Shadower &#8211; Realistic Drop Shadows in Javascript</title>
	<atom:link href="http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/</link>
	<description>Thoughts and photos from an American living in Spain.</description>
	<lastBuildDate>Wed, 17 Mar 2010 23:53:45 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: zmove</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-5655</link>
		<dc:creator>zmove</dc:creator>
		<pubDate>Thu, 11 Mar 2010 16:14:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-5655</guid>
		<description>Hello,

Pretty cool shadow, but it would be cool to be able to set a shadow of 180Â° that can make shadow in the left and right of the container. In the example, it just make a shadow in the bottom which is no reallistic.

zmove</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>Pretty cool shadow, but it would be cool to be able to set a shadow of 180Â° that can make shadow in the left and right of the container. In the example, it just make a shadow in the bottom which is no reallistic.</p>
<p>zmove</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex_T</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-4049</link>
		<dc:creator>Alex_T</dc:creator>
		<pubDate>Sat, 04 Apr 2009 20:27:56 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-4049</guid>
		<description>Ok, it appears to be a prototype.js bug.

For those who are concerned, here is a possible solution. In order to apply it, modifications to prototype.js are in order.

http://dev.rubyonrails.org/ticket/11473</description>
		<content:encoded><![CDATA[<p>Ok, it appears to be a prototype.js bug.</p>
<p>For those who are concerned, here is a possible solution. In order to apply it, modifications to prototype.js are in order.</p>
<p><a href="http://dev.rubyonrails.org/ticket/11473" rel="nofollow">http://dev.rubyonrails.org/ticket/11473</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex_T</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-4048</link>
		<dc:creator>Alex_T</dc:creator>
		<pubDate>Sat, 04 Apr 2009 17:43:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-4048</guid>
		<description>To expand on ravi&#039;s post. This error occurs in IE6 and IE7 (didn&#039;t try it in IE8 though) when applying a drop-shadow to an image. These browsers report &quot;&#039;style&#039; is null or not an object&quot; in prototype.js, when the following line in shadower.js makes a call to it:

Position.clone(placeHolder, element);

Moreover, the image is doubled and placed on top of the original.

The error is specific to a case, when the image has a position:static property. I haven&#039;t found a workaround for this yet. This is very sad, because in every other browser that I used for testing (FF2.0/Opera9/Chrome/Safari) your script works perfectly.</description>
		<content:encoded><![CDATA[<p>To expand on ravi&#8217;s post. This error occurs in IE6 and IE7 (didn&#8217;t try it in IE8 though) when applying a drop-shadow to an image. These browsers report &#8220;&#8217;style&#8217; is null or not an object&#8221; in prototype.js, when the following line in shadower.js makes a call to it:</p>
<p>Position.clone(placeHolder, element);</p>
<p>Moreover, the image is doubled and placed on top of the original.</p>
<p>The error is specific to a case, when the image has a position:static property. I haven&#8217;t found a workaround for this yet. This is very sad, because in every other browser that I used for testing (FF2.0/Opera9/Chrome/Safari) your script works perfectly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-3817</link>
		<dc:creator>Martin</dc:creator>
		<pubDate>Thu, 26 Feb 2009 09:52:32 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-3817</guid>
		<description>Hi, the script is excellent, but there is a little bug. If the element to be shadowed is more than half the height of the site, the site gets a vertical scrollbar when applying the function &quot;parent.insertBefore&quot; (shadower.js line 29). When the placeHolder is set to &quot;visible=hidden&quot; the scrollbar disappears, but the element stays at the left-position it had when the scrollbar was visible; the correct position of the element  would be (element.left + 16px), 
for the scrollbars width is 16 px.

Is there any solution for this problem?
(Sorry for my bad english)</description>
		<content:encoded><![CDATA[<p>Hi, the script is excellent, but there is a little bug. If the element to be shadowed is more than half the height of the site, the site gets a vertical scrollbar when applying the function &#8220;parent.insertBefore&#8221; (shadower.js line 29). When the placeHolder is set to &#8220;visible=hidden&#8221; the scrollbar disappears, but the element stays at the left-position it had when the scrollbar was visible; the correct position of the element  would be (element.left + 16px),<br />
for the scrollbars width is 16 px.</p>
<p>Is there any solution for this problem?<br />
(Sorry for my bad english)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Philip Snyder</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-3481</link>
		<dc:creator>Philip Snyder</dc:creator>
		<pubDate>Wed, 10 Dec 2008 22:24:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-3481</guid>
		<description>I got rid of the recursive calls &amp; prototype&#039;s extra overhead for you. :) Sorry if it doesn&#039;t display nicely spaced -- can&#039;t figure it out on this forum. ??

&lt;code&gt;
    function stripIds(node) {
        var stack = new Array;
        stack[stack.length] = node;
        while (stack.length &gt; 0) {
            var n = stack.shift();
            if (node.nodeType == Node.ELEMENT_NODE) {
                if (n.id) {
                    n.removeAttribute(&#039;id&#039;);
                }
                if (n.hasChildNodes()) {
                    var children = n.childNodes;
                    for (var i=0; i&lt;children.length; i++) {
                        stack.push(children[i]);
                    }
                }
            }
        }
        return node;
    }
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>I got rid of the recursive calls &amp; prototype&#8217;s extra overhead for you. <img src='http://www.erik-rasmussen.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Sorry if it doesn&#8217;t display nicely spaced &#8212; can&#8217;t figure it out on this forum. ??</p>
<p><code><br />
    function stripIds(node) {<br />
        var stack = new Array;<br />
        stack[stack.length] = node;<br />
        while (stack.length &gt; 0) {<br />
            var n = stack.shift();<br />
            if (node.nodeType == Node.ELEMENT_NODE) {<br />
                if (n.id) {<br />
                    n.removeAttribute('id');<br />
                }<br />
                if (n.hasChildNodes()) {<br />
                    var children = n.childNodes;<br />
                    for (var i=0; i&lt;children.length; i++) {<br />
                        stack.push(children[i]);<br />
                    }<br />
                }<br />
            }<br />
        }<br />
        return node;<br />
    }<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sparsh</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-2979</link>
		<dc:creator>sparsh</dc:creator>
		<pubDate>Wed, 10 Sep 2008 08:51:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-2979</guid>
		<description></description>
		<content:encoded><![CDATA[<p>hi Eric, </p>
<p>i have used the same code u have given. But getting error like undefined draggable.. </p>
<p>have also used </p>
<p>var example3change = function() {<br />
  Shadower.shadow(’example3?,{<br />
    opacity:0.7,nestedShadows:4<br />
    });<br />
}<br />
new Draggable(’example3?, { change: example3change });</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erik R.</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-2935</link>
		<dc:creator>Erik R.</dc:creator>
		<pubDate>Tue, 02 Sep 2008 08:01:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-2935</guid>
		<description>Sparsh, that&#039;s because you have to call shadow() again when your div is dragged.  See the third example above:

&lt;code&gt;var example3change = function() {&lt;br /&gt; &#160;&#160;Shadower.shadow(&#039;example3&#039;,{&lt;br /&gt;&#160;&#160;&#160;&#160;opacity:0.7,nestedShadows:4&lt;br /&gt;&#160;&#160;&#160;&#160;});&lt;br /&gt;}&lt;br /&gt;
new Draggable(&#039;example3&#039;, { change: example3change });&lt;/code&gt;That way shadow() is called every time the Draggable &quot;change&quot; event fires.</description>
		<content:encoded><![CDATA[<p>Sparsh, that&#8217;s because you have to call shadow() again when your div is dragged.  See the third example above:</p>
<p><code>var example3change = function() {<br /> &nbsp;&nbsp;Shadower.shadow('example3',{<br />&nbsp;&nbsp;&nbsp;&nbsp;opacity:0.7,nestedShadows:4<br />&nbsp;&nbsp;&nbsp;&nbsp;});<br />}<br />
new Draggable('example3', { change: example3change });</code>That way shadow() is called every time the Draggable &#8220;change&#8221; event fires.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sparsh</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-2934</link>
		<dc:creator>sparsh</dc:creator>
		<pubDate>Tue, 02 Sep 2008 06:25:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-2934</guid>
		<description>Nice idea, Erik!
used it and div luks fine but i need to make dat div movable with shadow which i can&#039;t.. only main div moves with my js script. please guide me.</description>
		<content:encoded><![CDATA[<p>Nice idea, Erik!<br />
used it and div luks fine but i need to make dat div movable with shadow which i can&#8217;t.. only main div moves with my js script. please guide me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Francesco Mazzi</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-2869</link>
		<dc:creator>Francesco Mazzi</dc:creator>
		<pubDate>Mon, 18 Aug 2008 13:26:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-2869</guid>
		<description>Hi, excellent work!
I needed a uniform shadowin all directions, so I added another function to Shadower:

&lt;code&gt;uniform_shadow: function(element)
&#160;&#160;{
&#160;&#160;&#160;&#160;element = $(element);
&#160;&#160;&#160;&#160;var options = Object.extend(
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;distance: 8,
&#160;&#160;&#160;&#160;&#160;&#160;opacity: 0.7,
&#160;&#160;&#160;&#160;&#160;&#160;nestedShadows: 4,
&#160;&#160;&#160;&#160;&#160;&#160;color: &#039;#000000&#039;
&#160;&#160;&#160;&#160;}, arguments[1] &#124;&#124; {});
&#160;&#160;&#160;&#160;var positionStyle = Element.getStyle(element, &#039;position&#039;);
&#160;&#160;&#160;&#160;var parent = element.parentNode;
&#160;&#160;&#160;&#160;if (!element.shadowZIndex)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;if (positionStyle != &#039;absolute&#039; &amp;&amp; positionStyle != &#039;fixed&#039;)
&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var placeHolder = this.idSafeClone(element);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;placeHolder.id = null;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;parent.insertBefore(placeHolder, element);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Position.absolutize(element);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Position.clone(placeHolder, element);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;element.style.margin = &#039;0&#039;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;placeHolder.style.visibility = &#039;hidden&#039;;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;positionStyle = &#039;absolute&#039;;
&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;element.shadowZIndex = new Number(Element.getStyle(element, &#039;zIndex&#039;) ? Element.getStyle(element, &#039;zIndex&#039;) : 1);
&#160;&#160;&#160;&#160;&#160;&#160;element.style.zIndex = element.shadowZIndex + options.nestedShadows;
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;if (arguments[2])  // force recreate
&#160;&#160;&#160;&#160;&#160;&#160;this.deshadow(element);
&#160;&#160;&#160;&#160;// create shadows
&#160;&#160;&#160;&#160;if (!element.shadows)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;element.shadows = new Array(options.nestedShadows);
&#160;&#160;&#160;&#160;&#160;&#160;for (var i = 0; i &lt; options.nestedShadows; i++)
&#160;&#160;&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var shadow = document.createElement(&#039;div&#039;);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Element.hide(shadow);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;shadow.appendChild(document.createTextNode(&#039; &#039;));
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (parent)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;parent.appendChild(shadow);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;shadow.style.position = positionStyle;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;shadow.style.backgroundColor = options.color;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Element.setOpacity(shadow, options.opacity / options.nestedShadows);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;shadow.style.zIndex = element.shadowZIndex + i;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;element.shadows[i] = shadow;
&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;var legendHeight = this.getLegendHeight(element);
&#160;&#160;&#160;&#160;// position shadows
&#160;&#160;&#160;&#160;Position.prepare();
&#160;&#160;&#160;&#160;var offsets = Position.positionedOffset(element);
&#160;&#160;&#160;&#160;var topOffset = -options.distance;
&#160;&#160;&#160;&#160;var leftOffset = -options.distance;
&#160;&#160;&#160;&#160;element.shadows.each(function(shadow, i)
&#160;&#160;&#160;&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;shadow.style.top = Math.ceil(offsets[1] + topOffset + i + (legendHeight / 2)) + &#039;px&#039;;
&#160;&#160;&#160;&#160;&#160;&#160;shadow.style.left = (offsets[0] + leftOffset + i) + &#039;px&#039;;
&#160;&#160;&#160;&#160;&#160;&#160;shadow.style.width = (element.offsetWidth - (2 * i)) + 2 * options.distance + &#039;px&#039;;
&#160;&#160;&#160;&#160;&#160;&#160;shadow.style.height = (element.offsetHeight - (2 * i) - (legendHeight / 2)) + 2* options.distance + &#039;px&#039;;
&#160;&#160;&#160;&#160;&#160;&#160;Element.show(shadow);
&#160;&#160;&#160;&#160;});
&#160;&#160;},&lt;/code&gt;
I hope it will be useful...let me know!
Bye</description>
		<content:encoded><![CDATA[<p>Hi, excellent work!<br />
I needed a uniform shadowin all directions, so I added another function to Shadower:</p>
<p><code>uniform_shadow: function(element)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;element = $(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;var options = Object.extend(<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;distance: 8,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opacity: 0.7,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nestedShadows: 4,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color: '#000000'<br />
&nbsp;&nbsp;&nbsp;&nbsp;}, arguments[1] || {});<br />
&nbsp;&nbsp;&nbsp;&nbsp;var positionStyle = Element.getStyle(element, 'position');<br />
&nbsp;&nbsp;&nbsp;&nbsp;var parent = element.parentNode;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (!element.shadowZIndex)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (positionStyle != 'absolute' &amp;&amp; positionStyle != 'fixed')<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var placeHolder = this.idSafeClone(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;placeHolder.id = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent.insertBefore(placeHolder, element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position.absolutize(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position.clone(placeHolder, element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.style.margin = '0';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;placeHolder.style.visibility = 'hidden';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;positionStyle = 'absolute';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.shadowZIndex = new Number(Element.getStyle(element, 'zIndex') ? Element.getStyle(element, 'zIndex') : 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.style.zIndex = element.shadowZIndex + options.nestedShadows;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (arguments[2])  // force recreate<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.deshadow(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;// create shadows<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (!element.shadows)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.shadows = new Array(options.nestedShadows);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (var i = 0; i &lt; options.nestedShadows; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var shadow = document.createElement('div');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element.hide(shadow);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.appendChild(document.createTextNode(' '));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (parent)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parent.appendChild(shadow);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.style.position = positionStyle;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.style.backgroundColor = options.color;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element.setOpacity(shadow, options.opacity / options.nestedShadows);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.style.zIndex = element.shadowZIndex + i;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.shadows[i] = shadow;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;var legendHeight = this.getLegendHeight(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;// position shadows<br />
&nbsp;&nbsp;&nbsp;&nbsp;Position.prepare();<br />
&nbsp;&nbsp;&nbsp;&nbsp;var offsets = Position.positionedOffset(element);<br />
&nbsp;&nbsp;&nbsp;&nbsp;var topOffset = -options.distance;<br />
&nbsp;&nbsp;&nbsp;&nbsp;var leftOffset = -options.distance;<br />
&nbsp;&nbsp;&nbsp;&nbsp;element.shadows.each(function(shadow, i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.style.top = Math.ceil(offsets[1] + topOffset + i + (legendHeight / 2)) + 'px';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.style.left = (offsets[0] + leftOffset + i) + 'px';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.style.width = (element.offsetWidth - (2 * i)) + 2 * options.distance + 'px';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shadow.style.height = (element.offsetHeight - (2 * i) - (legendHeight / 2)) + 2* options.distance + 'px';<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Element.show(shadow);<br />
&nbsp;&nbsp;&nbsp;&nbsp;});<br />
&nbsp;&nbsp;},</code><br />
I hope it will be useful&#8230;let me know!<br />
Bye</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ravi</title>
		<link>http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/comment-page-1/#comment-2516</link>
		<dc:creator>ravi</dc:creator>
		<pubDate>Sat, 24 May 2008 06:34:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.erik-rasmussen.com/blog/2006/12/04/the-shadower-realistic-drop-shadows-in-javascript/#comment-2516</guid>
		<description>iam geeting error on the IE7 style is not an object.and also images is coming 2 times</description>
		<content:encoded><![CDATA[<p>iam geeting error on the IE7 style is not an object.and also images is coming 2 times</p>
]]></content:encoded>
	</item>
</channel>
</rss>
