Изменение фокуса на переполнение: скрытый элемент, перемещает его, но делает эту разницу незаметной

У меня есть контейнер с переполнением: скрыто. Внутри есть таблица с некоторыми данными. Когда вы меняете фокус с ввода на ввод, элемент таблицы перемещается, чтобы сделать элемент видимым, но нет никаких следов этого изменения (по крайней мере, я его не вижу), чтобы зафиксировать, насколько он был перемещен.

<style>
.container{
    overflow: hidden;
    width: 300px;
    height: 30px;
}
</style>
<div class="container">
    <table>
        <tbody>
            <tr>
                <td><input type="text" placeholder="input1"></td>
                <td><input type="text" placeholder="input2"></td>
                <td><input type="text" placeholder="input3"></td>
                <td><input type="text" placeholder="input4"></td>
                <td><input type="text" placeholder="input5"></td>
                <td><input type="text" placeholder="input6"></td>
                <td><input type="text" placeholder="input7"></td>
                <td><input type="text" placeholder="input8"></td>
                <td><input type="text" placeholder="input9"></td>
                <td><input type="text" placeholder="input10"></td>
            </tr>
        </tbody>
    </table>
</div>

Мне нужна эта позиция, потому что я разрабатываю вид прокрутки, и полоса прокрутки должна двигаться соответственно элементу.

PS: проблема только в том, чтобы получить информацию о положении, потому что я запускаю событие.focusin(), но нет ничего для извлечения

Спасибо!!!

1 ответ

Я бы сделал что-то вроде этого:

var inputs /*All of the inputs*/, visibleInputs /*All of the visible inputs*/,

disable = function() {
    /*Shows/Hides the inputs*/
}, whenFocusin = function() {
    /*Scrolls the inputs*/
}, update = function() {
    /*Updates visibleInputs and binds whenFocusin to the "focusin" event*/
};

//When the document is ready:
$(document).ready(function() {
    //We set inputs...
    inputs = $(".container").children();
    //...call update() ...
    update();
    //...and call disable().
    inputs.each(disable);
});

Вот скрипка: http://jsfiddle.net/NobleMushtak/M6CTe/1/

Другие вопросы по тегам