如何实现通讯录内的滑动检索

297 阅读1分钟

在通讯录内,我们常常会见到这么一个设计

那么我们应该如何去实现这一功能呢?

  • 方法1 首先,我们想到的第一点就是 监听滑动事件 但是单纯的监听滑动事件,我们只能获取到第一次点击时的DOM元素 所以此时,需要配合 document.elementFromPoint(touchElement.clientX,touchElement.clientY) 来获取到当前坐标的元素(需要注意的时,这个api受z-index影响,需保证被滑动的元素在最顶层)

另外,部分浏览器存在下拉刷新机制,我们可以通过给 body 设置 overflow:hidden 来阻止

  • 方法2

通过监听touchmove以及$("item").scrollIntoView来实现.

    $("#item-container .flag").each(function(){
        if($(this).text() == "A"){
            this.scrollIntoView({block: "center"});
        }
    });