Обнаружение конфликтующих элементов в jQuery

#javascript #jquery #css

#javascript #jquery #css

Вопрос:

В настоящее время я работаю над созданием приложения, похожего на приложение «Контакты» на iOS. Стиль и так далее на самом деле сейчас не важны, но я хотел бы, чтобы функциональность работала.

Я настроил jsFiddle, чтобы показать, чего я пытаюсь достичь (http://jsfiddle.net/hpQVy /), и вот код:

HTML:

 <ul class="divided">
    <li class="divider">A</li>
    <li>Andrew Acheson</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li>Luke Ayre</li>
    <li class="divider">B</li>
    <li class="divider">C</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
    <li>Charlie Sheen</li>
</ul>
  

JavaScript:

 $(function() {
    // First off, dock the first one:
    $('ul.divided li.divider').eq(0).css({ position: 'fixed' });
    $(window).scroll(function() {

        //

    });
});
  

CSS:

 body {
    padding: 0;
    margin: 0;
}
ul {
    list-style: none;
    padding: 0;
    margin: 0;
    font-family: Arial;
}
    ul li {
        padding: 10px;
        border-bottom: 1px solid #000;
        width: 100%;
        box-sizing: border-box;
    }
        ul li.divider {
            font-weight: bold;
            padding: 2px 10px;
            background-color: #aaa;
            color: #fff;
            text-shadow: 0 1px 0 #000;
            opacity: 0.7;
        }
  

Что я хотел бы сделать, так это имитировать «стыковку» разделителей списка. Мой ход мыслей заключается в том, чтобы определить, когда какой-либо разделитель сталкивается с тем, который закреплен, а затем анимировать и закрепить его соответствующим образом. Я полагаю, мой вопрос заключается в том, каков наилучший способ определить, когда разделитель списка ( li.divider ) сталкивается с разделителем, li.divider который имеет position: fixed . Мне нужно обнаруживать столкновения как сверху, так и снизу (если это имеет смысл).

Кто-нибудь может порекомендовать способ определения того, когда li элементы могут столкнуться?

Ответ №1:

хорошо, возможно, это не тот ответ, который вы искали, но взгляните на этот плагин. Я думаю, это именно то, что вы пытаетесь создать