微信里ios touchmove事件件不支持吗

推荐这篇日记的豆列
······匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。监听用户的touchmove操作,导致input等不能输入内容,点击事件不能执行
监听用户的touchmove操作,导致input等不能输入内容,点击事件不能执行
移动端页面使用touchmove等手势滑动切换页面而导致input,botton表单提交,点击事件不能执行,使用/duanhuajian/archive//2763159.html该网站里面提供的方法也没有解决,不知道那位大神有方法
代码如下:
$(function(){
var imgdefereds=[];
$('.app-content7').find('img').each(function(){
var dfd=$.Deferred();
$(this).bind('load',function(){
dfd.resolve();
}).bind('error',function(){
//图片加载错误,加入错误处理
dfd.resolve();
setTimeout(function(){
$('#loading').fadeOut();
new slider_init();
plete) setTimeout(function(){
dfd.resolve();
imgdefereds.push(dfd);
$.when.apply(null,imgdefereds).done(function(){
//callback(); // 全部图片加载完成触发的回调函数
setTimeout(function(){
$('#loading').fadeOut();
new slider_init();
function slider_init(){//init
this.page = $('.page');
this.Content = $('.app-content');
this.z = 10;
this.DY,this.MY,this.UY;
this.mark =
this.h = this.Content.innerHeight();
var _this =
this.page.on('touchstart',function(e){
if(!_this.mark)
_this.mark =
_this.start(e,$(this));
this.page.on('mousedown',function(e){
if(!_this.mark)
_this.mark =
_this.start(e,$(this));
slider_init.prototype.start = function(e,obj){//鼠标按下
this.page.css({
"-webkit-transition":"none",
"-webkit-transform":"none"
var ev =event ||
if(ev.targetTouches){
var touch = ev.targetTouches[0];
this.DY = touch.pageY;
this.DY = ev.clientY;
this.next = 0;
this.prev = 0;
this.index = obj.index();
this.a = this.h / this.h;
this.c = this.h / 10;
var _this =
this.page.on('touchmove',function(e){
_this.move(e);
this.page.on('touchend',function(e){
_this.end(e);
this.page.on('mousemove',function(e){
_this.move(e);
this.page.on('mouseup',function(e){
_this.end(e);
slider_init.prototype.move = function(e){//鼠标移动
var ev =event ||
if(ev.targetTouches){
var touch = ev.targetTouches[0];
if(touch.pageY - this.DY == 0)
this.MY= touch.pageY;
var Y = touch.pageY;
if(ev.clientY - this.DY == 0)
this.MY= ev.clientY;
var Y = ev.clientY;
this.MY= (this.MY-this.DY);
if(Y & this.DY){
this.prev = this.
this.next = this.index + 1;
if(this.next & this.page.length - 1){
this.next = 0;
this.page.eq(this.prev).css('-webkit-transform-origin','50% 0')
this.page.eq(this.next).removeClass('active2');
if(!this.page.eq(this.next).hasClass('active')){
this.page.eq(this.next).addClass('active');
this.MY = this.h + this.MY;
this.next = this.index - 1;
this.prev = this.
if(this.next == -1){
this.next = this.page.length - 1;
this.page.eq(this.prev).css('-webkit-transform-origin','50% bottom');
this.page.eq(this.next).removeClass('active');
if(!this.page.eq(this.next).hasClass('active2')){
this.page.eq(this.next).addClass('active2');
this.MY = -this.h + this.MY;
next_page = this.page.eq(this.next);
prev_page = this.page.eq(this.prev);
this.b = Math.abs(this.MY) / this.a;
this.d = (this.b / this.h) & 1 ? 1 : (this.b / this.h) & 0 ? 0.1 : (this.b / this.h);
prev_page.css({
'-webkit-transform':'scale('+this.d+')',
"opacity":this.d
next_page.css({
'top':this.MY+"px",
'zIndex':this.z
slider_init.prototype.end = function(e){//鼠标松开
var ev =event ||
if(ev.changedTouches){
var touch = ev.changedTouches[0];
this.UY = touch.pageY;
this.UY = ev.clientY;
this.page.unbind('mousemove');
this.page.unbind('mouseup');
this.page.unbind('touchmove');
this.page.unbind('touchend');
var _this =
if(this.UY - this.DY == 0){
this.mark =
if(Math.abs(this.UY - this.DY) & 50){
if(this.UY & this.DY){
var t = -100;
var t = 100;
this.page.eq(this.next).removeClass('active').removeClass('active2').css({
'top':t+'%',
"-webkit-transition":"top cubic-bezier(0.250, 0.460, 0.450, 0.940) 0.4s",
'display':'block'
this.page.eq(this.prev).css({"-webkit-transform":'scale(1)',"-webkit-transition":"-webkit-transform 0.4s cubic-bezier(0.250, 0.460, 0.450, 0.940)"});
_this.mark =
var _this =
this.page.eq(this.next).stop().animate({textIndex:0+'%'},{
step:function(i){
var t = Math.abs(_this.page.eq(_this.next).position().top);
var kg = Math.abs(t) / _this.a;
var scal = (kg / _this.h) & 1 ? 1 : (kg / _this.h) & 0 ? 0.1 : (kg / _this.h);
_this.page.eq(_this.prev).css({"-webkit-transform":"scale("+scal+")","opacity":scal});
this.page.eq(this.next).addClass('current').css({'top':"0",'zIndex':this.z,"-webkit-transition":"top 0.4s cubic-bezier(0.250, 0.460, 0.450, 0.940)"});
setTimeout(function(){
_this.page.eq(_this.prev).removeClass('current').css({'top':"100%",'-webkit-transform':'none',"opacity":1});
_this.page.eq(_this.next).removeClass('active').removeClass('active2');
_this.mark =
试一试,事件代理。
Copyright & 2016 phpStudytouchmove事件event.pag-中国学网-中国IT综合门户网站
> 信息中心 >
touchmove事件event.pag
来源:互联网 发表时间: 16:45:52 责任编辑:王亮字体:
为了帮助网友解决“touchmove事件event.pag”相关的问题,中国学网通过互联网对“touchmove事件event.pag”相关的解决方案进行了整理,用户详细问题包括:本帖最后由 cf 于
08:32:44 编辑$(document).ready(function(){var&isdown&=&function&start(event){isdown&=&}function&move(event){if(isdown){$('#test').append('&p&'&+&event.pageY&+&'&/p&');}}function&end(event){isdown&=&}$('#test').bind({touchstart:start,touchmove:move,touchend:end,mousedown:start,mousemove:move,mouseup:end});});在&div&id="test"&&/div&显示undefined,怎么才能显示为正确的值,是电脑端能正确取值,手机端为undefined,具体解决方案如下:解决方案1:function&move(event){if(isdown){console.log(event.type);if(event.type&==&"mousemove"){$('#test').append('&p&'&+&event.pageY&+&'&/p&');}else&if&(event.type&==&"touchmove"){//你想要获取的是触点的位置?这个属性没有在event对象上面的。//touch事件中,有三个属性是可以获取到这个pageY的,分别为touches,changedTouches,targetTouches,//这三个都是数组,所以可以取值数组中的第一个元素,然后再取它的pageY即可。$('#test').append('&p&'&+&event.touches[0].pageY&+&'&/p&');}}}手机端和电脑端,触发的事件不同,所以保存到的位置也是不同的,可以查看一下:移动端的touch事件(三)解决方案2:谢谢你,不过我想要手指在滑动时,能实时获取到触点的位置,这种方法手指在屏幕上滑的时候,取不到值,点一下却有值,还望大神想想办法解决方案3:touchmove只有在touchstart的时候,才会触发一次,再以后都不会再次触发的,(正常情况下,会是这样的情况)如果你想要touchmove一直被触发,那么就只能再touchstar和touchmovet时,阻止默认动作的执行。function&start(e){e.preventDefault();isdown&=&}function&move(e){e.preventDefault();&&&&&&&&if(isdown){&&&&&&&&&&&&if(event.type&==&"mousemove"){&&&&&&&&&&&&&&&&$('#test').append('&p&'&+&event.pageY&+&'&/p&');&&&&&&&&&&&&}else&if&(event.type&==&"touchmove"){&&&&&&&&&&&&&&&&//你想要获取的是触点的位置?这个属性没有在event对象上面的。&&&&&&&&&&&&&&&&//touch事件中,有三个属性是可以获取到这个pageY的,分别为touches,changedTouches,targetTouches,&&&&&&&&&&&&&&&&//这三个都是数组,所以可以取值数组中的第一个元素,然后再取它的pageY即可。&&&&&&&&&&&&&&&&$('#test').append('&p&'&+&event.touches[0].pageY&+&'&/p&');&&&&&&&&&&&&}&&&&&&&&}&&&&}但是这个时候,在这个区域滑动时,页面就不会跟着滚动了。解决方案4:谢谢你,虽然还有点小问题,加上屏蔽默认,但还是只取一次,但是你的回答让我学到了知识,项目紧,我先用isroll.js解决了,回头再好好研究
1个回答2个回答3个回答2个回答1个回答1个回答1个回答2个回答2个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 中国学网 版权所有
京ICP备号-1 京公网安备02号

我要回帖

更多关于 js touchmove事件 的文章

 

随机推荐