javascript
  • jquery
  • html
  • autoscroll
  • 2015-09-17 2 views 0 likes 
    0

    У меня есть этот код, который, когда вы открываете ссылку, будет прокручиваться до определенного div на этой странице.Открыть ссылку и автопрокрутить до определенного div с помощью jQuery

    collection.html

    <a id='about' href="index.html">about</a> 
    

    index.html

    <div id='#moreInfo>contents here</div> 
    
    <script> 
        $(document).ready(function(){ 
          $('html, body').animate({ 
          scrollTop: $("#moreInfo").offset().top 
          }, 1000); 
        }) 
    </script> 
    

    Моя проблема в том, когда я загружаю index.html, он всегда прокручивается к MOREINFO DIV , То, что я хочу, когда я на collection.html и я нажимаю на ссылку о, он будет перенаправлять index.html затем прокручивать плавно к MOREINFO дел.

    Буду признателен за любой ответ.

    ответ

    2

    Простой способ сделать это - просто указать ссылку на местоположение хэш.

    <a id='about' href="index.html#moreInfo">about</a> 
    

    Затем на вашем JavaScript вы можете просто проверить, не пришел ли человек по этой ссылке.

    $(document).ready(function(){ 
         if (window.location.hash == "#moreInfo") { 
         $('html, body').animate({ 
          scrollTop: $("#moreInfo").offset().top 
         }, 1000); 
         } 
        }); 
    
    +0

    Не должно быть 'about' ... без "/"? – DelightedD0D

    +1

    @ DelightedD0D Это правильно. Также я не уверен, что это решение будет работать, поскольку, если я не ошибаюсь, браузер автоматически привяжется к разделу 'moreInfo', прежде чем javascript получит возможность сгладить прокрутку. –

    +0

    Да @ DelightedD0D, ты прав, и я отредактировал. Мне тоже любопытно, что комментарий Максимилиана, так как я не смог проверить его точно так, как есть. Хотя на данный момент у меня есть очень похожие вещи, которые работают на меня в производственном коде. –

    2

    Вы можете сделать это, установив параметр GET по URL ссылке, то чтение этого параметра при следующей странице нагрузки:

    collection.html

    <a id='about' href="index.html?scrollTo=moreInfo">about</a> 
    

    index.html

    <script> 
        $(document).ready(function(){ 
          var scrollTo = getParameterByName('scrollTo'); 
          if(scrollTo!=''){ 
           $('html, body').animate({ 
           scrollTop: $("#"+scrollTo).offset().top 
           }, 1000); 
          } 
        }); 
    
        function getParameterByName(name) { 
         name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
         var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
          results = regex.exec(location.search); 
         return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
        } 
    </script> 
    

     Смежные вопросы

    • Нет связанных вопросов^_^