マウスポインターの横にフローティング画像を表示するJavaScriptコードがあります(phpを使用すると、マウスがホバリングしている画像が表示されますが、ページ自体の画像のサイズが縮小されるため、フルサイズになります)少し)。ただし、画像がページの左側にある場合は問題ありませんが、画像が右側にある場合は問題があります。
コード:
<script>
var cX = 0; var cY = 0; var rX = 0; var rY = 0;
function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;}
function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;}
if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }
function AssignPosition(d) {
if(self.pageYOffset) {
rX = self.pageXOffset;
rY = self.pageYOffset;
}
else if(document.documentElement && document.documentElement.scrollTop) {
rX = document.documentElement.scrollLeft;
rY = document.documentElement.scrollTop;
}
else if(document.body) {
rX = document.body.scrollLeft;
rY = document.body.scrollTop;
}
if(document.all) {
cX += rX;
cY += rY;
}
d.style.left = (cX+10) + "px";
d.style.top = (cY+10) + "px";
}
function HideContent(d) {
if(d.length < 1) { return; }
document.getElementById(d).style.display = "none";
}
function ShowContent(d,i) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
dd.style.display = "block";
$(d).setHTML ('<img src="'+i'" />');
}
function ReverseContentDisplay(d) {
if(d.length < 1) { return; }
var dd = document.getElementById(d);
AssignPosition(dd);
if(dd.style.display == "none") { dd.style.display = "block"; }
else { dd.style.display = "none"; }
}
//-->
</script>
以下は、フローティング コンテンツをトリガーする標準的な画像です。
<a onmousemove="ShowContent('FloatingImage','image.jpg'); return true;" onmouseover="ShowContent('FloatingImage','image.jpg'); return true;" onmouseout="HideContent('FloatingImage','image.jpg'); return true;" href="javascript:ShowContent('FloatingImage','image.jpg')">standard html</a>
<div
id="FloatingImage"
style="display:none;
position:absolute;
border-style: solid;
background-color: white;
padding: 5px;
z-index:+1">
<img id="MouseImage" name="MouseImage" src="LR-10.jpg" />
</div>
--end code--
.... それ自体は問題なく動作します。次のサムネイル画像にマウスを合わせると、縦横比を維持したまま、それに応じてフローティング画像が変化します。ただし、サムネイル画像が右側にある場合、フローティング画像は画面の右端から外れて表示されず、表示されません。JS コード内に「ブロック」を配置して、サムネイル画像が代わりに、マウスポインターの左側に画像が表示されるよりも、コンテンツの端 (画面の端または含まれる DV レイヤーの端) に近いですか?
次の質問: このコードは、ページを単独で開くと問題なく動作しますが、私の Web サイトのデザインでは、AJAX を使用して DIV レイヤー内でページを開くように呼び出します。これによりコードが壊れ、動作しません。これは、私が作成した他のスクリプトで発生しました。それ自体は正常に動作しますが、AJAX ロード リクエストを介して挿入すると失敗します。これはどのように解決できますか?
ありがとう。