- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我用的是最棒的javascript工具iScroll4 http://cubiq.org/iscroll-4在适用于 iOS 和 Android 的移动网站上。这是我的布局:
水平滚动区域使用 iScroll4,设置如下:
var myScroll = new iScroll('frame', { hScrollbar: false, vScrollbar: false, vScroll: false })
水平滚动部分效果很好。当用户尝试将手指放在水平滚动区域上向上或向下滚动页面时会发生此问题。所以我需要在同一区域进行原生垂直滚动和 iScroll 水平滚动。
到目前为止我尝试过的:删除 iScroll 代码中的 e.preventDefault()(允许 native 滚动,但在两个轴上)。删除 e.preventDefault() 然后禁用水平滚动页面宽度:
var touchMove;
document.ontouchstart = function(e){
touchMove = e.touches[0];
}
document.ontouchmove = function(e){
var theTouch = e.touches[0] || e.changedTouches[0];
var Xer = rs(touchMove.pageX - theTouch.pageX).toPos();
var Yer = rs(touchMove.pageY - theTouch.pageY).toPos();
touchMove = theTouch;
if(Yer > Xer){ e.preventDefault(); }
}
这似乎什么都不做。如何在不丢失 iScroll 的水平滚动的情况下允许水平滚动区域中的 native 垂直滚动?我在这里真的很困惑。提前致谢。
(仅作记录 rs(foo).toPos() 是一个使 foo 成为正数的函数,无论其值如何)。
最佳答案
如果您想在不破解核心、不从 iScroll 更改为 swipeview 的情况下实现 Fresheyeball 所描述的效果,那么 iScroll 4 确实为您提供了它的事件监听器。
myScroll = new iScroll('scrollpanel', {
// other options go here...
vScroll: false,
onBeforeScrollMove: function ( e ) {
if ( this.absDistX > (this.absDistY + 5 ) ) {
// user is scrolling the x axis, so prevent the browsers' native scrolling
e.preventDefault();
} else {
// delegate the scrolling to window object
window.scrollBy( 0, -this.distY );
}
},
});
通过这样做,onBeforeScrollMove
-Handler 检查滚动方向是否看起来是水平的,然后阻止默认处理程序,从而有效地将滚动操作锁定到 X 轴(尝试注释它出来,你会看到区别)。否则,如果滚动方向需要垂直,我们通过 window.scrollBy()
方法使浏览器滚动。这不完全是原生的,但工作得很好。
希望对你有帮助
卢克斯
[编辑]我原来的解决方案没有使用 window.scrollBy()
,在速度较慢的三星手机上不起作用,这就是我需要调整答案的原因。
关于javascript - iScroll 在一个轴上进行原生滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800261/
我有 2 个列表,我使用 iScroll 进行垂直滚动。 第二个列表在第一个列表中。 当我滚动第二个列表时,第一个列表也在滚动。 我希望当我滚动内部列表(第二个列表)时,主列表(第一个列表)不会滚动。
我在垂直内实现 Carousel 时遇到了问题我滚动。由于 Carousel 是水平滚动的,而 iScroll 是垂直滚动,它会导致故障,因为 Carousel 滚动垂直,即使我禁用它。 我尝试将两个
我有一个带有 IScroll 的 div 在另一个带有 IScroll 的 div 中。每当我尝试在子 div 上滚动时,父级也会滚动,所以这是一种糟糕的用户体验。 我不想获取每个变量并告诉它暂时禁用
我在 android phonegap 中创建了应用程序。我使用 iscoll 在 div 中动态显示滚动条,因为我附加了列表并动态显示。 它显示带有附加列表的div,但不显示滚动条。 在 logca
我创建了一个页面,该页面对页眉和页脚使用固定定位,并且还必须在 iPad/iPhone 上工作。我正在使用 iScroll.js (http://cubiq.org/iscroll-4) 在 iPad
我已经阅读了很多关于此的论坛,但没有一个解决了我的问题。我确定它是我遗漏的小东西 这是 iscroll 初始化: // make PI scroll piScroll2 = new iScroll('
我有一个带有交互式滚动条的水平 iScroll 实例。 myScroll = new IScroll('#wrapper', { scrollX: true,
我正在尝试使用 IScroll 库中的scrollToElement 函数,但无法让它工作。 new IScroll(document.querySelector(".wrapper")).scrol
我正在尝试使用 iscroll 插件 ( https://github.com/cubiq/iscroll ) 为 div 添加滚动功能。我发现它使滚动父项内的链接不可单击。禁用该插件可以修复它。 起
我正在 iOS 和 Android 上的 Phonegap 上开发一个演示,我选择 iScroll 来使页面可滚动,它工作正常,但我必须在创建 DOM 元素后生成 iScroll,因此 iScroll
有谁知道怎么做iScroll像旋转木马一样,有没有办法制作 iScroll自动在“ul”内循环? 因为我想在 iOS 上使用它,所以我一直在想办法.. 非常感谢您抽出时间。 最佳答案 以下内容应该有效
iPad 上 Mobile Safari 中的 HTML5 模板。带 iScroll 的 Div 工作正常。 if/else 语句中还包含一个 jQuery 函数。该函数测试用户是否在 iScroll
如果您输入http://gizeto.se/app_yellow/index.html你可以看到 iScroll 滚动整个页面。您可以看到滚动条位于页眉和页脚上方。滚动条应该只滚动内容,不包括页眉和页
我有一个 iOS 网络应用程序,它被证明在滚动方面非常困难! iScroll 4 终于解决了这个问题。但是,当我将手指从屏幕上移开时,滚动部分似乎又回到了原来的位置。 有人知道为什么会这样以及如何解决
我是这样调用它的 document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false); docume
我试图了解视差如何与 iscroll5 配合使用。据我了解,我可以将容器定义为改变滚动速度的指示器。然而我需要做的是同时对多个元素应用速度比。 让我们以下面的示例为例,如何立即更改所有 h2 元素的
如何防止 iScroll 移出页面? https://github.com/cubiq/iscroll/blob/master/demos/simple/index.html 即。这个: 向上滚动时变
我想在 ipad 中滚动 div。我用的是滚动。像这样: $(document).on("pagecreate",function(event){ var myScroll = new IS
iScroll 文档显示了典型的 iScroll 设置,如下所示。 var myScroll; function loaded() { setTimeout(function () {
我想知道是否可以使用 IScroll,更具体地说是 Angular 版本 (github.com/mtr/angular-iscroll),即使内容没有溢出?因此,可以拖动一个非溢出列表(见下图)并用
我是一名优秀的程序员,十分优秀!