Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自动滚动到div的底部_Javascript_Html_Scroll - Fatal编程技术网

Javascript 自动滚动到div的底部

Javascript 自动滚动到div的底部,javascript,html,scroll,Javascript,Html,Scroll,我有一个带有溢出设置的div来滚动,它基本上是从一个文件中逐行传输数据。我想在流溢出时自动滚动到div的底部,但不使用“单击此处滚动到底部”按钮 我已经知道了,但这需要客户端的某种事件触发器。我不希望这个元素是交互的;它应该自动滚动 有没有办法做到这一点?没有办法自动将元素滚动到底部。使用element.scrollTop=element.scrollHeight 如果不知道元素何时调整大小,可以添加轮询器: (function(){ var element = document.get

我有一个带有溢出设置的div来滚动,它基本上是从一个文件中逐行传输数据。我想在流溢出时自动滚动到div的底部,但不使用“单击此处滚动到底部”按钮

我已经知道了,但这需要客户端的某种事件触发器。我不希望这个元素是交互的;它应该自动滚动


有没有办法做到这一点?

没有办法自动将元素滚动到底部。使用
element.scrollTop=element.scrollHeight

如果不知道元素何时调整大小,可以添加轮询器:

(function(){
    var element = document.getElementById("myElement");
    var lastHeight = element.scrollHeight;
    function detectChange(){
        var currentHeight = element.scrollHeight;
        if(lastHeight != currentHeight){
            element.scrollTop = currentHeight;
            lastHeight = currentHeight;
        }
    }
    detectChange();
    setInterval(detectChange, 200); //Checks each 200ms = 5 times a second
})();

当添加新内容时,我的一些旧代码将保留在底部,如果用户滚动,它将不会更多地保留在底部

var chatscroll = new Object();
chatscroll.Pane = 
    function(scrollContainerId)
    {
        this.bottomThreshold = 25;
        this.scrollContainerId = scrollContainerId;
    }

chatscroll.Pane.prototype.activeScroll = 
    function()
    {
        var scrollDiv = document.getElementById(this.scrollContainerId);
        var currentHeight = 0;

        if (scrollDiv.scrollHeight > 0)
            currentHeight = scrollDiv.scrollHeight;
        else 
            if (objDiv.offsetHeight > 0)
                currentHeight = scrollDiv.offsetHeight;

        if (currentHeight - scrollDiv.scrollTop - ((scrollDiv.style.pixelHeight) ? scrollDiv.style.pixelHeight : scrollDiv.offsetHeight) < this.bottomThreshold)
            scrollDiv.scrollTop = currentHeight;

        scrollDiv = null;
    }
var chatcroll=new Object();
chatscroll.Pane=
函数(滚动容器ID)
{
这个阈值=25;
this.scrollContainerId=scrollContainerId;
}
chatscroll.Pane.prototype.activeScroll=
函数()
{
var scrollDiv=document.getElementById(this.scrollContainerId);
var currentHeight=0;
如果(scrollDiv.scrollHeight>0)
currentHeight=scrollDiv.scrollHeight;
其他的
如果(objDiv.offsetHeight>0)
currentHeight=scrollDiv.offsetHeight;
if(currentHeight-scrollDiv.scrollTop-((scrollDiv.style.pixelHeight)?scrollDiv.style.pixelHeight:scrollDiv.offsetHeight)
很多scrollHeight的实现对我来说都不起作用,OfftheSight似乎起到了作用

非常确定scrollHeight尝试将其移动到静态元素高度的底部,而不是可滚动区域的高度

var pane = document.getElementById('pane');
pane.scrollTop = pane.offsetHeight;