非表示の img を切り取るために、prototype.js 関数を使用しています。トリミングするJavaScript関数は「crop」です。ボディオンロードで画像をトリミングします。"crop" を呼び出す HTML div=id は "crop" です。また、div="thumb" は、class="top" とは異なる特定のホバーを実行しています。
//*まず、次のようになります。
<div class="thumb">
<span class="text">text text text text text text text</span>
<div id="crop" class="top" style="width:900px; height:250px; /">
</div>
</div>
//* トリミングする画像は次のとおりです。
<img id="img" src="bond.jpg" style="display:none" />
そこの class="thumb" は、「text text text」で小さなボックスを作成します。今、何が起こっているかというと、クラス「thumb」が div="crop" の後ろに「text text」のボックスをホバーします。
class=thumb を配置する必要性をスキップするために多くのことを試みましたが、実際には div id="crop" はこのようには機能しません。
つまり、 div id="crop" はそこに書かれている通りにトリミングする機能を既に実行しているので、そのままで良いと思います
トリミング機能を確認します。
<script language="javascript" type="text/javascript" src="prototype.js"></script>
<script language="javascript" type="text/javascript">
function crop(img_id, crop_id, x, y, width, height) {
$(crop_id).update('<img id="' + crop_id + '_img" src="' +
$(img_id).getAttribute('src') + '" style="display:none" />');
var scale_x = $(crop_id).getWidth() / width;
var scale_y = $(crop_id).getHeight() / height;
$(crop_id).setStyle({
position: 'relative',
overflow: 'hidden'
});
$(crop_id + '_img').setStyle({
position: 'absolute',
display: 'block',
left: (-x * scale_x) + 'px',
top: (-y * scale_y) + 'px',
width: ($(img_id).getWidth() * scale_x) + 'px',
height: ($(img_id).getHeight() * scale_y) + 'px'
});
}
</script>
どれがボディロードで呼び出されます:
<body onload="crop('img', 'crop', 0, 0, 1400, 300)">
結局のところ、私が本当に聞きたいのは、「テキスト テキスト テキスト」ボックスをすべての div (クロップとサム) の前に表示する方法です。
ここで使用されるcss:
.top {
position: absolute;
font-family: verdana, arial, helvetica, sans-serif;
font-size: 20pt;
font-weight: bold;
background:#FFFFFF;
border: 1px dashed #000000;
height: 5%;
width: 100%;
}
.thumb {
position: relative;
width: 910px;
height: 250px;
border: 2px dashed #444;
margin: 10px;
float: left
}
.text, .text-js {
display: none;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
background: #999;
background: rgba(0,0,0,0.3);
text-align: center
}
.thumb:hover .text {
display: block;
}