为了账号安全,请及时绑定邮箱和手机立即绑定

scroll报错

scroll报错

炎炎设计 2018-12-12 11:17:03
我在做一个水平滑动的效果,效果有但是总报错,就这个,代码就很简单初始化一下    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才能生效


查看完整回答
反对 回复 2019-01-09
  • 1 回答
  • 0 关注
  • 591 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信