jquery手机触屏触摸左右滑动、上下滚动问题,急!

卿柠 卿柠 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
手机浏览器的网页,页面中间有一块区域的内容存在多个菜单项,一屏显示不全,需要左右滑动效果,该效果已实现,但是发现在该区域内手指只能左右滑动,上下滑动没反应,请问在此区域内怎么实现可以左右滑动又不影响页面上下滚动?

效果如图:


代码如下:


var speed = 200;
var x1,x2, direct;

function transformBox(obj,value,time){
var time=time?time:0;
transl="translate3d("+value+"px,0,0)";
obj.css({'-webkit-transform':transl,'-webkit-transition':time+'ms linear'});
}

/*功效滑动效果 begin */
var efficacySlider = $('#scroll_efficacy');//滑动容器
var ef_width=0; //滑动元素的总宽度
var offset = 0; //滑动的宽度
var e_cliWidth = document.body.clientWidth; //手机屏幕宽度

//计算所有标签的总长度
$('#scroll_efficacy').find('a').each(function(index){
ef_width += parseInt($(this).css('margin-left')) + parseInt($(this).css('margin-right')) + $(this).width();
});

efficacySlider.css({'width':Math.ceil(ef_width/e_cliWidth)*e_cliWidth+ 'px'}); //设置滑动容器宽度

efficacySlider.on('touchstart', function(e){
if(x2) x2 = undefined;
x1 = e.touches[0].pageX;
}).on('touchmove', function(e){
e.preventDefault();
x2 = e.touches[0].pageX;
}).on('touchend', function(e) {
if(x1 > x2) direct = 'left';
else direct = 'right';
}).swipe(function(e){
var offset_temp = offset + x2 - x1;

if(offset_temp > 0){
offset = 0;
}else if(Math.abs(offset) + e_cliWidth >= ef_width && direct == 'left'){
offset = offset;
}else{
offset = offset_temp;
}

transformBox(efficacySlider, offset, speed);
});

...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
卿柠
JavaScript 87,984 成员 224,681 内容