Я пытаюсь перейти к div на основе его после захвата идентификатора из Url.
URL-адрес подобен ниже первого, когда пользователь перемещается на эту страницу
http://localhost:6447/products/all-products#productId2
Здесь # productId2 - это div id на странице, на которую мне нужно прокручивать загрузку страницы
Я показываю продукты в listview с пейджингом
<ItemTemplate>
<tr>
<td>
<div id='#productId<%#Eval("PId")%>'>
<a class="ProdcutText">
<%#Eval("PName")%></a>
</div>
</td>
</tr>
<tr>
<td>
<div class="PriceText">
-<a class="PPrice"><%#Eval("Price")%></a></div>
</td>
</tr>
<tr>
<td>
<div class="PDesc">
<asp:Label ID="lblDesc" runat="server" Text='<%#Eval("PrdocutDescription")%>'> </asp:Label>
</div>
</td>
</tr>
</ItemTemplate>
и на странице содержимого, которую я пробовал ниже, но, похоже, не работает.
<asp:Content ID="HeadContent" ContentPlaceHolderID="MasterHeadContentHolder" runat="server">
<script type="text/javascript" src="/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('html,body').animate({
scrollTop: $("#productId6").offset().top
}, 2000);
});
</script>
Что не так? и после подкачки URL-адрес изменяется, и я получаю ошибку неопределенной и нулевой ошибки.
http://localhost:6447/products/all-products?list=1
ясно, что ваш html должен генерировать, как показано ниже:
<div id="productId2">
Proiduct details
</div>
пожалуйста, используйте код ниже, когда вы указываете имя файла как test.html, тогда вы набираете url test.html # div1, он будет прокручиваться до div 1 test.html # div2, он будет прокручиваться до div 2
<html>
<body>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<div id="div1">div</div>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<div id="div2">Div start</div>
</body>
</html>
Попробуйте этот код Javascript:
var $target = $( location.hash);
var pos = Math.max( 0, $target.offset().top);
var $view = browser.indexOf('WebKit') < 0 ? $('html') : $(document.body);
$view.animate({'scrollTop': pos});
Первая строка получает productId из URL-адреса, например # productId2. Затем он находит элемент с этим идентификатором, # является селектором jQuery для ID. Вторая строка вычисляет положение этого элемента по странице (количество прокрутки). Третья строка определяет, что нужно прокручивать, HTML (для Chrome & Safari) или BODY. В последней строке выполняется плавная прокрутка.