gpt4 book ai didi

jquery - 如何在点击时将滚动条放在div的底部

转载 作者:太空宇宙 更新时间:2023-11-04 06:35:36 24 4
gpt4 key购买 nike

为什么滚动代码不起作用?我希望在单击 $('#openDiv') 时滚动到底部。

示例:当您在 stackoverflow 上进入聊天室时,您会看到默认情况下滚动条位于底部,我想要这个。

我也试过把滚动代码放在点击函数外面,但是不行...

$(document).ready(function() {

$('#openDiv').on('click', function(){
$('#openDiv').hide();
$('#closeDiv').show();

///////// NOT WORKING /////////
$("#mainDiv").animate({
scrollTop: $('#mainDiv').prop("scrollHeight")
}, 1000);
///////// NOT WORKING /////////

$("#mainDiv").show();
});

$('#closeDiv').on('click', function(){
$('#closeDiv').hide();
$("#mainDiv").hide();
$('#openDiv').show();
});

});
#mainDiv {
height: 150px;
background-color: #2A2A2A;
overflow-y: auto;
overflow-x: hidden;
display: none;
}

#divText {
color: #fff;
background-color: #555555;
height: 20px;
}
#divTextEnd{
color: #fff;
background-color: red;
height: 20px;
}

#openDiv{
background-color: green;
border: none;
color: #fff;
}

#closeDiv{
display: none;
background-color: red;
border: none;
color: #fff;
}
<button id="openDiv">Open div</button>
<button id="closeDiv">Close div</button>

<div id="mainDiv">

<div id="divText">
<h5>text</h5>
</div>
<div id="divText">
<h5>text</h5>
</div>
<div id="divText">
<h5>text</h5>
</div>
<div id="divText">
<h5>text</h5>
</div>
<div id="divTextEnd">
<h5>text</h5>
</div>

</div>

<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

最佳答案

在你调用 $('#mainDiv').prop("scrollHeight") 的那一刻,#mainDiv 被隐藏了 display: none;。这样的元素的 scrollHeight 为 0。

在尝试滚动之前显示 #mainDiv:

$(document).ready(function() {

$('#openDiv').on('click', function() {
$('#openDiv').hide();
$('#closeDiv').show();

$("#mainDiv").show();

$("#mainDiv").animate({
scrollTop: $('#mainDiv').prop("scrollHeight")
}, 1000);
});

$('#closeDiv').on('click', function() {
$('#closeDiv').hide();
$("#mainDiv").hide();
$('#openDiv').show();
});

});
#mainDiv {
height: 150px;
background-color: #2A2A2A;
overflow-y: auto;
overflow-x: hidden;
display: none;
}

#divText {
color: #fff;
background-color: #555555;
height: 20px;
}

#divTextEnd {
color: #fff;
background-color: red;
height: 20px;
}

#openDiv {
background-color: green;
border: none;
color: #fff;
}

#closeDiv {
display: none;
background-color: red;
border: none;
color: #fff;
}
<button id="openDiv">Open div</button>
<button id="closeDiv">Close div</button>

<div id="mainDiv">

<div id="divText">
<h5>text</h5>
</div>
<div id="divText">
<h5>text</h5>
</div>
<div id="divText">
<h5>text</h5>
</div>
<div id="divText">
<h5>text</h5>
</div>
<div id="divTextEnd">
<h5>text</h5>
</div>

</div>

<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>

关于jquery - 如何在点击时将滚动条放在div的底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54263246/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com