有人会有脚本的想法 当它从右到左放置一个信息泡泡 在浏览器窗口中没有位置?谢谢你 你的答案......
我的剧本
// Detection du navigateur
ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;
// Decallage de l'infobulle par rapport au pointeur en X et en Y (en pixels)
decal_x = 10;
decal_y = 0;
// Creation d'un raccourci pour manipuler le calque
var skn = (ns4) ? document.bulle : bulle.style;
// Instruction pour Netscape
if (ns4) document.captureEvents(Event.MOUSEMOVE);
// Interception des mouvements du pointeur
// Celui-ci est activé et désactivé par les fonctions
// reactiverMouseMove() et desactiverMouseMove()
//document.onmousemove = suivre_souris;
function popAccueil(nom,adresse,tel,fax,mail)
{
var contenu;
contenu = "<table border='0' cellspacing='0' cellpadding='5' width='200'><tr><td bgcolor='#CCCCFF'>";
contenu += nom + "</td></tr><tr><td bgcolor='#CCCCFF'><u>Adresse</u>: ";
contenu += adresse + "</td></tr><tr><td bgcolor='#CCCCFF'><u>Tel</u>: ";
contenu += tel + "</td></tr>";
if (fax != null && fax != '')
{
contenu += "<tr><td bgcolor='#CCCCFF'><u>Fax</u>: " +fax + "</td></tr>";
}
if (mail != null && mail != '')
{
contenu += "<tr><td bgcolor='#CCCCFF'><u>Mail</u>: " + mail + "</td></tr>";
}
contenu +="</table>";
if (ns4)// Instructions pour Netscape
{
skn.document.write(contenu);
skn.document.close();
skn.visibility = "visible";
}// Instructions pour Internet Explorer
else if (ie4)
{
document.all("bulle").innerHTML = contenu;
skn.visibility = "visible";
}
}
function popException(exception)
{
var contenu;
//Si exception n'est pas vide on affiche l'info-bulle
if(exception!="")
{
contenu = "<table border='0' cellspacing='0' cellpadding='5' width='200'><tr><td bgcolor='#CCCCFF'>" + exception + "</td></tr></table>";
if (ns4)// Instructions pour Netscape
{
skn.document.write(contenu);
skn.document.close();
skn.visibility = "visible";
}// Instructions pour Internet Explorer
else if (ie4)
{
document.all("bulle").innerHTML = contenu;
skn.visibility = "visible";
}
}
}
function pop(message, image) {
// Formatage de l'infobulle (ici un tableau bleu)
var contenu;
if(image == "/stockage/")
{
contenu = "<table border='0' cellspacing='0' cellpadding='5' width='200'><tr><td bgcolor='#CCCCFF'>" + message + "</td></tr></table>";
}
else
{
contenu = "<table border='0' cellspacing='0' cellpadding='5' width='200'><tr><td bgcolor='#CCCCFF'>" + message + "</td></tr><tr><td><img src="+ image +" border='0'></td></tr></table>";
}
// Instructions pour Netscape
if (ns4) {
skn.document.write(contenu);
skn.document.close();
skn.visibility = "visible";
}
// Instructions pour Internet Explorer
else if (ie4) {
document.all("bulle").innerHTML = contenu;
skn.visibility = "visible";
}
}
// Gestion du pointeur
function suivre_souris(e) {
// Creation des variables de decallage
var x = (ns4) ? e.pageX : event.x + document.body.scrollLeft;
var y = (ns4) ? e.pageY : event.y + document.body.scrollTop;
// Cas particulier pour Internet Explorer sur Mac (les coordonnees de decallages sont modifiees)
if ( (navigator.userAgent.indexOf('Mac') != -1) && (navigator.userAgent.indexOf('MSIE') != -1) ) {
skn.left = x + decal_x - 135;
skn.top = y + decal_y - 155;
}
// Pour les autres cas, decallage normal du calque par rapport au pointeur
else {
skn.left = x + decal_x;
skn.top = y + decal_y;
}
}
// Fonction pour masquer le calque
function disparaitre() {
if (ns4) {
skn.document.write('');
skn.document.close();
skn.visibility = "hidden";
}
else if (ie4) {
document.all("bulle").innerHTML = '';
skn.visibility = "hidden";
}
}
// Désactive la gestion du suivi de souris
function desactiverMouseMove(){
document.onmousemove = null;
}
// Réactive la gestion du suivi de souris
function reactiverMouseMove(){
document.onmousemove = suivre_souris;
}
我希望当我有这个泡泡时 当它从右到左放置 当浏览器窗口显示在窗口外
时,它在浏览器窗口中没有位置答案 0 :(得分:0)
您可以获取窗口客户端的宽度和高度,然后将其与您的气泡位置进行比较
如果添加到气泡宽度的气泡X位置大于客户端的大小,则新的X位置应该等于客户端宽度和气泡宽度之间的差值。在IE中你可以使用document.body.clientWidth获取客户端的宽度,在其他浏览器中你应该使用window.innerWidth。
这是一个简单的例子:
var bx, by; // bx and by stand for the bubble's X and Y position
var bw, bh; // bw is the bubble's width and bh is the height
// ... some code here ...
// ... the bx and by variables get the mouse coordinates ...
if (bx+bw>window.innerWidth) bx=window.innerWidth-bw;
if (by+bh>window.innerHeight) by=window.innerHeight-bh;
我希望我已经解释得很好。如果你不理解某些事情,请告诉我它,我会尝试更好地解释它。