简体   繁体   中英

Javascript scroll to dynamic element

i am adding dynamic div element with id 'newid' and using another button, i am trying to scroll to that dynamic element. After adding few dynamic elements, when i press the scroll button, i am scrolled to the end (last div element) but it stops working. My overall goal for this testing is to scroll to a dynamic added element. I dont have basics to move on, so please someone help me in the right direction.

Below is the code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
<button onclick="myfunction()">test</button> <button onclick="addElement()">Add Element</button>


<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum odit, ipsa aspernatur reiciendis facere labore accusamus architecto perspiciatis minus ad perferendis, illo nisi doloribus id quidem corporis blanditiis vel itaque!</div>

<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum odit, ipsa aspernatur reiciendis facere labore accusamus architecto perspiciatis minus ad perferendis, illo nisi doloribus id quidem corporis blanditiis vel itaque!</div>

<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum odit, ipsa aspernatur reiciendis facere labore accusamus architecto perspiciatis minus ad perferendis, illo nisi doloribus id quidem corporis blanditiis vel itaque!</div>

<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum odit, ipsa aspernatur reiciendis facere labore accusamus architecto perspiciatis minus ad perferendis, illo nisi doloribus id quidem corporis blanditiis vel itaque!</div>



<div id="demo">Test</div>

<script type="text/javascript">
function myfunction ()  { 
    document.getElementById('newid').scrollIntoView();
    //alert("test");

}

function addElement() {
    var element = document.createElement('div');
      element.id = "newid";
      document.body.appendChild(element);

     element.appendChild(document.createTextNode
     ('New id'));
}

</script>
</body>
</html>
function myfunction ()  { 
    var nodes = document.querySelectorAll('div.myclass');
    nodes[nodes.length-1].scrollIntoView();
}

function addElement() {
    var element = document.createElement('div');
    element.className ='myclass';
    element.appendChild(document.createTextNode('New div'));
    document.body.appendChild(element);
}

This code worked for me no matter how many I added. No jQuery needed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM