私のデータベースからアップロードされた画像があり、その上に、同じ位置に正確に同じサイズのHTML5キャンバスがあります。
私が見つけたほとんどのソリューションはJQuery/JavaScriptを使用していますが、画像がデータベースから出力され、ページに複数の画像があり、各画像がキャンバスを持っています。
どうすればこれを達成できますか?
はい。
これはCSSで完全に実行できますが、各画像に特定のHTML配管を追加する必要があります。
余分な配管に飽きたら、javascriptで配管のほとんどを行うことができます。
以下は、CSSのみのバージョンのFiddleです。
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で十分です。もっと少なく エラー タイプミスも起こりやすい。