Jquery 如何获得swipeUp和swipeDown活动?
你好,我正在使用向上滑动和向下滑动功能。它在桌面上工作,但在移动浏览器上不工作。那么,请建议我如何修复它?我不想用jquery手机 这是我的jquery代码Jquery 如何获得swipeUp和swipeDown活动?,jquery,swipe,Jquery,Swipe,你好,我正在使用向上滑动和向下滑动功能。它在桌面上工作,但在移动浏览器上不工作。那么,请建议我如何修复它?我不想用jquery手机 这是我的jquery代码 var supportTouch = $.support.touch, scrollEvent = "touchmove scroll", touchStartEvent = supportTouch ? "touchstart" : "mousedown", touchStopEvent =
var supportTouch = $.support.touch,
scrollEvent = "touchmove scroll",
touchStartEvent = supportTouch ? "touchstart" : "mousedown",
touchStopEvent = supportTouch ? "touchend" : "mouseup",
touchMoveEvent = supportTouch ? "touchmove" : "mousemove";
$.event.special.swipeupdown = {
setup: function() {
var thisObject = this;
var $this = $(thisObject);
$this.bind(touchStartEvent, function(event) {
var data = event.originalEvent.touches ?
event.originalEvent.touches[ 0 ] :
event,
start = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ],
origin: $(event.target)
},
stop;
function moveHandler(event) {
if (!start) {
return;
}
var data = event.originalEvent.touches ?
event.originalEvent.touches[ 0 ] :
event;
stop = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ]
};
// prevent scrolling
if (Math.abs(start.coords[1] - stop.coords[1]) > 10) {
event.preventDefault();
}
}
$this
.bind(touchMoveEvent, moveHandler)
.one(touchStopEvent, function(event) {
$this.unbind(touchMoveEvent, moveHandler);
if (start && stop) {
if (stop.time - start.time < 1000 &&
Math.abs(start.coords[1] - stop.coords[1]) > 30 &&
Math.abs(start.coords[0] - stop.coords[0]) < 75) {
start.origin
.trigger("swipeupdown")
.trigger(start.coords[1] > stop.coords[1] ? "swipeup" : "swipedown");
}
}
start = stop = undefined;
});
});
}
};
$.each({
swipedown: "swipeupdown",
swipeup: "swipeupdown"
}, function(event, sourceEvent){
$.event.special[event] = {
setup: function(){
$(this).bind(sourceEvent, $.noop);
}
};
});
$(document).on('swipedown',function(){console.log("swipedown..");} );
$(document).on('swipeup',function(){console.log("swipeup..");});
var supportTouch=$.support.touch,
scrollEvent=“touchmove scroll”,
touchStartEvent=supportTouch?“touchstart”:“mousedown”,
TouchTopEvent=supportTouch?“touchend”:“mouseup”,
touchMoveEvent=supportTouch?“触摸移动”:“鼠标移动”;
$.event.special.swipeupdown={
设置:函数(){
var thisObject=this;
变量$this=$(thisObject);
$this.bind(touchStartEvent,函数(event){
var数据=event.originalEvent.touchs?
event.originalEvent.Touchs[0]:
事件
开始={
时间:(新日期)。getTime(),
coords:[data.pageX,data.pageY],
来源:$(event.target)
},
停止
函数moveHandler(事件){
如果(!开始){
返回;
}
var数据=event.originalEvent.touchs?
event.originalEvent.Touchs[0]:
事件
停止={
时间:(新日期)。getTime(),
coords:[data.pageX,data.pageY]
};
//防止滚动
if(Math.abs(start.coords[1]-stop.coords[1])>10){
event.preventDefault();
}
}
美元这个
.bind(touchMoveEvent、moveHandler)
.1(触摸屏事件、功能(事件){
$this.unbind(touchMoveEvent,moveHandler);
如果(启动和停止){
如果(停止时间-开始时间<1000&&
Math.abs(start.coords[1]-stop.coords[1])>30&&
Math.abs(start.coords[0]-stop.coords[0])<75){
起点
.触发器(“swipeupdown”)
.trigger(start.coords[1]>stop.coords[1]?“swipeup”:“swipedown”);
}
}
开始=停止=未定义;
});
});
}
};
元。每个({
swipedown:“swipeupdown”,
swipeup:“swipeupdown”
},函数(事件,sourceEvent){
$.event.special[事件]={
设置:函数(){
$(this.bind)(sourceEvent,$.noop);
}
};
});
$(document).on('swipdown',function(){console.log('swipdown..);});
$(document).on('swipeup',function(){console.log(“swipeup..);});
这是 此代码依赖jquery mobile设置
$.support。触摸
确定要绑定的事件。没有jquery mobile,这是未定义的,因此
touchStartEvent = supportTouch ? "touchstart" : "mousedown";
/* touchStartEvent will always = mousedown unless $.support.touch = true */
下面的代码可以在手机上使用,不过我不推荐使用。在这种情况下,没有理由不使用jquery mobile。jQuery将比您更好地处理跨平台/浏览器的不一致性,您可以使用8kb的触摸事件定制构建库。。。没什么,即使是AOL拨号用户也会说“哇,JS加载得真快”
$.support.touch=true;
var supportTouch=$.support.touch,
scrollEvent=“touchmove scroll”,
touchStartEvent=supportTouch?“touchstart”:“mousedown”,
TouchTopEvent=supportTouch?“touchend”:“mouseup”,
touchMoveEvent=supportTouch?“触摸移动”:“鼠标移动”;
$.event.special.swipeupdown={
设置:函数(){
var thisObject=this;
变量$this=$(thisObject);
$this.bind(touchStartEvent,函数(event){
var数据=event.originalEvent.touchs?
event.originalEvent.Touchs[0]:
事件
开始={
时间:(新日期)。getTime(),
coords:[data.pageX,data.pageY],
来源:$(event.target)
},
停止
函数moveHandler(事件){
如果(!开始){
返回;
}
var数据=event.originalEvent.touchs?
event.originalEvent.Touchs[0]:
事件
停止={
时间:(新日期)。getTime(),
coords:[data.pageX,data.pageY]
};
//防止滚动
if(Math.abs(start.coords[1]-stop.coords[1])>10){
event.preventDefault();
}
}
美元这个
.bind(touchMoveEvent、moveHandler)
.1(触摸屏事件、功能(事件){
$this.unbind(touchMoveEvent,moveHandler);
如果(启动和停止){
如果(停止时间-开始时间<1000&&
Math.abs(start.coords[1]-stop.coords[1])>30&&
Math.abs(start.coords[0]-stop.coords[0])<75){
起点
.触发器(“swipeupdown”)
.trigger(start.coords[1]>stop.coords[1]?“swipeup”:“swipedown”);
}
}
开始=停止=未定义;
});
});
}
};
元。每个({
swipedown:“swipeupdown”,
swipeup:“swipeupdown”
},函数(事件,sourceEvent){
$.event.special[事件]={
设置:函数(){
$(this.bind)(sourceEvent,$.noop);
}
};
});
$(document).on('swipdown',function(){console.log('swipdown..);});
$(document).on('swipeup',function(){console.log(“swipeup..);});
$.support.touch = true;
var supportTouch = $.support.touch,
scrollEvent = "touchmove scroll",
touchStartEvent = supportTouch ? "touchstart" : "mousedown",
touchStopEvent = supportTouch ? "touchend" : "mouseup",
touchMoveEvent = supportTouch ? "touchmove" : "mousemove";
$.event.special.swipeupdown = {
setup: function() {
var thisObject = this;
var $this = $(thisObject);
$this.bind(touchStartEvent, function(event) {
var data = event.originalEvent.touches ?
event.originalEvent.touches[ 0 ] :
event,
start = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ],
origin: $(event.target)
},
stop;
function moveHandler(event) {
if (!start) {
return;
}
var data = event.originalEvent.touches ?
event.originalEvent.touches[ 0 ] :
event;
stop = {
time: (new Date).getTime(),
coords: [ data.pageX, data.pageY ]
};
// prevent scrolling
if (Math.abs(start.coords[1] - stop.coords[1]) > 10) {
event.preventDefault();
}
}
$this
.bind(touchMoveEvent, moveHandler)
.one(touchStopEvent, function(event) {
$this.unbind(touchMoveEvent, moveHandler);
if (start && stop) {
if (stop.time - start.time < 1000 &&
Math.abs(start.coords[1] - stop.coords[1]) > 30 &&
Math.abs(start.coords[0] - stop.coords[0]) < 75) {
start.origin
.trigger("swipeupdown")
.trigger(start.coords[1] > stop.coords[1] ? "swipeup" : "swipedown");
}
}
start = stop = undefined;
});
});
}
};
$.each({
swipedown: "swipeupdown",
swipeup: "swipeupdown"
}, function(event, sourceEvent){
$.event.special[event] = {
setup: function(){
$(this).bind(sourceEvent, $.noop);
}
};
});
$(document).on('swipedown',function(){console.log("swipedown..");} );
$(document).on('swipeup',function(){console.log("swipeup..");});