【问题标题】:need to identify a centred li in side ul需要在 ul 中识别一个居中的 li
【发布时间】:2013-02-19 10:39:26
【问题描述】:

我正在使用以下代码在移动 jquery 中左右滑动列表元素,我需要识别当前与滑动对齐的 li.. 代码正在运行 好的,我只需要识别被刷的 li。

<script>
    $(function() {
        var item = $('.pan li');
        var itemWidth = item.width();
        var itemLenght = item.length;
        var scrollerWidth = itemWidth * itemLenght;
        scrollLimt = itemWidth;
        item.click(function(){
            item.removeClass('active');
            $(this).addClass('active');
        });

    var position = 0;
    function next() {
        position -= scrollLimt;
        if (position <= -scrollerWidth)
            position = 0;
        update();

    }

    function prev() {
        position += scrollLimt;
        if (position > 0)
            position = 0;
        update();
    }

    function update() {
        var pan = document.getElementById("pan");
        pan.style.OTransform = "translateX(" + position + "px)";
        pan.style.MozTransform = "translateX(" + position + "px)";
        pan.style.WebkitTransform = "translateX(" + position + "px)";
    }
        $('#pan').bind("swipeleft", next);
        $('#pan').bind("swiperight", prev);

        $("img").bind("dragstart", function(ev) { ev.preventDefault(); });
    });
</script>

【问题讨论】:

  • jQuery finder... 看起来像一些 SO jQuery 爬虫 :)

标签: jquery jquery-mobile swipe


【解决方案1】:

试试这个:

function update(isSwipedLeft) {
    var pan = document.getElementById("pan");
    var swipedLi = isSwipedLeft ? $(pan).prev('li') : $(pan).next('li');//this is your required li.
    pan.style.OTransform = "translateX(" + position + "px)";
    pan.style.MozTransform = "translateX(" + position + "px)";
    pan.style.WebkitTransform = "translateX(" + position + "px)";
}

并像这样调用这个函数:

function next() {
    position -= scrollLimt;
    if (position <= -scrollerWidth)
        position = 0;
    update(false);

}

function prev() {
    position += scrollLimt;
    if (position > 0)
        position = 0;
    update(true);
}

【讨论】:

  • 使用 jQuery 的 addClass() 函数...做一些谷歌。这样做是这样的: swipedLi.addClass('yourclassname');当您需要删除课程时,您可以尝试 swipedLi.removeClass('yourclassname');
  • 基本上第一个 li 有一个“活动”类,我需要将它转移到下一个被刷卡的 li....
猜你喜欢
  • 2017-10-25
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 2014-03-06
  • 2015-11-18
  • 1970-01-01
相关资源
最近更新 更多