手机端如何用JS实现触屏

想做一个页面,需要可以触摸滑动导航,就是导航超出的部分隐藏,手指滑动的时候,隐藏的部分出来。如何用HTML5或者JS实现这个效果。分不多了,请大神帮忙。... 想做一个页面,需要可以触摸滑动导航,就是导航超出的部分隐藏,手指滑动的时候,隐藏的部分出来。如何用HTML5或者JS实现这个效果。分不多了,请大神帮忙。 展开
 我来答
地球仪826
推荐于2017-11-27 · TA获得超过101个赞
知道答主
回答量:146
采纳率:0%
帮助的人:94.4万
展开全部
//html5 新增 touch 事件
//禁用手机默认的触屏滚动行为
document.addEventListener('touchmove', function(event) {
event.preventDefault();
}, false);
//touchstart事件
function touchSatrtFunc(evt) {
try {
//evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等

var touch = evt.touches[0]; //获取第一个触点
var x = Number(touch.pageX); //页面触点X坐标
var y = Number(touch.pageY); //页面触点Y坐标
//记录触点初始位置
startX = x;
startY = y;


} catch (e) {
alert('touchSatrtFunc:' + e.message);
}
}

//touchmove事件,这个事件无法获取坐标
function touchMoveFunc(evt) {
try {
//evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等
var touch = evt.touches[0]; //获取第一个触点
var x = Number(touch.pageX); //页面触点X坐标
var y = Number(touch.pageY); //页面触点Y坐标


//document.getElementById("version").innerHTML = "原:"+startY+"   "+"现:"+y;
//判断滑动方向

if (y - startY > 100) {
swipeDown();
} else if(y - startY < -100){
swipeUp();
}
} catch (e) {
alert('touchMoveFunc:' + e.message);
}
}

//touchend事件
function touchEndFunc(evt) {
try {
//evt.preventDefault(); //阻止触摸时浏览器的缩放、滚动条滚动等


} catch (e) {
alert('touchEndFunc:' + e.message);
}
}

//绑定事件
function bindEvent() {
document.addEventListener('touchstart', touchSatrtFunc, false);
document.addEventListener('touchmove', touchMoveFunc, false);
document.addEventListener('touchend', touchEndFunc, false);
}

//判断是否支持触摸事件
function isTouchDevice() {
//document.getElementById("version").innerHTML = navigator.appVersion;

try {
document.createEvent("TouchEvent");
//alert("支持TouchEvent事件!");

bindEvent(); //绑定事件
} catch (e) {
alert("不支持TouchEvent事件!" + e.message);
}
}
bai738602552
2015-09-07 · TA获得超过355个赞
知道小有建树答主
回答量:172
采纳率:50%
帮助的人:48.5万
展开全部
手机端的触摸事件为touchstart,touchmove,touchend。如果使用第三方类库会封装更多的方法,比如,jQuery-mobile的tap,taphold等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
全网天下霸屏
2015-08-28 · 知道合伙人互联网行家
全网天下霸屏
知道合伙人互联网行家
采纳数:5592 获赞数:33347
专注全网营销,品牌推广,营销推广,网站运营,自媒体运营;如果求助没有及时回复,欢迎私信。

向TA提问 私信TA
展开全部

在实现触屏中,必须采用js的addEventListener,接着加上touchstart,touchmove,touchend来实现触屏效果。


e.preventDefault(),假设不写这一句,在触屏的时候,页面就会滑动,所以它的作用是巨大的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlmeimei1314
2015-09-09 · TA获得超过102个赞
知道小有建树答主
回答量:336
采纳率:0%
帮助的人:157万
展开全部
您可以了解一下jqm
在手机端实现触屏,加载,或者自适应都不错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式