Javascript 将HTML页面滚动到其前面';达到';底部

Javascript 将HTML页面滚动到其前面';达到';底部,javascript,jquery,html,css,user-interface,Javascript,Jquery,Html,Css,User Interface,我有这个聊天线索 它当前所做的是,当它到达页面底部时,它会向上滚动,以便始终位于页面底部 问题是,正如您在图像中看到的,它在到达页面底部之前隐藏在表单后面。因此,我需要重新定义页面底部的内容: 我试过: function scroll() { window.scrollTo(0, document.body.scrollHeight + document.getElementById('form_id').offsetHeight); }; 但它似乎没有任何效果,从功能听之前这一个 以

我有这个聊天线索

它当前所做的是,当它到达页面底部时,它会向上滚动,以便始终位于页面底部

问题是,正如您在图像中看到的,它在到达页面底部之前隐藏在表单后面。因此,我需要重新定义页面底部的内容:

我试过:

function scroll() {
    window.scrollTo(0, document.body.scrollHeight + document.getElementById('form_id').offsetHeight);
};
但它似乎没有任何效果,从功能听之前这一个

以下是我的代码的其余部分:


聊天演示
.顶栏{
背景#009E60;
位置:相对位置;
溢出:隐藏;
}
.上栏::之前{
内容:“;
位置:绝对位置;
前-100%;
左:0;
右:0;
底部:-100%;
不透明度:0.25;
背景:径向梯度(白色,#009E60);
}
.顶栏>*{
位置:相对位置;
}
.上栏::之前{
动画:脉冲1s轻松交替无限;
}
@关键帧脉冲{
从{opacity:0;}
到{不透明度:0.5;}
}
* {
保证金:0;
填充:0;
}
h1{
填充物:5px;
}
身体{
字体:15px Helvetica,Arial;
}
形式{
背景#009E60;
填充:10px;
底部:0;
位置:固定;
宽度:60%;
框大小:边框框;
}
表单输入{
填充物:5px;
宽度:80%;
右边距:0.5%;
垂直对齐:底部对齐;
字体:15px Helvetica,Arial;
}
窗体按钮{
宽度:18.5%;
填充:9px;
垂直对齐:底部对齐;
}
ol{
填充底部:100px;
}
#信息{
列表样式类型:无;
保证金:0;
填充:0;
}
#信息李{
填充物:5px10px;
}
.左{
填充物:5px10px;
背景:-webkit线性梯度(左,rgba(215229228,1),rgba(255255,0));/*Safari 5.1-6*/
背景:-o-线性梯度(右图,rgba(255255255,0),rgba(215229228,1));/*Opera 11.1-12*/
背景:-莫兹线性梯度(右图,rgba(255255255,0),rgba(215229228,1));/*Fx 3.6-15*/
背景:线性梯度(向右,rgba(215229228,1),rgba(255255,0));/*标准*/
文本对齐:左对齐;
}
.对{
填充物:5px10px;
背景:-webkit线性梯度(左,rgba(255255255,0),rgba(228215229,1));/*Safari 5.1-6*/
背景:-o-线性梯度(右图,rgba(228215229,1),rgba(255255,0));/*Opera 11.1-12*/
背景:-莫兹线性梯度(右图,rgba(228215229,1),rgba(255255,0));/*FX3.6-15*/
背景:线性梯度(向右,rgba(255255255,0),rgba(228215229,1));/*标准*/
文本对齐:右对齐;
}
.模块{
宽度:60%;
保证金:20px自动;
}
聊天演示
发送
var socket=io();
$(“#表单id”).submit(函数(){
var值=$(“#用户_输入”).val();
如果(value.length>0&&value!=“默认文本”){
emit('来自我的消息',值);
$('#messages').append($('
  • ).text(value)); $('#用户输入').val(''); 滚动(); } 返回false; }); socket.on('message',函数(msg){ $('#messages').append($('
  • ).text(msg)); }); 函数滚动(){ scrollTo(0,document.body.scrollHeight); };
  • 在JavaScript中滚动总是滚动到可能的最大值。在您的情况下,它是可滚动内容的大小。您所需要做的就是在表单后面应用额外的空白

    因此,从您的代码(您没有向我们显示CSS)可以添加到您的:

    ol { padding-bottom: 50px; }
    
    其中,50px是您表格的高度


    此外,如果您总是想滚动到最大底部,您可以只使用结束值,如999999,而不是计算它。浏览器将足够智能,可以理解它

    嗨,只要在html页面中添加此css,您将获得输出
    div#footer{margin top:10px;}

    我已经编辑了我的问题,以包含嵌入的CSS。即使在为ol添加此CSS后,它仍然会等待,直到它位于页面的绝对底部才能滚动,这是令人困惑的,因为您的建议非常有意义。