javascript - jQuery 计算项目在可滚动窗口中的位置并滚动到它

标签 javascript jquery

那里。我在弹出窗口中有一个项目(用户)列表。此列表位于可滚动的 div 中。 我想制作一个搜索框,使用 jQuery 和 Javascript 计算 此列表中的所需用户,然后滚动到它。基本上,这就是我想要的:

function goToUser(userName) {
    var userPosition = getPosition(userName);
    $('#myContainer').scrollTop(userPosition);
}

function getPosition(userName){
    // ?????
}

有人遇到过这样的问题吗?谢谢。

这是我用于弹出窗口的部分 View :

@using (@Html.BeginForm())
{
<div class="popupTitle">
    Choose user(s)
</div>
<div style="height: 400px; overflow: scroll" class="popupNotifications">
    @foreach (var user in Model.Users)
    {
        <div>
            <input id="Users-@user.id" name="targetIds" type="checkbox" value="@user.id" @if(Model.TargetIds != null && Model.TargetIds.Contains(user.id)){<text>checked="checked"</text>} />
            <label for="Users-@user.id" style="cursor: pointer;">@user.name</label>
        </div> 
    }
</div>
<div class="popupButtons">
    <input type="button" class="button" value="Save" onclick="GetValues(Notifications_UsersPopupHolder)" />
    <input type="button" class="button" value="Cancel" onclick="Cancel(Notifications_UsersPopupHolder)" />
</div>

最佳答案

你试过$(element).scrollIntoView()了吗?

我认为您的代码看起来像这样(不需要 getPosition 函数):

function goToUser(userName){
    $('div.popupNotifications input#' + username).closest('div').scrollIntoView();
}

关于javascript - jQuery 计算项目在可滚动窗口中的位置并滚动到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18639146/

相关文章:

javascript - 为键码创建变量数组

javascript - 在 AngularJS 和非 AngularJS 弹出窗口之间共享变量

javascript - 单击按钮时调用脚本

javascript - jQuery 根据用户选择启用/禁用 ASP.NET 控件

javascript - 奇怪/意外的 jQuery promise 拒绝行为

javascript - 如何从API加载数据?

javascript - 如何获取禁用的单选按钮输入字段的值

javascript - 为什么appendTo只能工作一次?

javascript - 我们可以在使用 "new"运算符创建对象时省略括号吗?

javascript - 如何在显示 ng-repeat 元素时应用延迟