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

卿柠 2015-08-06 04:23:52
手机浏览器的网页,页面中间有一块区域的内容存在多个菜单项,一屏显示不全,需要左右滑动效果,该效果已实现,但是发现在该区域内手指只能左右滑动,上下滑动没反应,请问在此区域内怎么实现可以左右滑动又不影响页面上下滚动?

效果如图:


代码如下:


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);
});

...全文
2246 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
任志强 2017-05-27
  • 打赏
  • 举报
回复
和楼主的差不多,我也想实现手机网页左右滑动的效果,请教楼主能用css解决吗?或者还是用楼上的代码,还是有更好的方法
  • 打赏
  • 举报
回复
同求啊。我觉得这种水平滑动的很多的
xiaobaiping 2015-08-17
  • 打赏
  • 举报
回复
在吗,你这个做出来了吗,我也想要做这样的效果,手机天猫超出用了这个效果
卿柠 2015-08-10
  • 打赏
  • 举报
回复
这问题问的是太没技术含量了么~~都不屑一顾??
tony4geek 2015-08-07
  • 打赏
  • 举报
回复
这个是 jquery mobile 吗
卿柠 2015-08-07
  • 打赏
  • 举报
回复
都没有人指教指教,没有人帮个忙吗?
卿柠 2015-08-07
  • 打赏
  • 举报
回复
引用 2 楼 rui888 的回复:
这个是 jquery mobile 吗
请问 jquery mobile 如何让左右滑动的时候不控制上下滚动?

87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧