2015-04-07 4 views
0

Идея - щелкнуть ссылку, чтобы перейти на другую страницу (index.html), и как только вы там перейдете в ящик якоря сразу после. Я попытался сделать это с помощью события триггера, но не работал. ScrollTo работает в index.html, но я не могу сделать это автоматически из обратной ссылки.Перейдите на другую страницу и нажмите СкроллТо сразу после

Вот мой код:

$(".goTo").click(function() { 
    /* If I'm in the index, it's working fine */ 
    if($('.show').parents('html').length > 0){ 
     $('body').animate({ 
      scrollTop: $(".works").offset().top 
     }, 1500, 'easeInOutExpo'); 
    }else{ 
     location.href = "index.html"; 
     $(".goTo").trigger('click'); 
    } 
}); 

Спасибо заранее.

+0

Как только вы перейдете на другую страницу, скрипты на старой странице перестанут работать. – Barmar

+0

после обновления страницы состояние теряется. Вы должны сделать это либо через queryparams. – mohamedrias

+3

Вы можете использовать 'location.href =" index.html # id ";' и он будет прокручиваться до DIV с этим идентификатором. – Barmar

ответ

1

Вы должны использовать якорь в вашей HREF месте, как это: location.href = "index.html#id";

, а затем получить id вы хотите прокручивать нравится это: var hash = window.location.hash.substring(1);

Так как ваш код будет выглядеть:

$(".goTo").click(function() { 
      window.location.href = "index.html#id"; 
     } 
}); 

// Shorthand for document ready 
$(function() { 
// This will get you everything behind the anchor !! 
var hash = window.location.hash.substring(1); 
var tag = $("#"+hash+""); 
// Animation 
$('html,body').animate({scrollTop: tag.offset().top},'slow'); 
}); 

Не проверен, и не уверен, что это сработает для вас, но, по крайней мере, оно показывает вам ход действий.

+0

Все, что мне пришлось изменить, это эффект анимации, но в остальном работает отлично. Большое вам спасибо за ваше время!! – Antonio

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