- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我之前有一个基于 HTML5 Canvas 的应用程序,最近我将其转换为使用 Kinetic JS。我只需在包含的 div 上使用 Overflow: auto 即可在桌面浏览器和 IOS 中启用滚动。由于转换为使用 Kinetic 滚动,因此在移动/iPad 设备上不再起作用。
我尝试了几种不同的方法来解决这个问题,尽管我有点卡住了。首先,我尝试使用 touchscroll,尽管由于各种原因这对我不起作用(尽管库导致其他问题,但事情确实滚动了)。接下来,我尝试将 -webkit-overflow-scrolling: touch 选项添加到我的 div 样式中,尽管这似乎没有任何效果。
是否有滚动大于可视区域/div 的 Kinetic JS Canvas 的标准方法?
这是一个例子。如果您在 IOS 设备(iPad、iPhone 等)上查看该示例,您会注意到顶部 Canvas 不会在 div 内滚动,而底部 Canvas 则会滚动。
http://jsfiddle.net/blueshirts/uERVq/26/
<!-- KineticJS canvase, won't scroll on IOS devices. -->
<div id="container" style="overflow: auto; width: 400px; height: 400px; background- color: gray">
</div>
<br/>
<!-- Vanilla HTML5 Canvas, does scroll on IOS devices. -->
<div id="canvasContainer"
style="width: 400px; height: 400px; overflow: auto; background-color: red">
<canvas id="vanillaCanvas"
width="800" height="600">
</canvas>
</div>
// Create a stage instance that is larger than its parent div.
var stage = new Kinetic.Stage({
container: 'container',
width: 800,
height: 600
});
// Create a layer.
var layer = new Kinetic.Layer();
// Add some text...
var text = new Kinetic.Text({
text: "KineticJS generated Canvas that won't scroll to IOS touches...",
x: 0,
y: 0,
fontSize: 12,
fontFamily: 'Calibri',
textFill: 'Black'
});
layer.add(text);
// Add a rectangle to the layer so you can see if the content scrolls.
var rect = new Kinetic.Rect({
x: 50,
y: 50,
width: 200,
height: 100,
fill: "yellow",
stroke: "black",
strokeWidth: 7
});
layer.add(rect);
// Add the layer to the stage.
stage.add(layer);
// Create a "vanilla" canvas instance and draw the same rectangle on it.
var canvas = document.getElementById('vanillaCanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.rect(50, 50, 200, 100);
context.fillStyle = 'yellow';
context.fill();
context.lineWidth = 7;
context.strokeStyle = 'black';
context.stroke();
编辑:
可能是错误的,但在我看来,这个问题是由 Kinetic 在 Stage 类中注册 touchmove 事件(和其他事件)这一事实引起的。在处理程序中,它运行的 PreventDefault 似乎会阻止移动浏览器执行其默认滚动行为。如果“我”已经注册了 touchmove 事件,这可能是理想的。如果 Kinetic 不注册和处理我不感兴趣的事件,那就太好了。
_touchmove: function(evt) {
this._setUserPosition(evt);
var dd = Kinetic.DD;
evt.preventDefault();
我可以在这里演示这个问题:http://jsfiddle.net/blueshirts/P9RaT/28/
最佳答案
我认为这是 Kinetic JS 中的一个基本错误。如果我知道是这种情况,我就不会开始使用 Kinetic JS 来开展一个雄心勃勃的项目,因为它甚至无法完成基础知识。
由于 Kinetic 团队没有任何回应,我将切换到 bug 较少的库,例如 Fabric.js。
关于jquery - Kinetic js ipad滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13487233/
如果附加了 'not-scroll' 类,我希望我的 body 不滚动,否则它应该正常工作。 我已经搜索这个问题两天了,但找不到任何适合我的解决方案。 我想要的是向 body 添加一个 class,并
我发现似乎是 iOS Safari 中的错误(我正在 iOS 8 上进行测试)。当绝对定位的 iFrame 漂浮在一段可滚动内容上方时,滚动 iFrame 也会滚动下面的内容。以下 HTML (ava
我有以下代码来显示一系列投资组合图片,这些图片以 SVG 格式存储在滚动 div 中: 在 Safari 中滚动使用两根手指或鼠标滚轮当光标位于 SVG 之一上时不起作用。 该页
我想用 javascript 做的是: 一旦你向下滚动页面,将#sidebar-box-fixed 的位置从 position: relative; 更改为定位:固定;。改回position:rela
我对 Elasticsearch 的滚动功能有点困惑。在 elasticsearch 中,每当用户在结果集上滚动时,是否可以每次调用搜索 API?来自文档 "search_type" => "scan
我试图做到这一点,以便当我向上或向下滚动页面时,它会运行不同的相应功能。我发现了一个类似的问题here但我已经尝试了他们的答案并且没有运气。 注意:此页面没有正常显示的滚动条。没有地方可以滚动。 bo
(C语言,GTK库) 在我的表单上,我有一个 GtkDrawingArea 小部件,我在上面使用 Cairo 绘制 GdkPixbufs(从文件加载)。我想要完成的是能够在窗口大小保持固定的情况下使用
最近我一直在尝试创建一个拉到(刷新,加载更多)swiftUI ScrollView !!,灵感来自 https://cocoapods.org/pods/SwiftPullToRefresh 我正在努
我正在开发一个应用程序,其中有两个带有可放置区域的列表和一个带有可拖动项目的侧面菜单。 当我滚动屏幕时,项目的位置困惑。 我试图在谷歌上寻找一些东西,最后得到了这个问题:jQuery draggabl
我在 UIWebView 中加载了一个 HTML 表单,而我的 UIWebView 恰好从 View 的中间开始并扩展。我必须锁定此 webView 不滚动并将其放在 ScrollView 之上以允许
如何在每个元素而不是整个元素上应用淡入淡出(与其高度相比)? HTML: CSS: * { padding: 0; margin: 0; box-sizing: border
我想使用带有垂直轴的 PageView 并使用鼠标滚动在页面之间移动,但是当我使用鼠标滚动时页面不滚动...仅页面单击并向上/向下滑动时滚动。 有什么办法吗? 我想保留属性 pageSnapping:
我制作这个程序是为了好玩,但我被卡住了,因为程序在屏幕外运行。如何在不完全更改代码的情况下实现滚动条。 public static void main(String args[]) throws IO
我想使用带有垂直轴的 PageView 并使用鼠标滚动在页面之间移动,但是当我使用鼠标滚动时页面不滚动...仅页面单击并向上/向下滑动时滚动。 有什么办法吗? 我想保留属性 pageSnapping:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
使用 jquery 技术从 css-tricks.com 获得滚动/跟随侧边栏,如果您不知道我在说什么,这里是代码: $(function() { var $sidebar = $
我是 jQuery Mobile 新手。我需要向我的应用程序添加 Facebook 滑动面板功能。 我经历了 sliding menu panel ,它工作正常,但我在菜单面板中的内容超出了窗口大小,
有没有办法在 js 或 jQuery 或任何其他工具中检测 ctrl + 滚动。我正在尝试执行一些动态布局代码,我需要检测不同分辨率下的屏幕宽度,我通过使用 setTimeout() 的计时器实现了这
我有一部分html代码:
我想控制 RichTextBox 滚动,但在控件中找不到任何方法来执行此操作。 这样做的原因是我希望当鼠标光标位于 RichTextBox 控件上时鼠标滚轮滚动有效(它没有事件焦点:鼠标滚轮事件由表单
我是一名优秀的程序员,十分优秀!