我有一个图像填充整个图层,图像很大所以我滚动使用(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/
先谢谢。
答案 0 :(得分:1)
我最近遇到了一个非常类似的问题,原因是window.innerHeight
不准确。简单的解决方法是在我的文档顶部添加一个视口元标记。
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no">