この投稿に従って、 dropboxのログインボタンに似たボタンを作成しました。
より具体的には、ここに私が使用しているコードがあります:
echo '<a href="#" id ="loginbutton"></a>';
echo '<div id = "popup">';
echo '<div id = "popupimage"> </div>';
//HTML INSIDE POPUP
echo '</div>';
echo '<script type="text/javascript" src="jquery.js"></script>';
echo '<script>';
echo '$("#loginbutton").click(function(e){';
echo '$("#popup").css("visibility","visible");';
echo 'e.stopPropagation();';
echo '});';
echo '$("#popup").click(function(e){';
echo 'e.stopPropagation();';
echo '});';
echo '$("body").click(function(e){';
echo '$("#popup") . css("visibility", "hidden");';
echo '});';
CSS:
#logbutton{
top:50px;
left:850px;
position: absolute;
background-image: url(../images/buttons/loginbutton.png);
width:59px;
height:28px;
}
#popupimage{
top:63px;
left:887px;
position: absolute;
background-image: url(../images/popupimage.png);
visibility: hidden;
width:400px;
height:600px;
}
ボタンが機能し、ポップアップも表示されます。
ポップアップ画像の css は、画像が表示される場所の絶対位置を指定しており、これが問題の原因となっています。ボタンの前に動的コンテンツを追加したいので、ボタンがどの位置にあるのか本当にわかりません。これにより、popupimage がボタンの近くに配置されません。
ボタンの絶対位置を知ることは可能で、popupimage (jquery を使用) をその横に表示するように設定できます。以前に動的テキストを使用したため、一定の固定位置がないことを思い出してください。