一直想写个仿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列表左滑删除的更多相关文章

  1. 类似QQ消息左滑删除的Demo

    最近在网上学到一篇类似QQ消息左滑删除的demo,完善了下代码,感觉还不错,特此分享一波: CustomSwipeListView.java 是个继承自ListView的类,里面调用了自定义View ...

  2. 使用zepto实现QQ消息左滑删除效果

    有这样一个需求: 1. 有一个列表,将每一个列表项左滑动出现删除按钮: 2. 右滑动隐藏删除按钮: 3. 点击这个删除按钮删除该列表项. 完成以后的效果: 这是微信网页端的页面,使用的是 zepto ...

  3. Android ListView实现仿iPhone实现左滑删除按钮

    需要自定义ListView.这里就交FloatDelListView吧. 复写onTouchEvent方法.如下: @Override public boolean onTouchEvent(Moti ...

  4. Android开发学习之路-PopupWindow和仿QQ左滑删除

    这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...

  5. android QQ消息左滑动删除实例(优化版SwipeListViewEX)

    仿 QQ消息左滑动删除item消息实例 源代码参考:http://blog.csdn.net/gaolei1201/article/details/42677951 自己作了一些调整,全部代码下载地址 ...

  6. js高仿QQ消息列表左滑功能

    该组件,主要功能类似于QQ消息列表左滑出现删除.标为已读等按钮的功能:现在的版本用的是纯javaScript编写:后续会跟进 angularJs 开发的类似组件以及jquery的; 下面,就让我们来认 ...

  7. [转]ANDROID仿IOS微信滑动删除_SWIPELISTVIEW左滑删除例子

    转载:http://dwtedx.sinaapp.com/itshare_290.html 本例子实现了滑动删除ListView的Itemdemo的效果.大家都知道.这种创意是来源于IOS的.左滑删除 ...

  8. Android滑动列表(拖拽,左滑删除,右滑完成)功能实现(1)

    场景: 近期做的TODO APP需要在主页添加一个功能,就是可以左滑删除,右滑完成.看了一下当前其他人做的例如仿探探式的效果,核心功能基本一样,但是和我预想的还是有少量区别,于是干脆自己重头学一遍如何 ...

  9. [Phonegap+Sencha Touch] 移动开发72 List列表横向滑动操作(仿QQ列表滑动删除)

    原文链接:http://blog.csdn.net/lovelyelfpop/article/details/50425744 本插件有2个版本号:sencha touch 版本号和 extjs6 m ...

随机推荐

  1. Google统计

    <!-- Google Analytics --><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i ...

  2. android隐藏底部虚拟键Navigation Bar实现全屏

    隐藏底部虚拟键Navigation Bar实现全屏有两种情况 第一种:始终隐藏,触摸屏幕时也不出现 解决办法:同时设置以下两个参数 View.SYSTEM_UI_FLAG_HIDE_NAVIGATIO ...

  3. python集合(set)操作

    python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和 ...

  4. hdu 2586 How far away ?(离线求最近公共祖先)

    #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #i ...

  5. C# SHA1散列算法

    C# SHA1散列算法 /// <summary> /// C# SHA1散列算法 /// </summary> /// <param name="str&qu ...

  6. WIN32_LEAN_AND_MEAN宏

    网上说: 不加载MFC所需的模块. 用英语解释:Say no to MFC 如果你的工程不使用MFC,就加上这句,这样一来在编译链接时,包括最后生成的一些供调试用的模块时,速度更快,容量更小. 我们经 ...

  7. 互联网商业模式O2O、C2C、B2B、B2C等介绍

    O2O是online to offline分为四种运营模式: 1.online to offline是线上交易到线下消费体验 2.offline to online是线下营销到线上交易 3.offli ...

  8. SQL 存储过程优化经验

    经现场同事反映,他们用的好好的XML 导出工具最近一直报错,经常报数据库连接超时,查看数据库发现已经有100G 以上有空间了. 但导出数据的存储过程里面每次按时间只导1000多条数据,近理说有时间过滤 ...

  9. Linux下高cpu占有率的调试方案

    1.用top命令查看哪个进程占用CPU高 gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值.   2.用top -H -p pid命令查看进程内各个线 ...

  10. webform的页面缓存

    给页面添加<%@ OutputCache Duration="10" VaryByParam="*"%>标签就可以启用页面缓存. Duration表 ...