`

iscroll开发多层滚动嵌套

阅读更多
iscroll开发多层滚动嵌套
iscroll设置滚动典型的结构为
复制代码
<div id="wrapper">
    <div id="scroller">
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        ...
    </div>
</div>
复制代码
wrapper作为滚动的外层容器  它的大小为屏幕上看到的区域大小   大小可以随便设置  如果高度等于scroller的高度 则水平滚动 否则垂直滚动
scroller作为滚动的内层容器   如果是水平滚动 可以设置高度为子元素的高度 宽度为所有子元素宽度之和
嵌套滚动时候需要根据滚动的方向和滚动内容的大小 动态调整容器大小
一个简单的用来生成滚动对象的类:
复制代码
//数据模板对象
var scrollModel = function(){
    this.wrapper = document.createElement("div");//外层容器ID
    this.scroller = document.createElement("div");//滚动对象ID
};
scrollModel.prototype = {
    setWrapperStyel:function(O){
        //设置外层容器属性
        for(var i in O){
            if(typeof(i) == "string"){
                this.wrapper.setAttribute(i,O[i]);
            }
        }
    },
    setScrollerStyel:function(O){
        //设置滚动容器属性
        for(var i in O){
            if(typeof(i) == "string"){
                this.scroller.setAttribute(i,O[i]);
            }
        }
    },
    setMemberInfo:function(htmlStr){
    //设置滚动容器的内容
        this.scroller.innerHTML = htmlStr;
    },
    show:function(){
        this.wrapper.appendChild(this.scroller);
        document.body.appendChild(this.wrapper);
       
    }
};
复制代码
如果需要在一个滚动容器中添加一个滚动容器需要重写show方法
外层的滚动容器
复制代码
    //信息页面外层左右滑动框架
    (function(){
            var sectionScroll = new scrollModel();
            sectionScroll.setWrapperStyel({"id":"sectionWraper","style":"width:"+screenSize().width+"px;height:"+(screenSize().height-100)+"px;"});
            sectionScroll.setScrollerStyel({"id":"sectionScroller","style":"height:"+(screenSize().height-100)+"px;"});
            sectionScroll.show();
    })();

复制代码
内层滚动容器
复制代码
    (function(){
        var thisNavNum = 0;
        for(var i in model.list[0]){
            thisNavNum++;
            (function(){
                var articleScroll = new scrollModel();
                articleScroll.setWrapperStyel({"id":i,"style":"width:"+screenSize().width+"px;height:"+(screenSize().height-100)+"px;"});
                //重写show方法
                var thisScrollId;
                articleScroll.show = (function(){
                    thisScrollId = i+"Scroller";
                    articleScroll.setScrollerStyel({"id":thisScrollId});
                    articleScroll.wrapper.appendChild(articleScroll.scroller);       
                })();           
                document.getElementById("sectionScroller").appendChild(articleScroll.wrapper);
            })();
        }
        $("#sectionScroller").width((screenSize().width*thisNavNum)+10);
        var sectionWraper = new iScroll("sectionWraper",{snap: true,momentum: false,hScrollbar:false,vScrollbar:false});
       
    })();
复制代码

嵌套最关键的一点需要注意事件的冒泡
可以修改iscroll源代码解决
            onBeforeScrollStart: function (e) {
                    if(e.srcElement.id.indexOf("_img_")>0||e.srcElement.parentNode.parentNode.id.indexOf("_img_")>0){                       
                        e.stopPropagation();
                    }
                    e.preventDefault();
                },

分享到:
评论

相关推荐

    iscroll移动app滚动分页demo

    在移动应用开发中,用户体验是至关重要的,尤其是对于数据量庞大的内容展示,如何优雅地处理滚动和分页问题,既能保证流畅性,又能减少网络请求,iscroll是一个很好的解决方案。本示例“iscroll移动app滚动分页demo...

    iscroll-4 滚动内容

    其易用性和可定制性使得它在开发中广受欢迎,是实现高性能滚动效果的不二之选。然而,针对不同的项目需求,开发者也需要根据实际情况调整iscroll的配置,甚至与其他库(如React、Vue等)进行适配,以达到最佳效果。

    iscroll分页滚动(加回到顶部)

    首先,iscroll的核心在于它能够处理复杂的滚动场景,如嵌套滚动、固定定位元素等,通过硬件加速优化滚动性能。在分页滚动的应用场景下,iscroll可以用来创建一个虚拟滚动条,只加载视窗内的内容,从而减少页面内存...

    iscroll5 滑动 滚动

    iscroll 是一款轻量级的JavaScript库,由Matteo Spinelli开发,主要用于实现移动端和桌面端网页的高性能滚动效果。iscroll5是该库的一个版本,专注于解决移动设备上的滚动问题,提供平滑、流畅的滚动体验。在iscroll...

    iscroll触屏滚动

    在移动Web开发中,由于浏览器的默认滚动行为与用户交互的期望不完全匹配,iscroll应运而生,它提供了一种自定义滚动效果的方式,支持高性能的滚动、平滑滚动、滚动条控制以及多种滚动方向(横向和纵向)。...

    iScroll 5 移动端 局部滚动插件

    iScroll 5是一款广泛应用于移动端Web开发的局部滚动插件,尤其在HTML5环境中表现出色。...总的来说,iScroll 5是移动Web开发中的一个强大工具,对于创建高性能、用户体验优良的滚动效果有着不可忽视的作用。

    iscroll.js滚动加载实例详解

    在本文中,我们将深入探讨iscroll.js,一个用于实现高性能滚动效果的JavaScript库,特别是针对滚动加载(infinite scroll)的实例。iscroll.js通过优化滚动性能,使得在移动设备和桌面浏览器上都能流畅地处理大量的...

    页面滚动分页---iScroll实例:下拉刷新,滚动翻页

    iScroll是一款轻量级的JavaScript库,由Matteo Spinelli开发,专门用于实现平滑的滚动效果和触摸事件处理。它支持各种设备,包括桌面浏览器、智能手机和平板电脑,兼容性广泛。在移动设备上,iScroll可以弥补原生...

    iScroll4.2.5下拉刷新滚动翻页

    首先,iScroll是一个轻量级、高性能的JavaScript滚动库,它使得在Web页面上实现类似iOS和Android原生滚动效果成为可能。iScroll 4.2.5版本是一个稳定且广泛使用的版本,提供了丰富的配置选项和事件处理,适用于各种...

    滚动分页,iscroll

    iscroll是一款轻量级、高性能的JavaScript库,由Matteo Spinelli开发,主要用于处理触摸滚动和滚动事件。它支持各种设备和浏览器,包括桌面、手机和平板电脑,且兼容性良好。iscroll不仅提供基本的滚动功能,还能...

    基于iScroll实现内容滚动效果

    基于iScroll实现内容滚动效果是一种常见的技术,特别是在开发Web App时,为了实现类似原生应用的流畅滚动体验。iScroll是一款强大的JavaScript滚动插件,它能够提供诸如滚动、缩放、拉动刷新和自定义滚动条等多种...

    手机端加滚动条iscroll-lite

    `iscroll-lite`是一个轻量级的JavaScript库,专门用于解决手机端的滚动问题,提供流畅的滚动效果。本文将深入探讨`iscroll-lite`的相关知识点。 ### 1. `iscroll-lite`简介 `iscroll-lite`是`iScroll`库的一个简化...

    iscroll:平滑滚动Emacs中的图像

    Iscroll.el 滚动时图像跳入和跳出窗口的日子已经一去不复返了! 该软件包可在图像上平滑滚动。 由于某些技术问题,该代码还没有立即合并到Emacs中。 最终合并时,此软件包可以退出。 要使用此软件包: M-x ...

    学习使用jquery iScroll.js移动端滚动条插件

    iScroll.js是一款专为移动端设计的滚动条插件,它主要解决了在WebKit浏览器(如iPhone、Android设备)中,由于浏览器自身的滚动性能问题而产生的滚动不流畅的现象。iScroll通过JavaScript实现了平滑、高效的滚动效果...

    手机滚动iscroll

    它能够处理复杂的滚动场景,如水平滚动、垂直滚动、嵌套滚动以及滚动条等,适用于各种Web应用程序和移动应用。 iscroll是由Cubiq开发的一个开源库,它的核心功能包括: 1. **高性能滚动**:iscroll通过硬件加速和...

    Iscroll滚动分页

    **Iscroll滚动分页**是一种在网页开发中常用的滚动插件技术,主要应用于移动端和桌面端的滚动效果优化。IScroll是由Matteo Spinelli开发的高性能JavaScript滚动库,它提供了一种优雅的方式来处理触摸滚动、鼠标滚轮...

    iScroll 实例:下拉刷新,滚动翻页

    iScroll 是一个强大的JavaScript库,主要用于处理网页中的滚动效果,特别是在移动端或响应式设计中,它能提供平滑、高性能的滚动体验。在"iScroll 实例:下拉刷新,滚动翻页"这个主题中,我们将深入探讨如何利用...

    iscroll demo

    iscroll 是一个轻量级、高性能的JavaScript滚动库,主要用于处理触摸设备上的滚动事件。它能够提供平滑、流畅的滚动效果,尤其在移动浏览器上表现卓越。iscroll 支持多种滚动场景,如滚动容器、轮播图、侧边栏等。在...

Global site tag (gtag.js) - Google Analytics