猿问

scroll报错

我在做一个水平滑动的效果,效果有但是总报错,

就这个,代码就很简单

初始化一下


    setTimeout(function(){

        var myScroll = new IScroll("#wrapper",{

            scrollX:true,

        })

    },400)

这里加定时器是因为我用了angular.js不加定时器的话滑动是不生效的,这个我也不知道为什么,轮播也是这样,必须要加计时器.


炎炎设计
浏览 592回答 1
1回答

哆啦的时光机

一般我都不喜欢回答这么简单的问题,不过昨天到今天看到好多人怼大漠穷秋,心情有点爽,就写两句吧为什么会报错?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才能生效
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答