Подтвердить что ты не робот

Прокрутка/переход к id без jQuery

У меня есть поиск по многим темам для полезного решения.
Но не нашел что-то. Большинство скриптов слишком забиты для моих целей.
Поиск решения, основанного только на Javascript. В моем проекте невозможно использовать jQuery.
Мне нужен прыжок или прокрутка к id.

<head>
<script type="text/javascript">
//here has to go function
</script>
</head>



Мой вызов:

<a onclick="function_call+targetname"><img src="image1" alt="name1"></a>
<a onclick="function_call+targetname"><img src="image2" alt="name2"></a>
<a onclick="function_call+targetname"><img src="image3" alt="name3"></a>

Поэтому я должен использовать событие onclick в моей навигации.

Теперь onclick я хочу перейти или прокрутить до id div на моей странице:

<div id="target1">some content</div>
<div id="target2">some content</div>
<div id="target3">some content</div>

Это очень важно: к сожалению, html anchor не работает. В противном случае все будет довольно легко.

Я использую bevore просто:

onclick="window.location.hash='target';"

Но у меня есть ограничения в eBay. Они не позволяют этот простой код.

Также я не могу вызвать внешний javascript (используйте только JS в области заголовка). Кроме того, невозможно использовать: "cookie", "cookie", "заменить (", IFRAME, META или включает ") и base href.

Не может быть трудно с некоторым переходом JS в определенную точку. Мне не нужны специальные эффекты.

У кого-нибудь есть тонкое и полезное решение?

Я нашел решение самостоятельно и спасибо Oxi. Я следую твоему путь.

Для всех, кто интересуется моим решением:

<head> <script type="text/javascript"> function scroll(element){   
var ele = document.getElementById(element);   
window.scrollTo(ele.offsetLeft,ele.offsetTop); } </script> </head>

Навигационный вызов:

<a onclick='scroll("target1");'><img src="image1" alt="name1"></a>

Теперь вы можете перейти к div с именем ID

<div id="target1">CONTENT</div>
4b9b3361

Ответ 1

Возможно, вам стоит попробовать scrollIntoView.

document.getElementById('id').scrollIntoView();

Это будет прокрутка к вашему элементу.

Ответ 2

ниже код может помочь вам

var objControl=document.getElementById("divid");
objControl.scrollTop = objControl.offsetTop;

Ответ 3

на теге привязки используйте href, а не onclick

<a href="#target1">asdf<a>

И div:

<div id="target1">some content</div>

Ответ 4

Ответ Окс просто неверен.¹

Что вы хотите:

var container = document.body,
element = document.getElementById('ElementID');
container.scrollTop = element.offsetTop;

Рабочий пример:

(function (){
  var i = 20, l = 20, html = '';
  while (i--){
    html += '<div id="DIV' +(l-i)+ '">DIV ' +(l-i)+ '</div>';
    html += '<a onclick="document.body.scrollTop=document.getElementById(\'DIV' +i+ '\').offsetTop">';
    html += '[ Scroll to #DIV' +i+ ' ]</a>';
    html += '<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />';
  }
  document.write( html );
})();

¹ У меня недостаточно репутации, чтобы прокомментировать его ответ