我在做一个水平滑动的效果,效果有但是总报错,就这个,代码就很简单初始化一下 setTimeout(function(){ var myScroll = new IScroll("#wrapper",{ scrollX:true, }) },400)这里加定时器是因为我用了angular.js不加定时器的话滑动是不生效的,这个我也不知道为什么,轮播也是这样,必须要加计时器.
1 回答
哆啦的时光机
TA贡献1779条经验 获得超6个赞
一般我都不喜欢回答这么简单的问题,不过昨天到今天看到好多人怼大漠穷秋,心情有点爽,就写两句吧
为什么会报错?
IScroll要滑动,先要保证有两个div,一个wrapper,一个scroller,wrapper宽高是固定的,scroller能滚多远要依据wrapper来计算,所以,当你new IScroll的时候,如果找不到scroller就会报上图的错误,因为IScroll默认是使用第一个子元素作为scroller的。
为什么在Angular上要用定时器?
Angular是一个MVVM框架,会先执行js运算再渲染html视图,虽然我没用过Angular做过项目,但原理多少解理一些,执行js运算时只对你的html结构进行处理,事实上你的html还没在浏览器渲染出来,即是说还没有高度和宽度,滑动插件计算不出正确的滑动数值,因此滑不动,setTimeout之后视图渲染完成有了宽高再new IScroll或iscroll.refresh才能生效
添加回答
举报
0/150
提交
取消