如何滚动滚动?我无法弄清楚它是如何滑动或滑动的

时间:2013-03-04 09:05:07

标签: javascript swipe iscroll

当我尝试在我的Android手机中向下滑动时,我的iscroll对象不会向下滑动到底部但距底部有一定距离。      像这样的HTML模板:

 /*The HTML template code like this:*/
 <div class="content">
    <div class="scroller">
       <div class="div1">
       </div>
    </div>
 </div>

 /*The javascript code like this:*/
 $.get(url, function(html){
                _this.$('.div1').html(html);
                _this.$('.div1').css('display','inline-block');
                var width=_this.$('.div1').width()||'400px';
                var height=_this.$('.div1').height()||'900px';
                //height+=210;
                if(width<=400)width=400;
                _this.$('.div1').css('width',width);
                _this.$('.div1').css('height',height);
                _this.$('.scroller').css('width',width);
                _this.$('.scroller').css('height',height);
                if(html.indexOf('errorpage')<=0)
                    _this.$('.div1').addClass('padding-all-4px');
                setTimeout(function () {
                    _this.scroll = new iScroll(_this.$('.content')[0],{
                        hScroll: true,
                        vScroll: true,
                        lockDirection: false,
                        zoom: true,
                        zoomMin: 0.5,
                        zoomMax: 4,
                        doubleTapZoom: 2
                    });
                }, 0);
            });

1 个答案:

答案 0 :(得分:2)

使用iScroll有两种方法。您可以使用iScroll的jScroll包装器或纯iScroll。为了使iScroll正确地工作到你附加iScroll的容器,它应该满足一些条件

  1. 容器应该具有相对或绝对的位置
  2. 容器应具有高度(如果您需要vScroll)和宽度(如果您想要hScroll)
  3. 应该隐藏容器溢出(这是由插件本身处理的)
  4. 您不需要为子容器设置任何高度。子容器高度应取决于其内容
  5. 尝试这样的事情。

    HTML模板代码如下:

    <div class="content">
        <div id="scroller_content">
           <div class="dynamic-content">
             <!-- you contents should be here -->
           </div>
        </div>
     </div>
    

    这样的javascript代码:

    var scrollContent = new iScroll('scroller_content', {
        /* other options goes here */
      }
    });
    

    如果您将内容动态加载到子容器,那么您可以做的是在加载内容后只需刷新iScroll对象

    scrollContent.refresh();
    

    如果您想在iScroll中使用iScroll,请尝试这样的操作。

    请说你启用了两个iScroll。 child_container 元素位于 parent_container 中。然后,

    var parentScroller, childScroller, childScrollerTimeout;
    
    parentScroller = new iScroll('parent_container',{
      /* other options goes here */
    });
    
    childScroller = new iScroll('child_container',{
      /* other options goes here */
      onBeforeScrollStart : function(e){
        clearTimeout(childScrollerTimeout);
        parentScroller.disable();
      },
      onScrollEnd:function(){
        childScrollerTimeout = setTimeout(function(){
         parentScroller.enable()},500);
        /* it is required to use timeout. If not second time onBeforeScroll will not work as expected */
      }
    });
    

    如果您不明白,请告诉我。我会进一步证明。如果我在这里犯了任何错误,请向我道歉。希望这至少会有所帮助.. :)