Javascript 有没有办法使用css使滚动条始终位于底部?

Javascript 有没有办法使用css使滚动条始终位于底部?,javascript,html,css,Javascript,Html,Css,我有一个带有滚动条和一些内容的容器div。我使用它就像一个小部件。当它初始化时,我把它的滚动条放在底部。所以我想要的是,无论发生什么情况(例如其父元素更改或移动到另一个位置),它都可以将滚动条保持在底部以查看内容 我知道Javascript可以做到这一点。但是Javascript必须需要一些动作来触发一些事件,我希望元素能够自行完成 我认为使用setInterval或setTimeout耗费太多资源 所以我想使用CSS 有什么想法吗?要始终在底部显示滚动条,您可以使用overflow-x:scr

我有一个带有滚动条和一些内容的容器div。我使用它就像一个小部件。当它初始化时,我把它的滚动条放在底部。所以我想要的是,无论发生什么情况(例如其父元素更改或移动到另一个位置),它都可以将滚动条保持在底部以查看内容

我知道Javascript可以做到这一点。但是Javascript必须需要一些动作来触发一些事件,我希望元素能够自行完成

我认为使用
setInterval
setTimeout
耗费太多资源

所以我想使用CSS


有什么想法吗?

要始终在底部显示滚动条,您可以使用
overflow-x:scroll作为CSS属性。我不明白为什么更改父元素会破坏这种行为。如果您想了解更多信息,请发布您的代码,以便我们了解情况。

如果您想完全禁用滚动,可以移动div的内容,使div内容的底部与div的底部对齐

这可以通过以下方式实现:

#id_of_container {
    padding-top: 100%;
    height: (how ever many you want)px;
    overflow-y: hidden;
}

#id_of_content {
    top: -100%;
    position: relative;
}
JS

container = document.getElementById("id_of_container");
content = document.getElementById("id_of_content");

function set() {
    content.style.top = String(content.clientHeight - container.clientHeight) + "px";
}

window.onload = set;
window.onresize = set;

set();
#id_of_content {
    position: relative;
}

#id_of_container {
    overflow-y: hidden;
 }
CSS

container = document.getElementById("id_of_container");
content = document.getElementById("id_of_content");

function set() {
    content.style.top = String(content.clientHeight - container.clientHeight) + "px";
}

window.onload = set;
window.onresize = set;

set();
#id_of_content {
    position: relative;
}

#id_of_container {
    overflow-y: hidden;
 }
我上面的示例要求您拥有一个包含所有内容的容器。除非使用
setInterval
更改内容父元素的维度,否则不需要使用它来执行
set()


如果您想要纯CSS方法,那么您可以执行以下操作:

#id_of_container {
    padding-top: 100%;
    height: (how ever many you want)px;
    overflow-y: hidden;
}

#id_of_content {
    top: -100%;
    position: relative;
}

不过,我不确定这是否有效。

我在这里找到了一个非常巧妙的解决方案:

所以我让我的外部元素带有css3的
动画
属性

keyframes elementChanged
{
    from {opacity: 1};
    to   {opacity: 1};
}
myOuterElement
{
    animation: elementChanged
}
然后,我将
animationEnd
事件绑定到我的元素,这样无论与我的元素相关的Dom树结构发生什么情况,我都可以进行回调并执行我想要的操作

以下是javascript代码:

document.getElementById('elementId').addEventListener('animationEnd', function()
{
    // do something I like...
}, false);

你为什么要这么做?如果我们知道您为什么要实现此功能,也许有更好的解决方案。简短回答否。仅仅因为您可以使用JavaScript执行某些操作,并不意味着您也可以使用CSS执行这些操作。@dotty感谢您的回答。我已经更新了我的问题。Javascript可以使用document ready事件作为触发器。你误解了我的问题,我的意思是底部的滚动条用于查看最后的内容,意味着滚动条滚动到底部。哦,我明白了。我认为没有Javascript就没有办法解决这个问题。我认为在这种情况下,Yharooer的建议值得一看。您可以在每次容器中发生变化时调用他/她建议的set函数。我已经找到了解决方案,并亲自回答了问题,谢谢您的回答。