Помогите разобраться со скриптом!
Функции скрипта при скроллинге:
[fade]текст[/fade] - проявляет текст; [slide-left]текст[/left] - слайдит текст слева; [slide-right]текст[/right] - слайдит текст справа. Первые две функции работают, а третья почему-то не работает. Помогите пожалуйста разобраться почему. <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script> <script type="text/javascript"> function init() { var a=text_search();animation_elements=animation_tag_search(a),hide_elems_page_load() } function construct_elements_array(a) { for(var b=0;b<a.length;b++) { var c=a[b],d=c.elements[0];elements_array[b]= { elements:c.elements,animation:c.animation,activated:!1,top:d.offset().top,bottom:d.offset().top+d.height() } } } function init_elements() { for(var a=0;a<elements_array.length;a++) { var b=elements_array[a].elements,c=elements_array[a].activated;switch(elements_array[a].animation) { case"fade":for(var d=0;d<b.length;d++)c||b[d].css("opacity",0) ;break;case"slide-left":for(var d=0;d<b.length;d++)c||b[d].css( { position:"relative",left:-page_width } );break;case"slide-right":for(var d=0;d<b.length;d++)c||b[d].css( { position:"relative",left:page_width }) } elements_array[a].top=b[0].offset().top } } function hide_elems_page_load() { for(var a=0;a<animation_elements.length;a++)for(var b=animation_elements[a].elements,c=0;c<b.length;c++)b[c].css( { opacity:0 }) } function show_elems_page_load() { for(var a=0;a<elements_array.length;a++)for(var b=elements_array[a].elements,c=elements_array[a].animation,d=0;d<b.length;d++)"fade"!=c&&b[d].css( { opacity:1 }) } function text_search() { var a=[];return $.fn.mytext=function() { var a="";return this.contents().each(function() { 3==this.nodeType&&(a+=this.textContent||this.innerText||"") }),a } ,$("*").not("script").not("style").each(function(b,c) { var d=$(this).mytext();d=d.replace(/\s+/g,""),d&&0!==d.length&&null!=d&&""!=d&&""!==d&&a.push($(this)) }),a } function animation_tag_search(a) { for(var b=[],c=0;c<a.length;) { var d=a[c].html();if(d.indexOf("[fade]")>=0||d.indexOf("[slide-left]")>=0||d.indexOf("[slide-right]")>=0) { var e={};d.indexOf("[fade]")>=0?(a[c].html(d.replace("[fade]","")),e.animation="fade",e.elements=search_for_end_tag(a,c,"[/fade]")):d.indexOf("[slide-left]")>=0?(a[c].html(d.replace("[slide-left]","")),e.animation="slide-left",e.elements=search_for_end_tag(a,c,"[/slide-left]")):d.indexOf("[slide-right]")>=0&&(a[c].html(d.replace("[slide-right]","")),e.animation="slide-right",e.elements=search_for_end_tag(a,c,"[/slide-right]")),b.push(e),c+=e.elements.length } else c++ } return b } function search_for_end_tag(a,b,c) { for(var d=!1,e=[],f=b;0==d&&f<a.length;) { e.push(a[f]);var g=a[f].html();g.indexOf(c)>=0?(a[f].html(g.replace(c,"")),d=!0):d=!1,f++ } return e } function animate_elements() { for(var a=$(window).scrollTop()+window.innerHeight/4*3+scroll_offset,b=0;b<elements_array.length;b++) { var c=elements_array[b].elements;if(elements_array[b].top<a&&!elements_array[b].activated) { switch(elements_array[b].animation) { case"fade":for(var d=0;d<c.length;d++)c[d].delay(animation_delay).animate( { opacity:1 } , { duration:1e3,easing:"swing" } );break;case"slide-left":for(var d=0;d<c.length;d++)c[d].delay(animation_delay).animate( { left:0 } , { duration:1e3,easing:"swing" } ) } elements_array[b].activated=!0 } } } var elements=null,animation_elements=[],elements_array=[],scroll_offset=0,width_offset=0,page_width=$(window).width()+width_offset,animation_delay=800;init(),$(window).load(function() { construct_elements_array(animation_elements),init_elements(),animate_elements(),animation_delay=200,show_elems_page_load() } ),$(document).scroll(function() { animate_elements() } ),$(window).resize(function() { page_width=$(window).width()+width_offset,init_elements() } ); </script> |
Часовой пояс GMT +3, время: 19:10. |