Вопрос:
У меня есть сайт на 2 страницы. Обе страницы используют одну и ту же страницу masterlayout.cshtml, в которой есть Navbar. В Navbar имеется ряд ссылок, которые прокручиваются вниз до соответствующих разделов на первой странице на основе их идентификаторов.
Проблема:
Когда я обращаюсь ко второй странице, я больше не могу перенаправлять на указанные div из ссылок Navbar на первой странице. Это имеет смысл, поскольку фокус уже не на первой странице, но как мне обойти эту проблему?
Код:
Вот код Navbar с установленным идентификатором div, обратите внимание на атрибуты data-id
, определяющие, какой div прокручивается до:
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#" class="scroll-link" data-id="Welcome">Welcome</a></li>
<li><a href="#" class="scroll-link" data-id="features">Club</a></li>
<li><a href="#" class="scroll-link" data-id="About">About Us</a></li>
<li><a href="#" class="scroll-link" data-id="Location">Location</a></li>
<li><a href='@Url.Action("FutureEvents", "Events", new { pageNo = 1 })'>Events</a></li>
</ul>
</div>
Пример div, который прокручивается до:
<div id="Welcome">
//HTML
</div>
JQuery используется для прокрутки до соответствующего div:
function scrollToID(id, speed) {
var offSet = 70;
var obj = $(id).offset();
var targetOffset = $(id).offset().top - offSet;
$('html,body').animate({ scrollTop: targetOffset }, speed);
}
Если кто-то может помочь с появлением жизнеспособного решения, позволяющего вызывать этот идентификатор с другой страницы, которая была бы большой.