IOS设备上网页中的页面滚动效果模拟

可能咋一看不知道我说的是个啥,因为ios本来就用这功能的啊,还模拟它干啥?先听我说下项目背景哈

我现在开发的是一个webapp,主要是用在ipad上,这个app的大小是固定大小的,为了防止触摸它出现弹性滚动,我加个句代码:

$(document).bind('touchmove', function(e) {			
    e.preventDefault();
});

这样这个页面就被我锁死了,不会出现讨厌的弹性滚动了,再加上一些meta属性(我的blog里有这些)全屏啥的,基本上跟nativeapp无异了。

但是呢,问题出来了,里面有个div里面内容比较多,需要用到滚动条,现在的问题是,我的网页里设置这个div的overflow为scroll后,触摸这个div不能滚动了!我先试着把上面的代码注释点,发现可以滚动了,但是效果很差,没有ios自带的那种手离开后还会滚动一会的那种“刹车”的效果,于是呢,就想着自己搞一个出来,于是就写了一个jquery插件,实现了上下左右滑动和轻拍(因为点击事件在ipad上有半秒延迟),下面会有下载地址。关于滚动效果呢,是我花了一整天时间研究出来的,觉得收获很大,所以拿出来跟大家分享下,以下是一些核心代码:

(function show(time){		
							if(!source.animation){return;}
							source.animation = window.setTimeout(function(){
								if(time > 90){ return; }								
								X && $self.scrollLeft($self.scrollLeft() - ha(time,speedX) * aa );
								Y && $self.scrollTop($self.scrollTop() - ha(time,speedY) * aa );								
								show(++time);
							},aa);
						})(1);

函数ha:

function ha(x,maxSpeed){
							//return maxSpeed / x;//y = 100 / x;
							//return maxSpeed - maxSpeed / 100 *
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值