gpt4 book ai didi

javascript - 将可滚动的 div 聚焦到一个位置

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

我在 div 中有一个表格,如下所示:

<div class="posts" style="height: 800px; width:330px; overflow:scroll;" >
<table class="price" id="price" cellpadding="10px" border="1">
// some stuff

</table>
</div>

我想通过使用 Javascript 或 jQuery 使 div 聚焦以滚动到表格的特定行。因此,如果调用该函数,用户将在 div block 的中间看到该行。

我该怎么做?谢谢!

最佳答案

基本上,您会获得对要滚动到的单元格 (<td>) 或行 (<tr>) 的引用。然后,您只需调用该元素的 scrollIntoView 方法即可。

var tgtElement = document.getElementById('idOfDesiredRowOrCell');
tgtElement.scrollIntoView();

这是一个简单的示例,请注意,我只是按数字定位所需的行 - 您很可能希望选择不同的目标元素。另外,请注意创建了 20 行,因此有效输入的范围是 [0..19] - 选择 19 将滚动直到第 19 行可见 - 尽管它位于 div 的底部 , 而不是顶部。我想你可以添加一些 <br>如果您真的必须将所选行滚动到 div 的顶部,则在表格之后添加元素。

HTML:

<!DOCTYPE html>
<html>
<head>
<script>
function byId(e){return document.getElementById(e);}
function newEl(tag){return document.createElement(tag);}
function newTxt(txt){return document.createTextNode(txt);}

window.addEventListener('load', mInit, false);

function mInit()
{
var tbl = makeTable(20, 5);
byId('scrollMe').appendChild(tbl);

byId('doScrollBtn').addEventListener('click', onScrollBtnClick, false);
}

function onScrollBtnClick()
{
var tbl = byId('demoTable');
var rowNum = byId('scrollRowInput').value;
var selectedRow = tbl.rows[rowNum];
selectedRow.scrollIntoView();
}

function makeTable(numRows, numCols)
{
var x, y, tbl, row, cell;
tbl = newEl('table');
tbl.id = 'demoTable';
for (y=0; y<numRows; y++)
{
row = newEl('tr');
for (x=0; x<numCols; x++)
{
cell = newEl('td');
cell.appendChild( newTxt("Cell: " + x + ", " + y) );
row.appendChild(cell);
}
tbl.appendChild(row);
}
return tbl;
}

</script>
<style>
#scrollMe
{
height: 150px;
border: solid 1px red;
overflow-y: scroll;
}
</style>
</head>
<body>
<div id='scrollMe'></div>
<input id='scrollRowInput'/><button id='doScrollBtn'><-- Scroll to this row</button>
</body>
</html>

关于javascript - 将可滚动的 div 聚焦到一个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19507573/

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