JavaScript DHTML/Mootools/Effect

Материал из Web эксперт
Версия от 07:25, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

The powerful Effects-Classes allow you to change any number of css styles with any transition and any duration

 
<!--
MooTools is released under the Open Source MIT license, 
which gives you the possibility to use it and modify 
it in every circumstance. 
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <style rel="stylesheet" type="text/css">
div.demoElement {
  width: 80px;
  height: 80px;
  border: 1px solid black;
  background-color: #f9f9f9;
  font-size: 12px;
  color: #000000;
  padding: 10px;
}
div.demoElementHeight {
  height: 120px;
}
.myClass {
  width: 300px;
  height: 50px;
  border: 3px dashed black;
  background-color: #C6D880;
  font-size: 20px;
  padding: 20px;
}  
  
  </style>
  <script type="text/javascript" src="mootools.js"></script>
  <script type="text/javascript">
window.addEvent("domready", function() {
  var el = $("myElement");
  
  // MooTools is able to handle effects without the use of a wrapper,
  // so you are able to do effects with just one easy line.
  
  //FIRST EXAMPLE
  
  // There are different ways to add a fading opacity effect to an element click
  
  // Short version
  $("fadeOpacity").addEvent("click", el.fade.bind(el, [0]));
  
  // Long version
  $("tweenOpacity").addEvent("click", function(e) {
    // You often will need to stop propagation of the event
    e.stop();
    el.fade(1);
  });
  
  $("tweenOpacity1").addEvent("click", function(e) {
    e.stop();
    el.fade(0.3);
  });
  
  
  //SECOND EXAMPLE
  var otherEl = $("myOtherElement");
  
  $("heightEffect").addEvent("click", function(){
    otherEl.tween("height", 50);
    return false; // alternative syntax to stop the event
  });
  
  // We can also create an Fx.Tween instance and use a wrapper variable
  
  var myEffect = new Fx.Tween(otherEl);
  $("colorEffect").addEvent("click", function(e) {
    e.stop();
    // We change the background-color of the element
    myEffect.start("background-color", "#E6EFC2");
  });
  
  $("borderEffect").addEvent("click", function(e) {
    e.stop();
    otherEl.tween("border", "10px dashed #C6D880");
  });
  
  $("resetEffect").addEvent("click", function(e) {
    e.stop();
    otherEl.erase("style");
  });
  
  
  //THIRD EXAMPLE
  
  var anotherEl = $("anotherElement");
  
  // Again we are able to create a morph instance
  var morph = new Fx.Morph("anotherElement");
  
  $("morphEffect").addEvent("click", function(e) {
    e.stop();
    morph.start({
      width: "200px",
      color: "#C6D880"
    });
  });
  
  // Or we just use Element.morph
  $("CSSmorphEffect").addEvent("click", function(e) {
    e.stop();
    // Changes the element"s style to .myClass defined in the CSS
    anotherEl.morph(".myClass");
  });
  
  $("resetEffect1").addEvent("click", function(e) {
    e.stop();
    // You need the same selector defined in the CSS-File
    anotherEl.morph("div.demoElement");
  });
});  
  </script>
  <title>Effects Introduction</title>
</head>
<body>
  <h1>Effects Introduction</h1>
  <h2>Introduction</h2>
  <p>
    The powerful Effects-Classes allow you to change any number of css styles with
    any transition and any duration.
  </p>
  <p>
    <a href="#" title="Fading opacity" id="fadeOpacity">Fade opacity to 0</a>
    |
    <a href="#" title="Tween opacity to 1" id="tweenOpacity">Tween opacity to 1</a>
    |
    <a href="#" title="Tween opacity to 0.3" id="tweenOpacity1">Tween opacity to 0.3</a>
  </p>
  <div id="myElement" class="demoElement">
  </div>
  <hr />
  <p>
    <a href="#" title="Height-Effect" id="heightEffect">Height-Effect</a>
    |
    <a href="#" title="Backgroundc-Effect" id="colorEffect">Backgroundcolor-Effect</a>
    |
    <a href="#" title="Border-Effect" id="borderEffect">Border-Effect</a>
    |
    <a href="#" title="Reset" id="resetEffect">Reset</a>
  </p>
  <div class="demoElementHeight">
    <div id="myOtherElement" class="demoElement">
    </div>
  </div>
  <hr />
  <p>
    <a href="#" title="Morph!" id="morphEffect">Morph!</a>
    |
    <a href="#" title="Morph with CSS" id="CSSmorphEffect">Morph to CSS-Class .myClass</a>
    |
    <a href="#" title="Reset" id="resetEffect1">Reset</a>
  </p>
  <div class="demoElementHeight">
    <div id="anotherElement" class="demoElement">
      Demo Text
    </div>
  </div>
</body>
</html>