滚动/跳转至ID没有的jQuery(Scroll / Jump to id without jQue

2019-07-03 15:29发布

我搜索了很多话题的一个可用的解决方案。
但不要发现了什么。 大多数脚本都只是我的目的过于杂乱。
求仅基于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我想跳或滚动到我的网页一个div ID:

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

这是非常重要的:HTML锚点不遗憾的是工作。 否则,一切都将是相当容易的。

我有使用简单bevore:

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

但是我对eBay的限制。 他们不容许这种简单的代码。

此外,我不能调用外部JavaScript(仅在头部区域使用JS)。 此外,不可能使用:“饼干”,“饼干”,“取代(”,IFRAME,META或包括)和基本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>

Answer 1:

也许你应该试着scrollIntoView。

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

这将滚动到你的元素。



Answer 2:

如果你想平滑滚动添加behavior的配置。

document.getElementById('id').scrollIntoView({
  behavior: 'smooth'
});


Answer 3:

下面的代码可以帮助你

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


Answer 4:

在锚标记使用href和没有的onclick

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

和DIV:

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


Answer 5:

OXI的回答仅仅是wrong.¹

你想要的是:

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 );
})();

¹我没有足够的声誉对他的回答评论



Answer 6:

添加功能:

function scrollToForm() {
  document.querySelector('#form').scrollIntoView({behavior: 'smooth'});
}

触发功能:

<a href="javascript: scrollToForm();">Jump to form</a>


文章来源: Scroll / Jump to id without jQuery