【发布时间】:2020-04-27 11:18:22
【问题描述】:
我正在制作一个允许滚动的面板。另外,我有一个按钮,我想在点击按钮 5 次后将面板内容滚动到底部(scrollHeight 值的 5 x 20%)。
我正在检查日志记录值,它是正确的,但实际上,当单击第 4 个按钮时,面板内容已经滚动到底部。
第五个,value 已更新,但面板内容不再滚动。
$('button').on('click', function () {
var $panel = $('.panel');
var scrollHeight = $panel.prop('scrollHeight');
var value = $panel.scrollTop() + scrollHeight * 0.2;
console.log(scrollHeight + ' - ' + value);
$panel.animate({ scrollTop: value }, 500);
});
.panel {
height: 100px;
border: 1px solid;
overflow-x: hidden;
overflow-y: auto;
}
.panel div {
height: 500px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="panel">
<div></div>
</div>
<button type="button">Scroll</button>
【问题讨论】:
-
试着把加法放在括号里
var value = ($panel.scrollTop() + scrollHeight) * 0.2; -
如果在顶部,则为0,0*0.2 = 0。
-
@JoelHager 谢谢!我只是尝试一下。但它工作不正常。
-
控制台记录点击的值
-
也试试这个
var value = $panel.scrollTop() + (scrollHeight * 0.2);
标签: javascript html jquery scroll