首页 > 其他 > 详细

仿QQ列表左滑删除

时间:2016-01-26 12:19:37      阅读:167      评论:0      收藏:0      [点我收藏+]

一直想写个仿QQ通讯列表左滑删除的效果,今天终于忙里偷闲,简单一个.

大概思路是这样的:

通过

ontouchstart
ontouchmove
ontouchend

结合css3的平移.

不多说,直接上demo,如有错误希望看客老爷雅正.

html:

        <div class="contain">
            <ul>
                <li>
                    <div id="list" class="list">
                        <div class="list_lf"><p>列表1</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
                <li>
                    <div class="list">
                        <div class="list_lf"><p>列表2</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
                <li>
                    <div class="list">
                        <div class="list_lf"><p>列表3</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
                <li>
                    <div class="list">
                        <div class="list_lf"><p>列表4</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
                <li>
                    <div class="list">
                        <div class="list_lf"><p>列表5</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
                <li>
                    <div class="list">
                        <div class="list_lf"><p>列表6</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
                <li>
                    <div class="list">
                        <div class="list_lf"><p>列表7</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
                <li>
                    <div class="list">
                        <div class="list_lf"><p>列表8</p></div>
                        <div class="list_rt"><p>删除</p></div>
                    </div>
                </li>
            </ul>
        </div>

css:

            .contain{
                width: 200px;
                height: 500px;
                margin: 100px auto;
                border: 1px solid #dcdcdc;
                background-color: #f5f5f5;
            }
            .contain ul {
                margin: 0;
                padding: 0;
                float: left;
                list-style: none;
            }
            .contain ul li{
                position: relative;
                width: 200px;
                height: 50px;
                border-bottom: 1px solid #000;
                overflow: hidden;
            }
            .contain ul li .list{
                position: absolute;
                top: 0;
                left: 0;
                width: 251px;
                height: 100%;
                overflow: hidden;
            }
            .contain ul li .list div{
                float: left;
            }
            .contain ul li .list .list_lf{
                width: 200px;
                overflow: hidden;
            }
            .contain ul li .list .list_lf p{
                width: 180px;
                padding-left: 20px;
            }
            .contain ul li .list .list_rt{
                width: 50px;
                border-left: 1px solid #dcdcdc;
                text-align: center;
            }

  js:

        var li = document.getElementById(‘list‘),
               spirit, startX, startY, x;
            // touch start listener
         
        function touchStart(event) {
                 event.preventDefault();
                 if (! event.touches.length) return;
                 var touch = event.touches[0];
                 startX = touch.pageX;
                 startY = touch.pageY;
        }
         
        // add touch start listener
        li.addEventListener("touchstart", touchStart, false);

        function touchMove(event) {
                 event.preventDefault();
                 if (!event.touches.length) return;
                 var touch = event.touches[0];
                 x = touch.pageX - startX;
                 // y = touch.pageY - startY;
                 console.log(x);   
                 li.style.webkitTransform = ‘translate(‘ + x + ‘px)‘;
        }
         
        li.addEventListener("touchmove", touchMove, false);

        function touchEnd(event){
            if (x<0&&x>-30) {
                li.style.webkitTransform = ‘translate(-51px)‘;
            }
            if (x<-30) {
                li.style.webkitTransform = ‘translate(-51px)‘;
            };
            if (x>0) {
                li.style.webkitTransform = ‘translate(0px)‘;
            };
        }

        li.addEventListener("touchend", touchEnd, false);

  等有时间再继续完善..原创,勿转.谢谢

仿QQ列表左滑删除

原文:http://www.cnblogs.com/mkSir/p/5159484.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!