Reflection.js 1.5 allows you to add reflections to images on your webpages. It uses unobtrusive javascript to keep your code clean. It works in all the major browsers - Internet Explorer 5.5+, Mozilla Firefox 1.5+, Opera 9+ and Safari. On older browsers, it'll degrade and your visitors won't notice a thing. Best of all, it's under 5KB. |
Upload reflection.js and prototype.js and include them into your webpage.
<script type="text/javascript" src="reflection.js"></script>
To add a reflection just add a class="reflect" to the image. View source to see example.
The reflection will automatically fade into the background colour.
If you run a forum, you can modify your templates and add class="reflect" to the avatar HTML code to add reflections.
By default, the reflection will have a height 50% of the original image. Thus the height of an image with a reflection will be 1.5 times the height of the original image. The default opacity of reflections is 50%.
Varying the Height
You can vary the height of a reflection by adding rheight followed by the desired height in percent to the CSS class list.
To use a reflection 33% the height of the original image:
class="reflect rheight33"
Example:
class="reflect rheight33" |
class="reflect rheight66" |
class="reflect rheight100" |
Varying the Opacity
You can vary the opacity of a reflection by adding ropacity followed by the desired opacity in percent to the CSS class list.
To use a reflection with 30% opacity:
class="reflect ropacity30"
Example:
class="reflect ropacity33" |
class="reflect ropacity66" |
class="reflect ropacity100" |
You can combine these two options. To create a 80% height 40% opacity reflection use:
class="reflect rheight80 ropacity40"
If you want tons of flexibility, use scripted reflections. You can make your reflections respond to user actions (e.g. changing the reflection opacity when the image is hovered over) or add reflections to scripts such as Lightbox.
Reflection.add(image, options);
Adds or modifies a reflection to an image using Javascript. If the image is already reflected but the specified opacity or height has changed, the reflection will be changed accordingly.
image should be an image element.
options can contain a value for opacity or height. Both values should be between 0 and 1.
Reflection.add(document.getElementById("ohboy"), { height: 3/4, opacity: 2/3 });
Reflection.remove(image);
Removes the reflection from an image.
Reflection.remove(document.getElementById("orly"));
Reflection.defaultHeight = height;
Reflection.defaultOpacity = opacity;
Changes the default height and opacity of reflections. The default value for both settings is 0.5.
If you've made any changes or bug fixes to reflection.js, feel free to publish and distribute them. If you contact me through my blog I can also include the changes in the main reflection.js download.
Version 1.5
Version 1.0
Version 0.4
Version 0.3
Version 0.2
Version 0.1
Original idea and inspiration for the script came from Romain Guy's Crystal CD Case. Sitharus made it all work in Safari. Andreas Linde helped make the script work better with CSS styles. Tralala at vBulletin.org did a great job of finding bugs with reflection in Safari and fixed them! Kudos!
A big thank you to everybody who has left their thoughts and comments. Your feedback has been invaluable.