enmi12/glossaire/_posts/docs/2010-12-09-animating.mdown
author ymh <ymh.work@gmail.com>
Wed, 06 Nov 2013 03:21:17 +0000
changeset 0 d970ebf37754
permissions -rwxr-xr-x
first import
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
---
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
title: Animating
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
category: docs
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
layout: default
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
toc:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
  - { title: animationEngine option, anchor: animationengine_option }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
  - { title: CSS transitions, anchor: css_transitions }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
  - { title: Variations, anchor: variations }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
---
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
Isotope was developed to take advantage of the best browser features available. For animations, you can use CSS3 transitions and transforms in capable browsers. Isotope provides Javascript animation fall back for lesser browsers.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
## animationEngine option
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
You can control how Isotope handles animation with the [`animationEngine`](options.html#animationengine) option. This option has three values which control whether jQuery applies styles with`.css()` or `.animate()`.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
+ `'best-available'`: if browser supports CSS transitions, Isotope uses `.css()`. If not, falls back to using `.animate()`.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
+ `'css'`: Isotope uses `.css()`
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
+ `'jquery'`: Isotope uses `.animate()`
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
## CSS transitions
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
To enable animation with CSS transitions, you'll need the following code in your CSS:
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
{% highlight css %}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
.isotope,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
.isotope .isotope-item {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
  /* change duration value to whatever you like */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
  -webkit-transition-duration: 0.8s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
     -moz-transition-duration: 0.8s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
      -ms-transition-duration: 0.8s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
       -o-transition-duration: 0.8s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
          transition-duration: 0.8s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
.isotope {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
  -webkit-transition-property: height, width;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
     -moz-transition-property: height, width;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
      -ms-transition-property: height, width;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
       -o-transition-property: height, width;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
          transition-property: height, width;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
.isotope .isotope-item {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
  -webkit-transition-property: -webkit-transform, opacity;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
     -moz-transition-property:    -moz-transform, opacity;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
      -ms-transition-property:     -ms-transform, opacity;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
       -o-transition-property:      -o-transform, opacity;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
          transition-property:         transform, opacity;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
/**** disabling Isotope CSS3 transitions ****/
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
.isotope.no-transition,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
.isotope.no-transition .isotope-item,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
.isotope .isotope-item.no-transition {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
  -webkit-transition-duration: 0s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
     -moz-transition-duration: 0s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
      -ms-transition-duration: 0s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
       -o-transition-duration: 0s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
          transition-duration: 0s;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
{% endhighlight %}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
## Variations
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
With these two options you can finely control how animation is handled across browsers.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
### Best available (recommended)
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
Browsers that support CSS transitions will use them. Other browsers will fall back to using jQuery animation.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
+ **Add** CSS transition declarations
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
### Always use jQuery
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
All browsers will use jQuery animation, regardless of their CSS transition support.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
+ `animationEngine : 'jquery'`
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
+ **No** CSS transition declarations
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
Never set `animationEngine : 'jquery'` AND add CSS transition declarations. This will cause double-animation in browser that support CSS transitions &mdash; which is a bad thing.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
### Only CSS transitions
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
+ `animationEngine: 'css'`
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
+ **Add** CSS transition declarations
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
### None
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
Animation is not enabled in any browser
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
+ `animationEngine : 'css'`
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
+ **No** CSS transition declarations
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100