仿QQ列表左滑删除
一直想写个仿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列表左滑删除的更多相关文章
- 类似QQ消息左滑删除的Demo
最近在网上学到一篇类似QQ消息左滑删除的demo,完善了下代码,感觉还不错,特此分享一波: CustomSwipeListView.java 是个继承自ListView的类,里面调用了自定义View ...
- 使用zepto实现QQ消息左滑删除效果
有这样一个需求: 1. 有一个列表,将每一个列表项左滑动出现删除按钮: 2. 右滑动隐藏删除按钮: 3. 点击这个删除按钮删除该列表项. 完成以后的效果: 这是微信网页端的页面,使用的是 zepto ...
- Android ListView实现仿iPhone实现左滑删除按钮
需要自定义ListView.这里就交FloatDelListView吧. 复写onTouchEvent方法.如下: @Override public boolean onTouchEvent(Moti ...
- Android开发学习之路-PopupWindow和仿QQ左滑删除
这周作业,要做一个类似QQ的左滑删除效果的ListView,因为不想给每个item都放一个按钮,所以决定用PopupWindow,这里记录一下 先放一下效果图: 先说明一下这里面的问题: ①没有做到像 ...
- android QQ消息左滑动删除实例(优化版SwipeListViewEX)
仿 QQ消息左滑动删除item消息实例 源代码参考:http://blog.csdn.net/gaolei1201/article/details/42677951 自己作了一些调整,全部代码下载地址 ...
- js高仿QQ消息列表左滑功能
该组件,主要功能类似于QQ消息列表左滑出现删除.标为已读等按钮的功能:现在的版本用的是纯javaScript编写:后续会跟进 angularJs 开发的类似组件以及jquery的; 下面,就让我们来认 ...
- [转]ANDROID仿IOS微信滑动删除_SWIPELISTVIEW左滑删除例子
转载:http://dwtedx.sinaapp.com/itshare_290.html 本例子实现了滑动删除ListView的Itemdemo的效果.大家都知道.这种创意是来源于IOS的.左滑删除 ...
- Android滑动列表(拖拽,左滑删除,右滑完成)功能实现(1)
场景: 近期做的TODO APP需要在主页添加一个功能,就是可以左滑删除,右滑完成.看了一下当前其他人做的例如仿探探式的效果,核心功能基本一样,但是和我预想的还是有少量区别,于是干脆自己重头学一遍如何 ...
- [Phonegap+Sencha Touch] 移动开发72 List列表横向滑动操作(仿QQ列表滑动删除)
原文链接:http://blog.csdn.net/lovelyelfpop/article/details/50425744 本插件有2个版本号:sencha touch 版本号和 extjs6 m ...
随机推荐
- SeekBar 圆角问题
用图片做背景色,最后处理成.9.png的.用普通png图片做背景,则两边会有圆角出现,原因是图片不适合SeekBar尺寸,因而被拉伸或压缩,从而产生圆角. <?xml version=" ...
- 很多事情就像看A片,看的人觉得很爽,做的人未必。
http://m.jingdianju.com/wzgs/shenghuo/201307185135.html 转载自: 从这个角度上来说,我不太赞成过于关注第一份工作的薪水,更没有必要攀比第一份工作 ...
- 改变jboss部署目录(虚拟目录)
笔记: 在开发过程中,有时候我们希望将程序放在我们的源代码目录中,比如d:\code下,而不是放在jboss的deploy下,怎么办? 我们知道,jboss中集成了tomcat,因此跟tomcat一样 ...
- MongoDB学习:(二)MongoDB简单使用
MongoDB学习:(二)MongoDB简单使用 MongoDB使用: 执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面 >mongo 提示该错误,说明我们系统缺少一个补丁,该 ...
- JS编写全选,复选按钮
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Handler使用总结(转)
方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型) 刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread ...
- jfreechart 整合sturts2牛刀小试
一.增加的jar包 struts2-jfreechart-plugin-2.1.6.jar 在struts2的相应jar包中找 jcommon-1.0.23.jar ...
- Python.with.context-manager
Context Manager 1. Context Manager简介 "Context managers are a way of allocating and releasing so ...
- Linux分析日志获取最多访问的前10个IP
原文地址:http://xuqq999.blog.51cto.com/3357083/774714 apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问 ...
- 如何将C++代码逆向生成类图 (VS2013)
1. 将代码添加到VS2013工程中: 2. 切换到"类视图": 3. 选中项目 右键"视图"->"查看类图". 如果项目文件太多的话 ...