繁体   English   中英

拖动KineticJS不仅可以拖动整个页面,还可以移动整个页面

[英]Dragging in KineticJS moves the whole page not just the draggable

我有一个填充整个图层的图像,该图像很大,所以我使用(在图层上拖动:true)滚动,然后在其上方绘制一条线。 问题是在Windows Phone 8中,当我将设备的高度和宽度设置为设备的高度和宽度时,宽度很好,但高度过长超过手机高度的两倍,左右滚动缓慢(每个touchevent移动1帧) ),上下滚动可自行滚动页面(因为页面很高),而不滚动层的内容。 另外,当我在单独的函数中添加该行时,它根本不会显示。

<div id="content" data-role="content" class="high">
        <script type="text/javascript" src="javascript/map.js"></script>

        <script>
             var stage = new Kinetic.Stage({
                container: 'content',
                width: window.innerWidth,
                height: (window.innerHeight * 73) / 100
            });

            var layer = new Kinetic.Layer({
                draggable: true
            });

            var imageObj = new Image();
            imageObj.onload = function () {
                var yoda = new Kinetic.Image({
                    x: 0,
                    y: 0,
                    image: imageObj,
                    width: 1964,
                    height: 1289

                });
                layer.add(yoda);
                stage.add(layer);
            }
            imageObj.src = 'image/map-04.png';

            navigate("A","B");

        </script>
</div>

这是导航功能

function navigate(from, to, layer) {
    var redLine = new Kinetic.Line({
        points: [73, 70, 340, 23, 450, 60, 500, 20],
        stroke: 'red',
        strokeWidth: 15,
        lineCap: 'round',
        lineJoin: 'round'
    });

    layer.add(redLine);
    layer.draw();
}

这是一个JSFiddle http://jsfiddle.net/3LpVS/

提前致谢。

最近,我遇到了一个非常类似的问题,该问题是由window.innerHeight不准确引起的。 简单的解决方法是在文档顶部添加视口元标记。

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM