JavaScript DHTML/Scriptaculous/Effect
Содержание
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>