Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS] Wariujaca animacja
Maciek316
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


Witam mam problem z animacja w moim skrypcie.
Wszystko jest okej dopóki nie zmienie karty w przeglądarce, wtedy gdy wróce to animacja robi co chce, przyspiesza, myli 2 efekty itp.


  1. $('.cios, #textDiv1').fadeIn()
  2. $('#textDiv1').animate({top: '-50px'},600);
  3. div1.innerHTML = -obrazenia[id];
  4. $('#textDiv1, .cios').fadeOut(1000)
  5. $('#textDiv1').animate({top: '0px'});


.cios i #textdiv1 odpowiadaja za wyswietlanie obrazka i obrazeń.

Okno odswiezam co 1,5 sekundy:

  1. var t=setTimeout('walcz()',1500);


Moge pokazać caly kod, jesli to pomoze :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Maciek316
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 31.03.2012

Ostrzeżenie: (0%)
-----


ze stworzeniem warunku, ogolnie js sie dopiero ucze (IMG:style_emoticons/default/sad.gif)

Dajmy na to pierwszą sytuacje:
  1. (function($) {
  2. if (!$.winFocus) {
  3. $.extend({
  4. winFocus: function() {
  5. var init = true, methods = [];
  6. if (!$(document).data('winFocus')) $(document).data('winFocus', $.winFocus.init());
  7. for (x in arguments) {
  8. if (typeof arguments[x] == 'object') {
  9. if (arguments[x]['blur']) $.winFocus.methods.blur.push(arguments[x].blur);
  10. if (arguments[x]['focus']) $.winFocus.methods.focus.push(arguments[x].focus);
  11. if (arguments[x]['blurFocus']) $.winFocus.methods.blurFocus.push(arguments[x].blurFocus);
  12. if (arguments[x]['initRun']) init = arguments[x].initRun;
  13. }
  14. else if (typeof arguments[x] == 'function') methods.push(arguments[x]);
  15. else if (typeof arguments[x] == 'boolean') {
  16. init = arguments[x];
  17. }
  18. }
  19. if (methods) {
  20. if (methods.length == 1) $.winFocus.methods.blurFocus.push(methods[0]);
  21. else {
  22. $.winFocus.methods.blur.push(methods[0]);
  23. $.winFocus.methods.focus.push(methods[1]);
  24. }
  25. }
  26.  
  27. if (init) $.winFocus.methods.onChange();
  28. }
  29. });
  30. $.winFocus.init = function() {
  31. // var document.hidden || document.msHidden || document.webkitHidden || document.mozHidden;
  32.  
  33. // Standards:
  34. if ($.winFocus.props.hidden in document) // IE10 | FF20+
  35. document.addEventListener('visibilitychange', $.winFocus.methods.onChange);
  36. else if (($.winFocus.props.hidden = 'mozHidden') in document) // Older FF Versions (?)
  37. document.addEventListener('mozvisibilitychange', $.winFocus.methods.onChange);
  38. else if (($.winFocus.props.hidden = 'webkitHidden') in document) // Chrome
  39. document.addEventListener('webkitvisibilitychange', $.winFocus.methods.onChange);
  40. else if (($.winFocus.props.hidden = 'msHidden') in document) // IE 4-6
  41. document.addEventListener('msvisibilitychange', $.winFocus.methods.onChange);
  42. else if (($.winFocus.props.hidden = 'onfocusin') in document) // IE7-9
  43. document.onfocusin = document.onfocusout = $.winFocus.methods.onChange;
  44. else // All others:
  45. window.onpageshow = window.onpagehide = window.onfocus = window.onblur = $.winFocus.methods.onChange;
  46.  
  47. return $.winFocus;
  48. }
  49. $.winFocus.methods = {
  50. blurFocus: [], blur: [], focus: [],
  51. exeCB: function(e) {
  52. if ($.winFocus.methods.blurFocus) $.each($.winFocus.methods.blurFocus, function(k, v) { this.apply($.winFocus, [e, !e.hidden]) });
  53. else if (e.hidden) if ($.winFocus.methods.blur) $.each($.winFocus.methods.blur, function(k, v) { this.apply($.winFocus, [e]) });
  54. else if ($.winFocus.methods.focus) $.each($.winFocus.methods.focus, function(k, v) { this.apply($.winFocus, [e]) });
  55. },
  56. onChange: function(e) {
  57. var eMap = { focus: false, focusin: false, pageshow: false, blur: true, focusout: true, pagehide: true };
  58. e = e || window.event;
  59.  
  60. if (e) {
  61. e.hidden = e.type in eMap ? eMap[e.type] : document[$.winFocus.props.hidden];
  62. $(window).data('visible', !e.hidden);
  63. $.winFocus.methods.exeCB(e);
  64. }
  65. else {
  66. try { $.winFocus.methods.onChange.call(document, new Event('visibilitychange')); }
  67. catch(err) { }
  68. }
  69. }
  70. }
  71. $.winFocus.props = { hidden: 'hidden' }
  72. }
  73. })(jQuery);


i daje warunek:
  1. $.winFocus(function(event, isVisible) {
  2. if(isVisible){
  3. var t=setTimeout('walcz()',1500);
  4. }else
  5. clearTimeout(t);
  6.  
  7. });

I wtedy po zmienieniu karty tak jakby sie zamraza, ale potem animacja wariuje, pokazuje po 2 naraza, przyspiesza :/

Ten post edytował Maciek316 10.09.2015, 09:03:06
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 07:09