gpt4 book ai didi

KineticJS: overflow hidden 层的内容

转载 作者:行者123 更新时间:2023-12-04 02:52:51 24 4
gpt4 key购买 nike

我正在尝试将图像添加到 Canvas ,但要将其限制为放置它的层的大小。我为 widthheight层,但它仍然没有做我想要的。如果内容在边界外仍然可见,为什么会有宽度和高度?

有没有办法限制容器内的内容?

最佳答案

You can hide the content that overflows a Kinetic Image object in several ways

澄清:所有 kineticJS 层始终与舞台大小相同(不可更改)

但是,您可以将图像放入 KineticJS 图像对象中,然后操作该图像。

解决方案#1:使用图像对象的 offset 属性:

您可以使用 KineticJS 图像对象,例如使用 offset 属性将视口(viewport)变成更大的图像。如果您以后想要将视口(viewport)移动到原始图像的另一部分,则此方法很有用。

解决方案#2:使用图像对象 crop 属性:

您可以裁剪较大的原始图像以适应较小的 KineticJS 图像对象。如果您想永久查看原始图像的裁剪部分,则此方法很有用。顺便说一句,如果您想缩放裁剪部分,此方法也很有用。

当您将 crop 属性添加到 KineticJS Image 对象时,原始图像会根据您的规范进行裁剪。这将使您保留原始图像的所需部分并裁剪掉不需要的部分。

enter image description here

kImage=new Kinetic.Image({
image:img,
x:30,
y:30,
width:110,
height:110,
crop: {
x: 150,
y: 122,
width: 110,
height: 110
}
});

这是代码和 fiddle :http://jsfiddle.net/m1erickson/KbESf/

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Prototype</title>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.5.1.min.js"></script>

<style>
#container{
border:solid 1px #ccc;
margin-top: 10px;
width:300px;
}
</style>
<script>
$(function(){

var stage = new Kinetic.Stage({
container: 'container',
width: 300,
height: 150
});
var layer = new Kinetic.Layer();
stage.add(layer);

var kImage;

var img=new Image();
img.onload=function(){
addCroppedImage();
}
img.src="https://dl.dropboxusercontent.com/u/139992952/stackoverflow/faces.png";

function addCroppedImage(){

kImage=new Kinetic.Image({
image:img,
x:30,
y:30,
width:110,
height:110,
crop: {
x: 150,
y: 122,
width: 110,
height: 110
}
});
layer.add(kImage);
layer.draw();
}

}); // end $(function(){});

</script>
</head>

<body>
<p>Cropped image on Kinetic layer</p>
<div id="container"></div>
<p>Original Image</p>
<img src="https://dl.dropboxusercontent.com/u/139992952/stackoverflow/faces.png">
</body>
</html>

关于KineticJS: overflow hidden 层的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com