我想要一张从我的数据库上传的图像,在它之上,相同位置的完全相同大小是 HTML5 画布。
我发现的大多数解决方案都在使用 JQuery/JavaScript,但是如果可能的话,我想要一个类似的解决方案,因为图像是从数据库输出的,并且页面上可能有多个图像,并且每个图像都会使用 CSS3有一个画布。
我怎样才能做到这一点?
我想要一张从我的数据库上传的图像,在它之上,相同位置的完全相同大小是 HTML5 画布。
我发现的大多数解决方案都在使用 JQuery/JavaScript,但是如果可能的话,我想要一个类似的解决方案,因为图像是从数据库输出的,并且页面上可能有多个图像,并且每个图像都会使用 CSS3有一个画布。
我怎样才能做到这一点?
是的。
您可以完全在 CSS 中完成此操作,但您必须为每个图像添加一些特定的 HTML 管道。
如果您厌倦了额外的管道,javascript 可以为您完成大部分管道。
这是纯 CSS 版本的小提琴:
http://jsfiddle.net/m1erickson/g3sTL/
的HTML:
<div class="outsideWrapper">
<div class="insideWrapper">
<img src="house-icon.jpg" class="coveredImage">
<canvas class="coveringCanvas"></canvas>
</div>
</div>
当然,在您的版本中,您可以将图像 src 替换为动态数据库调用以获取图像。
CSS:
.outsideWrapper{
width:256px; height:256px;
margin:20px 60px;
border:1px solid blue;}
.insideWrapper{
width:100%; height:100%;
position:relative;}
.coveredImage{
width:100%; height:100%;
position:absolute; top:0px; left:0px;
}
.coveringCanvas{
width:100%; height:100%;
position:absolute; top:0px; left:0px;
background-color: rgba(255,0,0,.1);
}
可能重复。
根据数据库中有多少图像,您可以为每个图像文件的名称(例如canvas #foo { background:url(foo.jpg) }
)有一个单独的画布ID。我会将其加载到单独的样式表中。:)
如果您的数据库是动态的,那么维护 Javascript 解决方案可能会更容易。几行 javascript 就足够了,而不是不断地用新名称更新样式表。也更不容易出错。