重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先我们需要实现自己的ListView来处理截获屏幕的事件,但不是由ListView处理,而是转发给自定义item控件处理,也就是实现的SlideView控件。根据处理手势设置item的状态,也就是说当已经滑动了,这个时候如果不获取item的状态,下次在滑动这个item的时候是不知道这个控件已经滑动了,不然就会有二次滑动,所以必须保存滑动状态。
创新互联建站专注于岫岩网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供岫岩营销型网站建设,岫岩网站制作、岫岩网页设计、岫岩网站官网定制、小程序设计服务,打造岫岩网络公司原创品牌,更为您提供岫岩网站排名全网营销落地服务。
点击事件不要使用onCLick而是在OnTouch(……)的MotionEvent.ACTION_UP中判断,如果左右滑动距离大于某个值视为滑动删除;否则视为点击事件即可;
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//……
break;
case MotionEvent.ACTION_UP:
if (再次判断手势滑动距离是否满足条件) {
如果满足视为滑动操作
} else {//否则 视为点击事件.避免事件冲突
**// 跳转
}
break;
}
return false;
}
鼠标的手势操作主要还是基于mousedown、mousemove、mouseup来实现。
触屏设备基于touchstart、touchmove、touchend来实现。
本身这两种设备就是不等同的。而且现实工作中。谁会搞一个既在PC浏览器上支持,又在触屏浏览器上支持的东西呢?因为我们的网站本来就是分为桌面版和触屏版。让用户自由选择好了,我们开发者区分对待。
更何况,二者的手势形势从根本上就是不同的。触屏设备支持多点触控,可以进行pinch(双指缩放)、rotate(双指旋转)、双指下拉、双指上推等等特殊手势。请问鼠标如何去实现呢?
所以说,我们作为前端开发,不要总期许有一个大而全,万能的大神,写一个啥都能干的东西出来。即便是大神也要考虑有所为,有所不为啊。
移动端推荐使用Hammer.js,很多手势调用。
多点触控插件Hammer.js,是一个开源的,轻量级的javascript库,它可以在不需要依赖其他东西的情况下识别触摸,鼠标事件。
还支持jQuery插件的形式调用
span class="tag" style="color: rgb(0, 0, 128);"span class="title"script src=""/scriptspan
$("#element")
.hammer({
// 对DOM进行一些初始化,这里可以加入一些参数
})
.bind("tap", function(ev) {
console.log(ev);
});
一个简单的解决方案:顶端固定一个DIV作为导航容器,该DIV左端和右端分别用DIV模拟向左和向右的按钮,中间区域呈现导航按钮,计算当前位置,用模拟的按钮控制左右滚动。
另,你说的手机端用手指滑动,在 HTML 中是由浏览器根据手势触控事件来支持的,jQuery 超越不了浏览器对 JS 的支持,因为 jQuery 就是 JS 的程序包。如果使用 Mouse 事件来实现,也不是不可以,因为手势触控的本质无非还是 Mouse 事件同源的衍生计算。费老鼻子劲使用 Mouse 事假实现一个有加速减速效果的导航滑动,不经济。供参考。
swipleft/right 是判断手指是向左还是向右滑动。
注意他只是个判断 ,没有那种拖动焦点图的那种效果。
不知道您是想用这个做什么效果?
$(document).bind('swiperight',function(){
config.$bookBlock.bookblock('prev');
}).bind('swipeleft',function(){
config.$bookBlock.bookblock('next');
});
如果您是想要滑动门的效果,那jquerymobile就办不到了。
可以搜索一下Swiper-master 这个插件,效果很棒的!