gpt4 book ai didi

javascript - 如何使用搜索框滚动到列表中的特定数据

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

在我的元素中,我有一个搜索框和一个由数据库中的数据填充的 div 列表。我的想法是,当我在搜索框中输入内容时,它将在列表中的特定数据上滚动。感谢,并有一个愉快的一天!

这是 JSFIDDLE

我已经编辑了这个问题并将这个脚本添加到我的元素中,但它仍然没有滚动。

$(document).ready(function() {
$('.search-field').on('keyup blur change', function() {
var text_s = $(this).val();

$("li#dirlist").removeClass("highlight");

if (text_s.length > 0){
$("li#dirlist").each(function(){
var li_value = $(this).text();
if (li_value.indexOf(text_s) >= 0){
$(this).addClass("highlight");
var x = getOffset( document.getElementById(this.id) ).left;
}
});
}
});
});

function getOffset( el ) {
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) ) {
_x += el.offsetLeft - el.scrollLeft;
_y += el.offsetTop - el.scrollTop;
el = el.offsetParent;
}
window.scrollTo(_x,_y);
return { top: _y, left: _x };
}

最佳答案

这就是你想要的

JsFiddle: http://jsfiddle.net/q52Fc/1/

HTML:

<div class="container">
<div class="row-fluid">
<div class="span12">
<div class="green-bar">
<h4><center>Directory</center></h4>
</div>
</div>
</div>
</br>
</br>
<div class="span4">
<div id="name-dir">
<div class="row">
<div class="control-group">
<div class="controls">
<div class="input-prepend"> <span class="add-on"><i class="icon-search"></i></span>

<input class="block search-field" id="inputIcon" type="text" placeholder="Search">
</div>
</div>
</div>
</div>
</br>
<div class="contact-list">
<div class="contact-gray-bar">A</div>
<ul class="contact">
<!-- insert records here -->
<li>Apple</li>
<li>Amethyst</li>
<li>Aratilis</li>
</ul>
<div class="contact-gray-bar">B</div>
<ul class="contact">
<!-- insert records here -->
<li>Banana</li>
</ul>
<div class="contact-gray-bar">C</div>
<ul class="contact">
<!-- insert records here -->
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
<li>Cross</li>
</ul>
<div class="contact-gray-bar">K</div>
<ul class="contact">
<!-- insert records here -->
<li>Kiwi</li>
</ul>
</br>
</div>
</div>
</div>
</div>
</div>

JavaScript:

$(function () {
$('.search-field').on('keyup', function () {
var first_result = false;

var text_s = $(this).val().toLowerCase();

//Reinit li elements and the contact-list position
$("li").removeClass("highlight");
$(".contact-list").scrollTop($(".contact-list").position().top);

if (text_s.length > 0) {
$("li").each(function () {
var li_value = $(this).text().toLowerCase();
if (li_value.indexOf(text_s) >= 0) {
$(this).addClass("highlight");
if (first_result == false) {
//Have to move to the 1rst element's position
first_result = true;
$(".contact-list").scrollTop($(this).position().top);
}
}
});
}
});
});

CSS:没有做任何改变。

如果你想了解更多关于职位的信息,你可以阅读:http://api.jquery.com/position/

关于javascript - 如何使用搜索框滚动到列表中的特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24323619/

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