JavaScript Kit > IE Filters reference > Transitions > Here
Barn Transition (filter)
The Barn Transition reveals a content using the effect of opening/ closing doors. Defined via IE's CSS filter
property and applied through JavaScript, here is its basic syntax:
Syntax:
filter :progid:DXImageTransform.Microsoft.Barn(attribute1=value1, attribute2=value2, etc);
Syntax (post IE8):
-ms-filter: "progid:DXImageTransform.Microsoft.Barn(attribute1=value1, attribute2=value2, etc)";
Note: See "Difference in syntax between pre IE8 and IE8+ browsers" for more info on the changes to the filter syntax in IE8+.
Example:
<style type="text/css">
#somediv{
width: 90%;
-ms-filter: "progid:DXImageTransform.Microsoft.Barn(duration=5)";
filter :progid:DXImageTransform.Microsoft.Barn(duration=5);
}
</style>
<div id="somediv">Some DIV</div>
Syntax Via Scripting
//To define a new Barn filter on an element
object.style.filter ="progid:DXImageTransform.Microsoft.Barn(attribute=value1, attribute2=value2)"
To access an existing property within the Barn filter:
object.filters.item("DXImageTransform.Microsoft.Barn").Property1=value1;
//To access an existing property within the Barn filter via the filters[] object
object.filters[x].Property1=value1 //where "x" is the position of the filter within list of filters on element
Below lists the attributes/properties of the Barn Transition:
Barn Transition attributes (properties)
Attributes/ Properties | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
duration |
Sets the duration of time the transition takes to complete, in seconds. No default value.
Valid values: Floating point number greater than 0 (seconds implied, ie: 2.5 means 2.5 seconds) Example: <style type="text/css"> |
||||||||
enabled |
Sets/ returns whether the filter is enabled or not. Default is true .
Valid values: true/ false |
||||||||
motion |
Sets whether the new content is revealed from the outside or the inside first. Default is out .
Valid values: "in" or "out". |
||||||||
orientation |
Sets whether the transition effect is vertical or horizontal. Default is vertical .
Valid values: "vertical" or "horizontal". |
||||||||
Percent
* This property accessible via scripting only |
Sets the point in which to capture the display of the content to apply the transition on. Default is 0.
Valid values: 0 - 100 (percentage implied) |
||||||||
status |
Returns the current state of the transition.
Valid values:
Example: <script type="text/javascript"> |
Barn Transition methods
Methods | Description |
---|---|
apply() | Captures the initial display of the content in preparation for the transition to be played (using the play() method). No visible changes to the content made at this point. |
play([duration]) |
Plays the transition in question. Supports an optional duration parameter that, if set, overrides the value of the duration property above in specifying the duration of the transition (in seconds).
Example: <style type="text/css"> |
stop() | Stops the transition playback. |
Barn Transition Demo

Beautiful castle for sale.
Source:
<style type="text/css">
#sample{
-ms-filter: "progid:DXImageTransform.Microsoft.Barn(duration=3)";
filter: progid:DXImageTransform.Microsoft.Barn(duration=3);
width: 230px;
height: 230px;
background-color: black;
padding: 10px;
color: white;
}
</style>
<div id="sample">
<img src="castle.jpg" /><br />
<b>Beautiful castle for sale.</b>
</div>
<p><a href="javascript:playtransition()">Play Transition</a></p>
<script type="text/javascript">
var sample=document.getElementById("sample")
function playtransition(){
sample.innerHTML='<img src="castle.jpg" /><br /><b>Beautiful castle for sale.</b>' //reset DIV to original content (in case demo is run more than once).
sample.filters[0].apply() //capture initial state of image (showing "castle.gif")
sample.innerHTML='<img src="castleinside.jpg" /><br /><b>Interior is elegant yet modern!</b>'
sample.filters[0].play() //play transition to reveal new image and description
}
</script>