JavaScript DHTML/Scriptaculous/Effect

Материал из Web эксперт
Перейти к: навигация, поиск

Effect.Queue limit

   <source lang="html4strict">


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>

 <title>script.aculo.us Effects functional test file</title>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <script src="scriptaculous-js-1.8.2/lib/prototype.js" type="text/javascript"></script>
 <script src="scriptaculous-js-1.8.2/src/scriptaculous.js" type="text/javascript"></script>
 <script src="scriptaculous-js-1.8.2/src/unittest.js" type="text/javascript"></script>
 <style type="text/css" media="screen">
 
   #d1 { background-color: #fcb; width: 200px; height: 200px; float:left; }
   #d2 { background-color: #cfb; font-size: 2em; width: 200px; height: 200px; float:left; }
   #d3 { background-color: #bcf; font-size: 2em; width: 200px; height: 200px; float:left; }
 
 </style>

</head> <body>

script.aculo.us Effects functional test file

Effect.Queue limit

<a href="#" onclick="Effect.SlideUp("slidingtwice",{queue:{scope:"myscope", position:"end", limit: 1}});">up</a> <a href="#" onclick="Effect.SlideDown("slidingtwice",{queue:{scope:"myscope", position:"end", limit: 1}});">down</a>

   Do a bit sliding in parallel, with a scoped queue, but I am limited to one : ) so don"t try over and over again...

</body> </html>

 </source>
   
  


Random effects demo

   <source lang="html4strict">


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>

 <title>script.aculo.us Effects functional test file</title>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <script src="scriptaculous-js-1.8.2/lib/prototype.js" type="text/javascript"></script>
 <script src="scriptaculous-js-1.8.2/src/scriptaculous.js" type="text/javascript"></script>
 <style type="text/css" media="screen">
 
   div.demo { font-size: 70pt; float: left }
   div#info { font: 10px/11px Tahoma, Arial, sans-serif; }
 
 </style>
 <script type="text/javascript" language="javascript" charset="utf-8">
 
 function startDemo() {
   $$("div.demo").each( function(d) {
     d.visualEffect(
     ["fade","appear","blind_up","blind_down","puff","switch_off","drop_out","shake",
      "slide_up","slide_down","pulsate","squish","fold","grow","shrink"][Math.round(Math.random()*14)],
      { duration:0.5+Math.random()*5, delay: Math.random()*3 });
   });
   $("info").update(
     Effect.Queues.get("global").collect( function(e) {
       return e.inspect().escapeHTML()
     }).join("
")); } </script>

</head> <body>

Random effects demo

<a href="#" onclick="startDemo(); return false;">Start...</a> | <a href="#" onclick="$("info").toggle(); return false">Show/hide log</a>

DIV1

DIV2

DIV3

DIV4

DIV5

DIV6

DIV7

DIV8

DIV9

</body> </html>

 </source>
   
  


Start queued effects in global queue

   <source lang="html4strict">


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head>

 <title>script.aculo.us Effects functional test file</title>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <script src="scriptaculous-js-1.8.2/lib/prototype.js" type="text/javascript"></script>
 <script src="scriptaculous-js-1.8.2/src/scriptaculous.js" type="text/javascript"></script>
 <script src="scriptaculous-js-1.8.2/src/unittest.js" type="text/javascript"></script>
 <style type="text/css" media="screen">
 
   #d1 { background-color: #fcb; width: 200px; height: 200px; float:left; }
   #d2 { background-color: #cfb; font-size: 2em; width: 200px; height: 200px; float:left; }
   #d3 { background-color: #bcf; font-size: 2em; width: 200px; height: 200px; float:left; }
 
 </style>
 

</head> <body>

script.aculo.us Effects functional test file

Effect.Queue

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet

 <a href="#" onclick="startTimeline(); return false;">Start queued effects</a> (in "global" queue)
 <a href="#" onclick="Effect.SlideUp("sliding",{queue:{scope:"myscope", position:"end"}}); Effect.SlideDown("sliding",{queue:{scope:"myscope", position:"end"}}); return false;">
   Do a bit sliding in parallel, with a scoped queue
 </a>

<script type="text/javascript" language="javascript" charset="utf-8">

 function startTimeline() {
   // 3x highlight in front
   for(var i=0; i<3; i++)
     new Effect.Highlight("d3", { duration: 1.0, queue: "front" });
   
   // insert scale at very beginning
   new Effect.Scale("d1", 75, { scaleContent: true, duration: 1.0, queue: "front" });
   
   // parallel implied, delay 0.5 sec
   new Effect.Highlight("d1", { delay: 0.5 }); 
   
   // puff at end
   new Effect.Puff("d2", { duration: 4.0, queue: "end" });
 }

</script>

</body> </html>

 </source>
   
  


Synchronized parallel execution of effects

   <source lang="html4strict">

<html> <head> <title>Untitled Document</title> <script src="scriptaculous-js-1.8.2/lib/prototype.js" type="text/javascript"></script> <script src="scriptaculous-js-1.8.2/src/scriptaculous.js" type="text/javascript"></script> <script src="scriptaculous-js-1.8.2/src/unittest.js" type="text/javascript"></script> <script type="text/javascript"> Event.observe(window, "load", function() {

 $("demo").observe("click", function() {
   new Effect.Parallel([
     new Effect.Opacity("demo", { sync: true, from: 1, to: 0.33 }),
     new Effect.Scale("demo", 400, { sync: true, scaleFromCenter: true })
   ], { duration: 20 });
 });

}); </script> </head> <body>

Click on this paragraph to have a demonstration of it.

</body> </html>

 </source>