简体   繁体   English

如何停止触发此事件?

[英]How can I stop this event from firing?

I have this site: 我有这个网站:

link 链接

In the right sidebar, you'll notice that the last element runs with scrolling. 在右侧栏中,您会注意到最后一个元素随滚动一起运行。

The problem is that does not stop ... go to the bottom of all. 问题是,这不会停止……深入所有。

在此处输入图片说明

I tried this function to accomplish the task 我尝试使用此功能来完成任务

CODE JS: 代码JS:

   var aux=0;
   $("#text-3").addClass("follow-scroll");
   var _footerH=$("#footer-container").outerHeight();
   var _docH=$(document).height();
   var _scrollP= $(window).scrollTop();
   console.log("pozitie scroll",_scrollP);
   console.log("inaltime footer",_footerH);
   console.log("inaltime document HTML",_docH);
   var element = $('.follow-scroll'),
       originalY = element.offset().top;
       var topMargin = 20;
   element.css('position', 'relative');

     $(window).on('scroll', function(event) {
        var scrollTop = $(window).scrollTop();
        console.log(scrollTop);
        console.log("originalY:",originalY);
        console.log("Scrolltop:",scrollTop);
        console.log("topMargin:",topMargin);

        var y = scrollTop - originalY + topMargin;

       if(scrollTop < originalY) {

           console.log("nu s-a declansat evenimentul");

       }else {
       //aici trebe adaugat top la div
        aux=scrollTop - originalY + topMargin
        $( '.follow-scroll' ).css( 'top', aux );
         if(scrollTop>6000)
         {
          var _div = $( ".follow-scroll" );
          var position = _div.position();
          var top2=aux;
           //aici trebuie sa primeasca ultimul top
           $( '.follow-scroll' ).css( 'top', aux );
         }
       }


     //  top=aux;
    //   console.log("top_nou:",aux);


    });

Can you help me solve this problem? 您能帮我解决这个问题吗? How can I stop this element at some point? 如何在某个时候停止该元素?

Thanks in advance! 提前致谢!

Try changing your code to this 尝试将代码更改为此

 var aux = 0;
 $("#text-3").addClass("follow-scroll");
 var _footerH = $("#footer-container").outerHeight();
 var _docH = $(document).height();
 var _scrollP = $(window).scrollTop();
 console.log("pozitie scroll", _scrollP);
 console.log("inaltime footer", _footerH);
 console.log("inaltime document HTML", _docH);
 var element = $('.follow-scroll'),
     originalY = element.offset().top;
 var topMargin = 20;
 element.css('position', 'relative');

 $(window).on('scroll', function (event) {
     var scrollTop = $(window).scrollTop();
     console.log(scrollTop);
     console.log("originalY:", originalY);
     console.log("Scrolltop:", scrollTop);
     console.log("topMargin:", topMargin);

     var y = scrollTop - originalY + topMargin;

     if (scrollTop < originalY) {
         console.log("nu s-a declansat evenimentul");
     } else {
         //aici trebe adaugat top la div
         aux = scrollTop - originalY + topMargin
         if (scrollTop > 6000) {
             var _div = $(".follow-scroll");
             var position = _div.position();
             var top2 = aux;
             //aici trebuie sa primeasca ultimul top
         }else{
             $('.follow-scroll').css('top', aux);
         }
     }
 });

You will notice the that you should only set $('.follow-scroll').css('top', aux); 您会注意到,您应该只设置$('.follow-scroll').css('top', aux); if scrollTop <= 6000 otherwise leave it where it is 如果scrollTop <= 6000否则将其保留在原处

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM