gpt4 book ai didi

javascript - 将窗口滚动到元素的底部

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

我正在尝试向正在处理的应用程序中的模块添加一个功能,当元素高度大于窗口高度时,它将浏览器窗口滚动到元素的底部。

该模块有点类似于下面的代码片段,当列表的高度大于窗口的高度时将元素添加到列表时,您将不得不向下滚动才能再次看到添加按钮,所以有没有办法可以自动执行此操作,顺便说一下 ==(顺便说一句)我并不是说滚动到文档底部,只是滚动到特定元素。

(function() {

var lists = document.querySelector('ul'),
addBtn = lists.nextElementSibling.lastElementChild,
textInput = addBtn.previousElementSibling;

addBtn.addEventListener('click', appendItem);

function appendItem() {
var item = document.createElement('li');
if (textInput.value == '') item.innerText = 'test-item';
else item.innerText = textInput.value;

lists.appendChild(item);
}

console.log(lists, addBtn, textInput);
})();
div:not(#fake-form) {
background-color: #F9F2C4;
max-width: 200px;
margin: 0 auto;
}
ul {
list-style: none;
padding: 4px;
margin: 0;
}
ul li {
list-style: none;
padding: 4px;
margin: 0;
font-size: 24px;
}
div#fake-form {
text-align: center;
padding: 4px;
}
input {
display: block;
width: 100%;
box-sizing: border-box;
margin-bottom: 4px;
}
<div>
<ul>
<li>test item</li>
<li>test item</li>
<li>test item</li>
<li>test item</li>
<li>test item</li>
<li>test item</li>
<li>test item</li>
</ul>
<div id="fake-form">
<input type="text">
<button>add item</button>
</div>
<div>

最佳答案

此 jQuery 代码将滚动以将元素的底部放在窗口的底部。我基本上只是获取要滚动到的元素的顶部位置,然后将元素的高度添加到顶部位置以确定底部位置。从底部位置值减去窗口高度,然后滚动到结果值会将元素的底部放在窗口底部。如果您希望元素的底部位于窗口的顶部(真正滚动到元素的底部,但它会超出视口(viewport)),只需滚动到 divBot 即可。

$('button').on('click', function() {
var wHeight = $(window).height(),
divTop = $('#one').offset().top,
divHeight = $('#one').outerHeight(),
divBot = divTop + divHeight;

$('html, body').animate({
scrollTop: (divBot - wHeight)
}, 2000);
})
div {
height: 200vh;
border-bottom: 5px solid black;
}
#one {
border-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><button>click</button></div>
<div id="one"></div>
<div></div>

关于javascript - 将窗口滚动到元素的底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41559958/

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