<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>js侧滑显示删除按钮</title>
<style>
*{margin:0;padding:0;}
body{font-size:.14rem;}
li{list-style:none;}
i{font-style:normal;}
a{color:#393939;text-decoration:none;}
.list{overflow:hidden;margin-top:.2rem;padding-left:.3rem;border-top:1px solid #ddd;}
.list li{overflow:hidden;width:120%;border-bottom:1px solid #ddd;}
.list li a{display:block;height:.88rem;line-height:.88rem;-webkit-transition:all 0.3s linear;transition:all 0.3s linear;}
.list li i{float:right;width:15%;text-align:center;background:#E2421B;color:#fff;}
.swipeleft{transform:translateX(-15%);-webkit-transform:translateX(-15%);}
</style>
<script>
//计算根节点HTML的字体大小
function resizeRoot(){
var deviceWidth = document.documentElement.clientWidth,
num = 750,
num1 = num / 100;
if(deviceWidth > num){
deviceWidth = num;
}
document.documentElement.style.fontSize = deviceWidth / num1 + "px";
}
//根节点HTML的字体大小初始化
resizeRoot(); window.onresize = function(){
resizeRoot();
};
</script>
</head>
<body>
<section>
<div class="list">
<ul>
<li><a href="#">侧滑显示删除按钮1<i>删除</i></a></li>
<li><a href="#">侧滑显示删除按钮2<i>删除</i></a></li>
<li><a href="#">侧滑显示删除按钮3<i>删除</i></a></li>
</ul>
</div>
<script>
//侧滑显示删除按钮
var expansion = null; //是否存在展开的list
var container = document.querySelectorAll('.list li a');
for(var i = 0; i < container.length; i++){
var x, y, X, Y, swipeX, swipeY;
container[i].addEventListener('touchstart', function(event) {
x = event.changedTouches[0].pageX;
y = event.changedTouches[0].pageY;
swipeX = true;
swipeY = true ;
if(expansion){ //判断是否展开,如果展开则收起
expansion.className = "";
}
});
container[i].addEventListener('touchmove', function(event){ X = event.changedTouches[0].pageX;
Y = event.changedTouches[0].pageY;
// 左右滑动
if(swipeX && Math.abs(X - x) - Math.abs(Y - y) > 0){
// 阻止事件冒泡
event.stopPropagation();
if(X - x > 10){ //右滑
event.preventDefault();
this.className = ""; //右滑收起
}
if(x - X > 10){ //左滑
event.preventDefault();
this.className = "swipeleft"; //左滑展开
expansion = this;
}
swipeY = false;
}
// 上下滑动
if(swipeY && Math.abs(X - x) - Math.abs(Y - y) < 0) {
swipeX = false;
}
});
}
</script>
</body>
</html>

移动自适应

 <script>
//计算根节点HTML的字体大小
function resizeRoot(){
var deviceWidth = document.documentElement.clientWidth,
num = 750,
num1 = num / 100;
if(deviceWidth > num){
deviceWidth = num;
}
document.documentElement.style.fontSize = deviceWidth / num1 + "px";
}
//根节点HTML的字体大小初始化
resizeRoot(); window.onresize = function(){
resizeRoot();
};
</script>

在实现的过程中,要注意父元素和子元素的一些样式,比如在父元素中设置box-sizing: border-box; 可以减少一些问题。

教程转载处:http://www.cnblogs.com/tnnyang/p/6429730.html

最新文章

  1. 这些年学过的FPGA
  2. Regex
  3. 向 Web 开发人员推荐35款 JavaScript 图形图表库
  4. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”
  5. 设计模式学习之工厂方法(Factory Method,创建型模式)(2)
  6. HtmlString类创建HTML Hepler 扩展MVC TextBox组件
  7. mysql函数计算地表两点间距离
  8. DeDeCMS 每次都被黑出翔了!!DEDECMS漏洞扫描
  9. 「Githug」Git 游戏通关流程
  10. hdoj 2183 奇数阶魔方(II) 【模拟】+【法】
  11. php接口interface的使用
  12. Online Judge(OJ)搭建——2、数据库,SQL语句
  13. Spring AOP 简介
  14. C# WebAPI系列(2)
  15. Tools - OpenSSL
  16. PHP从入门到精通(二)
  17. CentOS7.3将网卡命名方式设置为传统方式
  18. 开IE时 暴卡
  19. RxJava学习(一)——简介及其优势
  20. C# CefSharp 可监听请求等

热门文章

  1. 在ZABBIX平台上通过SNMP协议监控网络设备
  2. CSS公用
  3. GUI PasswordField
  4. MX4拍摄视频转码方法
  5. 初学者一些常用的SQL语句(一)
  6. JFrame的层次结构以及背景颜色设置问题
  7. js根据时间戳倒计时
  8. 让asp.net网站支持多语言,使用资源文件
  9. EsRejectedExecutionException排错与线程池类型
  10. Swift搭建服务端