I have two pages with the same css class and the same id, but since they are on different pages, the id is the separator.
Page 1) Got a Div being refreshed every 5 seconds. The div has scrolling set to scroll so that user can scroll, but when the refresh happens the div scrolling goes back to the top. Any ideas/written script on how I can keep the scroll position after the div is refreshed?
Page 2) This is similar to page 1, other from, When users come to this page the first time, I want the scroll position to be at the bottom, then when the refresh happens, I want to keep the scroll position of the div wherever I have scrolled to after its refreshed
Bottom Line: I’m relatively new to Front-End design, so Please, your contribution should be something I would understand easily or close to easy This is my css
.msg_container_base{ background: #fff; margin: 0; padding: 0 10px 10px; max-height:400px; overflow-x:hidden; overflow-y:auto; } .msg_container_base::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); background-color: #fff; } .msg_container_base::-webkit-scrollbar { width: 12px; background-color: #fff; } .msg_container_base::-webkit-scrollbar-thumb { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3); background-color: #fff; }
This is my java script for loading and refreshing
<script type="text/javascript"> var auto_refresh = setInterval( function () { $("#grid").load('mai/ #grid'); }, 20000); // refresh every 10000 milliseconds </script> <div id="grid"> @RenderPage("~/mai.cshtml") </div>
Advertisement
Answer
See this Fiddle : http://jsfiddle.net/tu6fj8jq/7/
Using element.scrollTop you can store the scroll position in the div before you refresh it
This outputs the scroll position in another element when div is scrolled :
$("div").on("scroll", function() { $("span").html($("div")[0].scrollTop); });
For the second part, you can scroll the div to the bottom at page load like this :
$(function() { $("#bottom")[0].scrollTop = $("#bottom")[0].scrollHeight - $("#bottom").height(); });