Advertisement
Guest User

Смена изображений

a guest
Jan 31st, 2012
994
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. change_img={
  2. x:7,
  3. y:10,
  4. sort:4,
  5. delay:{
  6. st:5000,
  7. animate:1000,
  8. cadr:50
  9. },
  10. div_id:'slider_photo'
  11. }
  12.  
  13. if(document.addEventListener)window.addEventListener("load",function(){change_div_images.init()},true);
  14. else if(document.attachEvent)window.attachEvent("onload",function(){change_div_images.init()});
  15. else window.onload=function(){change_div_images.init()};
  16.  
  17. change_div_images={
  18. init:function(){
  19. change_img_x=0;change_img_y=0;src_i=0;arr_chagr=0;
  20. if(change_img.sort==4||change_img.sort==5){regular=change_img.delay.cadr;}
  21. arr_chagr=change_div_images.get_array_change(change_img.x*change_img.y);
  22. r=document.getElementById(change_img.div_id).children;
  23. src_i=new Array();
  24. x=0;zind=10;
  25. for(i=0;i<r.length;i++){src_i[i]=r[i].src;r[i].className='img_old_del'}
  26. d=document.createElement('DIV');
  27. d.style.position='absolute';
  28. d.className='img_change_b';
  29. d.id='img_change_0';
  30. document.getElementById(change_img.div_id).appendChild(d);
  31. change_img_x=(r[0].height/change_img.x+'').replace(/(.*)\.(.*)/,"$1")-1+1;
  32. change_img_y=(r[0].width/change_img.y+'').replace(/(.*)\.(.*)/,"$1")-1+1;
  33. r_len=change_div_images.getElementsByClass('img_old_del');
  34. for(i=0;i<r_len.length;i++){
  35. r_len[i].parentNode.removeChild(r_len[i]);
  36. }
  37. change_div_images.create_div_img();
  38. referrer=change_div_images.getElementsByClass('img_change_s_0');
  39. change_div_images.start_change_img();
  40. },
  41. start_change_img:function(){
  42. x++;y=x-1;
  43. len=src_i.length;
  44. if(x>=len)x=0;
  45. if(y<0)y=len-1;
  46. img=document.getElementById('img_change_0');
  47. img.style.background='url(\''+src_i[y]+'\')';
  48. img.style.width=change_img.y*change_img_y+'px';
  49. img.style.height=change_img.x*change_img_x+'px';
  50. m=0;
  51. for(i=0;i<change_img.x;i++)
  52. for(k=0;k<change_img.y;k++){
  53. referrer[m].style.background='url(\''+src_i[x]+'\')';
  54. referrer[m].style.backgroundPosition='-'+(change_img_y*k)+'px -'+(change_img_x*i)+'px';
  55. referrer[m].style.opacity=0;
  56. referrer[m].style.width=0;
  57. referrer[m].style.height=0;
  58. m++;
  59. }
  60. change_div_images.div_animate();
  61. setTimeout(change_div_images.start_change_img,change_img.delay.st);
  62. },
  63. div_animate:function(){
  64. s=0;
  65. if(change_img.sort==4||change_img.sort==5){
  66. change_img.delay.cadr=regular;
  67. del_rem=change_img.x*change_img.y/2;
  68. }
  69. setTimeout(ferter,change_img.delay.cadr);
  70. function ferter(){
  71. if(s>=change_img.x*change_img.y)return;
  72. $(referrer[arr_chagr[s++]]).animate({opacity:1,width:change_img_y,height:change_img_x},change_img.delay.animate);
  73. if(change_img.sort==4||change_img.sort==5){
  74. if(s<del_rem)setTimeout(ferter,change_img.delay.cadr-=change_img.delay.cadr/25);
  75. else setTimeout(ferter,change_img.delay.cadr+=change_img.delay.cadr/25);
  76. }
  77. else setTimeout(ferter,change_img.delay.cadr);
  78. }
  79. },
  80. create_div_img:function(){
  81. x=0;
  82. for(i=0;i<change_img.x;i++)
  83. for(k=0;k<change_img.y;k++){
  84. d=document.createElement('DIV');
  85. d.style.position='absolute';
  86. d.style.top=change_img_x*i+'px';
  87. d.style.left=change_img_y*k+'px';
  88. d.style.opacity=0;
  89. d.style.zIndex=10;
  90. d.style.background='url("'+src_i[x]+'")';
  91. d.className='img_change_s_0';
  92. d.style.backgroundPosition='-'+(change_img_y*k)+'px -'+(change_img_x*i)+'px';
  93. document.getElementById('img_change_'+x).appendChild(d);
  94. }
  95. },
  96.  
  97. get_array_change:function(x){
  98. reff=new Array();
  99. for(i=0;i<x;i++)reff[i]=i;
  100. switch(change_img.sort){
  101. default:
  102. case 0: return reff;break;
  103. case 1: return reff.reverse();break;
  104. case 2: return array_x();break;
  105. case 3: return array_x().reverse();break;
  106. case 4: return array_casc();break;
  107. case 5: return array_casc().reverse();break;
  108. }
  109. function array_x(){
  110. arr=new Array();es=0;
  111. for(i=0;i<change_img.y;i++)
  112. for(k=0;k<change_img.x;k++){
  113. arr[es++]=reff[i+k*change_img.y];
  114. }
  115. return arr;
  116. }
  117. function array_casc(){
  118. arr=new Array();sr=change_img.y-change_img.x;
  119. es=0;rem_x=-1;fer_y=0;rif=-1;
  120. for(i=0;i<change_img.x;i++){
  121. rif++;gren=0;
  122. rem_x+=rif+1;fer_y=rif;
  123. keyt=rem_x;miss=0;
  124. for(k=0;k<change_img.y;k++){
  125. if(k)keyt+=fer_y;
  126. if(fer_y<change_img.x&&!gren)fer_y++;
  127. else{miss++}if(miss>=sr&&k){fer_y--;gren=1;}
  128. arr[keyt]=reff[es++];
  129. }
  130. }
  131. return arr;
  132. }
  133. },
  134. in_array:function(what,where){
  135. for(var i=0;i<where.length;i++)if(what==where[i])return true;
  136. return false;
  137. },
  138. getElementsByClass:function(searchClass,node,tag)
  139. {
  140. var classElements=[];
  141. if(node==null)node=document;
  142. if(tag==null)tag='*';
  143. els=node.getElementsByTagName(tag);
  144. elsLen=els.length;
  145. pattern=new RegExp("(^|\s)"+searchClass+"(\s|$)");
  146. for(i=0;i<elsLen;i++)if(pattern.test(els[i].className))classElements[classElements.length]=els[i];
  147. return classElements;
  148. }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement