effects.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427
  1. <?php
  2. /*
  3. * To change this license header, choose License Headers in Project Properties.
  4. * To change this template file, choose Tools | Templates
  5. * and open the template in the editor.
  6. */
  7. ?>
  8. <div class="col-md-10 col-md-offset-1">
  9. <h1>Efectos</h1>
  10. <p>
  11. jQuery hace trivial añadir un simple efecto a tu página. Los efectos
  12. con jQuery son simples de usar y con una gran dinamización al poder
  13. añadir duración por ejemplo. También se puede crear animación de
  14. propiedades CSS.
  15. </p>
  16. <p>Para una completa visualización de los efectos, consultar el siguiente
  17. enlace en la sección de efecto: <?php echo "<a href='index.php?do=showCheat'>Effectos</a>"; ?>
  18. </p>
  19. <h3>Introducción</h3>
  20. <p>jQuery permite que un elemento cualquiera, se pueda
  21. esconder o mostrar de manera sencilla con show() y hide().
  22. </p>
  23. <button id="esconder">Esconde este botón</button>
  24. <button id="mostrar">Muestra el botón escondido</button>
  25. <br>
  26. <pre>
  27. <code>
  28. $(function() {
  29. $("#esconder").click(function() {
  30. $(this).hide();
  31. });
  32. $("#mostrar").click(function() {
  33. if($('#esconder').is(':hidden')) {
  34. $("#esconder").show();
  35. }
  36. else {
  37. alert("No está escondido");
  38. }
  39. });
  40. });
  41. </code>
  42. </pre>
  43. <br>
  44. <h4>Cambiar la velocidad de la animación</h4>
  45. <p>
  46. Cuando se usa hide() con jQuery, la propiedad CSS display del elemento
  47. se pone como “none”. Esto significa que el contenido tendrá anchura
  48. y altura cero. Por lo tanto el contenido será como si no existiera
  49. en vez de ser transparente.
  50. Ahora vamos a usar show() y hide() con efectos de animación.
  51. </p>
  52. <button id="esconder-rap">Esconde este botón rápido</button>
  53. <button id="esconder-lento">Esconde este botón lento</button>
  54. <button id="mostrar2">Mostrar los botones escondidos</button>
  55. <br>
  56. <br>
  57. <pre>
  58. <code>
  59. $(function() {
  60. $("#esconder-rap").click(function() {
  61. $(this).hide("fast");
  62. });
  63. $("#esconder-lento").click(function() {
  64. $(this).hide("slow");
  65. });
  66. $("#mostrar2").click(function() {
  67. $("#esconder-rap").show("fast");
  68. $("#esconder-lento").show("slow");
  69. });
  70. });
  71. </code>
  72. </pre>
  73. <br>
  74. <h4>Controlando la velocidad con milisegundos</h4>
  75. <p>También se puede tener un control más directo sobre el tiempo de la
  76. animación, solo hace falta poner un número que será procesado en
  77. milisegundos.
  78. </p>
  79. <input type="number" id="seconds-hide" value="500">
  80. <button id="esconder-seconds">Esconde este botón como tu elijas</button>
  81. <button id="mostrar3">Mostrar los botones escondidos</button>
  82. <br>
  83. <br>
  84. <pre>
  85. <code>
  86. $(function() {
  87. $("#esconder-seconds").click(function() {
  88. var num = $("#seconds-hide").val();
  89. $(this).hide(parseInt(num));
  90. });
  91. $("#mostrar3").click(function() {
  92. var num = $("#seconds-hide").val();
  93. $("#esconder-seconds").show(parseInt(num));
  94. });
  95. });
  96. </code>
  97. </pre>
  98. <br>
  99. <h3>Animación Fade y Slide</h3>
  100. <h4>SlideDown y SlideUp</h4>
  101. <p>
  102. Los efectos de .show() y .hide() usan una combinación de efectos de
  103. slide y fade cuando muestran y los esconden los elementos. Si
  104. prefieres usar solo uno de los efectos hay métodos alternativos como
  105. .slideDown() y .slideUp() muestran o esconden el contenido,
  106. respectivamente, usando un efecto deslizante.
  107. </p>
  108. <p>
  109. Los animaciones deslizantes usan un cambio rápido en la propiedad
  110. height CSS del elemento.
  111. </p>
  112. <div>
  113. <img id="p-dis" src="../jQueryProject/assets/images/flash.jpg">
  114. <br>
  115. <button id="p-slideUp">Haz magia y haz desaparecer la imagen</button>
  116. <button id="mostrar4">Mostrar la imagen con slideDown</button>
  117. </div>
  118. <br>
  119. <pre>
  120. <code>
  121. $(function() {
  122. $("#p-slideUp").click(function() {
  123. $("#p-dis").slideUp();
  124. });
  125. $("#mostrar4").click(function() {
  126. $("#p-dis").slideDown();
  127. });
  128. });
  129. </code>
  130. </pre>
  131. <br>
  132. <h4>
  133. FadeIn y FadeOut
  134. </h4>
  135. <p>
  136. Parecidos son los métodos de .fadeIn() y .fadeOut() para mostrar
  137. y esconder contenido con una animación de desaparecer.
  138. Las animaciones de fade cambian rápidamente la propiedad
  139. opacity del CSS del elemento.
  140. </p>
  141. <button id="desa-p">Haz desaparecer todos los párrafos</button>
  142. <button id="mostrar-p">Hazlos aparecer de nuevo</button>
  143. <br>
  144. <br>
  145. <pre>
  146. <code>
  147. $(function() {
  148. $("#desa-p").click(function() {
  149. $( "p" ).fadeOut( 1500 );
  150. });
  151. $("#mostrar-p").click(function() {
  152. $( "p" ).fadeIn( 750 );
  153. });
  154. });
  155. </code>
  156. </pre>
  157. <br>
  158. <h3>Cambiar estado basado en la actual visibilidad</h3>
  159. <p>
  160. jQuey puede cambiar la visibilidad basada en el estado actual de la
  161. visibilidad. Mediante .toggle() se mostrará el elemento si está
  162. escondido y lo esconderá si está visible. Y se pueden pasar los
  163. mismos argumentos a .toggle() que al resto de los métodos.
  164. </p>
  165. <div>
  166. <img id="quicksilver" src="../jQueryProject/assets/images/quiksilver.jpg">
  167. <button id="toggle-fast">Haz aparecer o desaparecer la imagen rapido</button>
  168. <button id="toggle-normal">Haz aparecer o desaparecer la imagen normal</button>
  169. <button id="toggle-slow">Haz aparecer o desaparecer la imagen muy lento</button>
  170. </div>
  171. <br>
  172. <br>
  173. <pre>
  174. <code>
  175. $(function() {
  176. $("#toggle-fast").click(function() {
  177. $( "#quicksilver" ).toggle();
  178. });
  179. $("#toggle-normal").click(function() {
  180. $( "#quicksilver" ).toggle( "slow" );
  181. });
  182. $("#toggle-slow").click(function() {
  183. $( "#quicksilver" ).toggle( 5000 );
  184. });
  185. });
  186. </code>
  187. </pre>
  188. <br>
  189. <h4>fadeToggle y slideToggle</h4>
  190. <p>Los métodos fadeToggle y slideToggle utilizan los métodos que hemos visto
  191. anteriormente. El método fadeToggle hace desaparecer una imagen o la hace aparecer
  192. dependiendo de su visibilidad y el método slideToggle muestra o esconde el contenido,
  193. respectivamente, usando un efecto deslizante.
  194. </p>
  195. <div>
  196. <img id="flash2" src="../jQueryProject/assets/images/flash.jpg">
  197. <img id="quicksilver2" src="../jQueryProject/assets/images/quiksilver.jpg"><br>
  198. <button id="slideTog">slideToggle Flash</button>
  199. <button id="fadeTog">fadeToggle Quicksilver</button>
  200. </div>
  201. <br>
  202. <pre>
  203. <code>
  204. $(function() {
  205. $("#fadeTog").click(function() {
  206. $( "#quicksilver2" ).fadeToggle();
  207. });
  208. $("#slideTog").click(function() {
  209. $( "#flash2" ).slideToggle( );
  210. });
  211. });
  212. </code>
  213. </pre>
  214. <br>
  215. <h3>Efectos personalizados con el método .animate()</h3>
  216. <p>Este método te deja animar un elemento con las propiedades CSS
  217. que tu quieras. Este método te deja animar un elemento a un valor
  218. elegido absoluto o un valor relativo al valor actual.
  219. </p>
  220. <p>El método <a href="http://api.jquery.com/animate/">.animate()</a>
  221. tiene un gran número de opciones que recomiendo ver en su página.
  222. Aunque hay que tener en cuenta que no se puede cambiar el background-color
  223. a no ser que se tenga el plugin de <a href="https://github.com/jquery/jquery-color">jQuery Color</a>.
  224. </p>
  225. <div id="caja_negra">
  226. <p id="blanco">Soy una caja negra que mide 100px de alto.</p>
  227. </div>
  228. <pre>
  229. <code>
  230. $( "#caja_negra" ).hover(
  231. function() {
  232. $( this ).animate({
  233. left: [ "+=100", "swing" ],
  234. height: [ "+=150" ]
  235. }, 1000 );
  236. },
  237. function() {
  238. $( this ).animate({
  239. left: [ "-=100", "swing" ],
  240. height: [ "-=100" ]
  241. }, 1000 );
  242. }
  243. );
  244. </code>
  245. </pre>
  246. <br>
  247. <h3>Queue</h3>
  248. <p>La encadenación de métodos son una herramienta potente de jQuery
  249. , que permiten que una serie de funciones sean en orden
  250. en un elemento. Métodos como .slideUp (),
  251. .slideDown (), .fadeIn () y .fadeOut () cambian
  252. uno o más valores CSS creando los efectos que se ven con jQuery.
  253. Podemos pasar una función Callback al método .animate (),
  254. que se ejecutará una vez que la animación se haya completado.
  255. </p>
  256. <p>La longitud de métodos encadenados es: <span id="spanQ"></span></p>
  257. <div id="contQ">
  258. <div id="boxQ">
  259. </div>
  260. </div>
  261. <button id="buttonQ">Púlsame para ver un cuadrado mágico</button><br><br>
  262. <pre>
  263. <code>
  264. $("#buttonQ").click(function() {
  265. runIt();
  266. showIt();
  267. });
  268. function runIt() {
  269. $("#boxQ")
  270. .show( "slow" )
  271. .animate({ left: "+=200" }, 2000 )
  272. .slideToggle( 1000 )
  273. .slideToggle( "fast" )
  274. .animate({ left: "-=200" }, 1500 )
  275. .hide( "slow" )
  276. .show( 1200 )
  277. .slideUp( "normal", runIt );
  278. }
  279. function showIt() {
  280. var n = $("#boxQ").queue( "fx" );
  281. $( "#spanQ" ).text( n.length );
  282. setTimeout( showIt, 100 );
  283. }
  284. </code>
  285. </pre>
  286. <br>
  287. <h3>Método delay()</h3>
  288. <p>
  289. El método delay() permite pausar ejecuciones de funciones que se siguen
  290. mediante callbacks.
  291. Es un método útil para retrasar la ejecución de funciones encadenadas para un mismo
  292. elemento. Sin embargo, es importante señalar que no se puede utilizar
  293. los métodos show() y hide() sin argumentos.
  294. </p>
  295. <div>
  296. <img id="flash3" class="superhero" src="../jQueryProject/assets/images/flash.jpg">
  297. <img id="quicksilver3" class="superhero" src="../jQueryProject/assets/images/quiksilver.jpg">
  298. <img id="wonder3" class="superhero" src="../jQueryProject/assets/images/wonder.jpg">
  299. <img id="super3" class="superhero" src="../jQueryProject/assets/images/supergirl.jpg"><br>
  300. <button id="button-delay">Haz aparecer o desaparecer las imágenes rápido</button>
  301. </div>
  302. <br>
  303. <pre>
  304. <code>
  305. $(function() {
  306. $("#button-delay").click(function() {
  307. $( "#quicksilver3" ).slideUp(800).delay( 1500 ).fadeIn(1000);
  308. $( "#flash3" ).slideUp(800).fadeIn(1000);
  309. $( "#wonder3" ).hide(800).delay( 1500 ).show(1000);
  310. $( "#super3" ).hide().delay( 1500 ).show();
  311. });
  312. });
  313. </code>
  314. </pre>
  315. <br>
  316. <h3>Método stop()</h3>
  317. <p>
  318. El método stop() para la animación que se está ejecutando en ese momento
  319. para el elemento indicado. Si por ejemplo se usa stop() mientras un
  320. elemento está usando slideUp(), el elemento seguirá mostrado pero con
  321. una altura menor en el momento de utilizar stop().
  322. Si más de una animación es llamada en el mismo elemento de manera
  323. encadenada, las animaciones que siguen antes de llegar a stop()
  324. pararán y las animaciones que hay después empezarán inmediatamente.
  325. </p>
  326. <h4>clearQueue y jumpToEnd </h4>
  327. <p>
  328. Bien, ahora vamos a ver que stop() tiene dos opciones para
  329. personalizar su efecto.
  330. </p>
  331. <pre>
  332. <code>
  333. .stop( [clearQueue ] [, jumpToEnd ] )
  334. </code>
  335. </pre>
  336. <br>
  337. <p>
  338. Los parámetros de clearQueue y jumpToEnd son parámetros booleanos
  339. que por defecto están en false.
  340. El parámetro clearQueue si lo ponemos a True sirve para hacer que
  341. nunca se ejecuten las siguientes animaciones que están en la cola.
  342. El parámetro jumpToEnd como su nombre indica, si se pone el argumento
  343. a True hace que la animación salte al final y termine inmediatamente
  344. aunque le queden segundos para completarse.
  345. </p>
  346. <div id="square">
  347. </div>
  348. <button id="go">Go</button>
  349. <button id="stop">STOP!</button>
  350. <button id="back">Back</button><br>
  351. <pre>
  352. <code>
  353. $( "#go" ).click(function() {
  354. $( "#square" ).animate({ left: "+=100px" }, 2000 );
  355. });
  356. // Para la animación cuando se pulsa este botón
  357. $( "#stop" ).click(function() {
  358. $( "#square" ).stop();
  359. });
  360. // Empieza la animación en el sentido contrario
  361. $( "#back" ).click(function() {
  362. $( "#square" ).animate({ left: "-=100px" }, 2000 );
  363. });
  364. </code>
  365. </pre>
  366. <br>
  367. <p>
  368. Aquí podemos ver otro ejemplo que hace uso del comando stop().
  369. </p>
  370. <button id="toggle-stop">slideToggle</button>
  371. <div id="square2">
  372. <div class="square2"></div>
  373. </div>
  374. <pre>
  375. <code>
  376. $( "#toggle-stop" ).on( "click", function() {
  377. $(".square2").stop().slideToggle( 1000 );
  378. });
  379. </code>
  380. </pre>
  381. <br>
  382. <p>La mayor utilidad del método stop() es cuando se necesita animar
  383. un elemento con mouseenter y mouseleave.
  384. </p>
  385. <div id="hoverme-stop-2">
  386. <p>Pasa sobre mi</p>
  387. <img id="hoverme" src="../jQueryProject/assets/images/book.jpg" alt="" width="100" height="123">
  388. </div>
  389. <pre>
  390. <code>
  391. $( "#hoverme-stop-2" ).hover(function() {
  392. $( this ).find( "img" ).stop( true, true ).fadeOut();
  393. }, function() {
  394. $( this ).find( "img" ).stop( true, true ).fadeIn();
  395. });
  396. </code>
  397. </pre>
  398. <br>
  399. <div id="hoverme-stop-1">
  400. <p>Pasa sobre mi</p>
  401. <img id="hoverme1" src="../jQueryProject/assets/images/book2.png" alt="" width="100" height="123">
  402. </div>
  403. <pre>
  404. <code>
  405. $( "#hoverme-stop-1" ).hover(function() {
  406. $( this ).find( "img" ).fadeOut();
  407. }, function() {
  408. $( this ).find( "img" ).fadeIn();
  409. });
  410. </code>
  411. </pre>
  412. <br>
  413. </div>
  414. <script src="../jQueryProject/assets/js/effects.js"></script>