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是一个很好的解决方案。本示例“iscroll移动app滚动分页demo...
其易用性和可定制性使得它在开发中广受欢迎,是实现高性能滚动效果的不二之选。然而,针对不同的项目需求,开发者也需要根据实际情况调整iscroll的配置,甚至与其他库(如React、Vue等)进行适配,以达到最佳效果。
首先,iscroll的核心在于它能够处理复杂的滚动场景,如嵌套滚动、固定定位元素等,通过硬件加速优化滚动性能。在分页滚动的应用场景下,iscroll可以用来创建一个虚拟滚动条,只加载视窗内的内容,从而减少页面内存...
iscroll 是一款轻量级的JavaScript库,由Matteo Spinelli开发,主要用于实现移动端和桌面端网页的高性能滚动效果。iscroll5是该库的一个版本,专注于解决移动设备上的滚动问题,提供平滑、流畅的滚动体验。在iscroll...
在移动Web开发中,由于浏览器的默认滚动行为与用户交互的期望不完全匹配,iscroll应运而生,它提供了一种自定义滚动效果的方式,支持高性能的滚动、平滑滚动、滚动条控制以及多种滚动方向(横向和纵向)。...
iScroll 5是一款广泛应用于移动端Web开发的局部滚动插件,尤其在HTML5环境中表现出色。...总的来说,iScroll 5是移动Web开发中的一个强大工具,对于创建高性能、用户体验优良的滚动效果有着不可忽视的作用。
在本文中,我们将深入探讨iscroll.js,一个用于实现高性能滚动效果的JavaScript库,特别是针对滚动加载(infinite scroll)的实例。iscroll.js通过优化滚动性能,使得在移动设备和桌面浏览器上都能流畅地处理大量的...
iScroll是一款轻量级的JavaScript库,由Matteo Spinelli开发,专门用于实现平滑的滚动效果和触摸事件处理。它支持各种设备,包括桌面浏览器、智能手机和平板电脑,兼容性广泛。在移动设备上,iScroll可以弥补原生...
首先,iScroll是一个轻量级、高性能的JavaScript滚动库,它使得在Web页面上实现类似iOS和Android原生滚动效果成为可能。iScroll 4.2.5版本是一个稳定且广泛使用的版本,提供了丰富的配置选项和事件处理,适用于各种...
iscroll是一款轻量级、高性能的JavaScript库,由Matteo Spinelli开发,主要用于处理触摸滚动和滚动事件。它支持各种设备和浏览器,包括桌面、手机和平板电脑,且兼容性良好。iscroll不仅提供基本的滚动功能,还能...
基于iScroll实现内容滚动效果是一种常见的技术,特别是在开发Web App时,为了实现类似原生应用的流畅滚动体验。iScroll是一款强大的JavaScript滚动插件,它能够提供诸如滚动、缩放、拉动刷新和自定义滚动条等多种...
`iscroll-lite`是一个轻量级的JavaScript库,专门用于解决手机端的滚动问题,提供流畅的滚动效果。本文将深入探讨`iscroll-lite`的相关知识点。 ### 1. `iscroll-lite`简介 `iscroll-lite`是`iScroll`库的一个简化...
Iscroll.el 滚动时图像跳入和跳出窗口的日子已经一去不复返了! 该软件包可在图像上平滑滚动。 由于某些技术问题,该代码还没有立即合并到Emacs中。 最终合并时,此软件包可以退出。 要使用此软件包: M-x ...
iScroll.js是一款专为移动端设计的滚动条插件,它主要解决了在WebKit浏览器(如iPhone、Android设备)中,由于浏览器自身的滚动性能问题而产生的滚动不流畅的现象。iScroll通过JavaScript实现了平滑、高效的滚动效果...
它能够处理复杂的滚动场景,如水平滚动、垂直滚动、嵌套滚动以及滚动条等,适用于各种Web应用程序和移动应用。 iscroll是由Cubiq开发的一个开源库,它的核心功能包括: 1. **高性能滚动**:iscroll通过硬件加速和...
**Iscroll滚动分页**是一种在网页开发中常用的滚动插件技术,主要应用于移动端和桌面端的滚动效果优化。IScroll是由Matteo Spinelli开发的高性能JavaScript滚动库,它提供了一种优雅的方式来处理触摸滚动、鼠标滚轮...
iScroll 是一个强大的JavaScript库,主要用于处理网页中的滚动效果,特别是在移动端或响应式设计中,它能提供平滑、高性能的滚动体验。在"iScroll 实例:下拉刷新,滚动翻页"这个主题中,我们将深入探讨如何利用...
iscroll 是一个轻量级、高性能的JavaScript滚动库,主要用于处理触摸设备上的滚动事件。它能够提供平滑、流畅的滚动效果,尤其在移动浏览器上表现卓越。iscroll 支持多种滚动场景,如滚动容器、轮播图、侧边栏等。在...