AJAX 浮动tip

 tooltip.html
  1. <html>
  2.     <head>
  3.     <title>Ajax Tool Tip</title>
  4.     <script type="text/javascript">
  5.     <!--
  6.         var xmlHttp;
  7.         var dataDiv;
  8.         var dataTable;
  9.         var dataTableBody;
  10.         var offsetEl;
  11.         function createXMLHttpRequest() {
  12.             if (window.ActiveXObject)
  13.             {
  14.                 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  15.             }
  16.             else if (window.XMLHttpRequest)
  17.             {
  18.                 xmlHttp = new XMLHttpRequest();
  19.             }
  20.         }
  21.         function initVars() {
  22.             dataTableBody = document.getElementById("courseDataBody");
  23.             dataTable = document.getElementById("courseData");
  24.             dataDiv = document.getElementById("popup");
  25.         }
  26.         function getCourseData(element) {
  27.             initVars();//定义参数
  28.             createXMLHttpRequest();//创建xmlHttp
  29.             offsetEl = element;//获取当前对象
  30.             var url = "tooltip.php?key="+escape(element.id);//加密传送当前位置
  31.             xmlHttp.open("GET",url,true);
  32.             xmlHttp.onreadystatechange = callback;
  33.             xmlHttp.send(null);
  34.         }
  35.         function callback() {
  36.             if (xmlHttp.readyState == 4)
  37.             {
  38.                  if ((xmlHttp.status == 200)|(xmlHttp.status == 0))//0本地相应
  39.                  {
  40.                     setData(xmlHttp.responseXML);
  41.                  }
  42.             }
  43.         }
  44.         function setData(courseData) {
  45.             clearData();
  46.             setOffsets();
  47.             var length = courseData.getElementsByTagName("length")[0].firstChild.data;
  48.             var par = courseData.getElementsByTagName("par")[0].firstChild.data;
  49.             var row,row2;
  50.             var parData = "Par: " + par;
  51.             var lengthData = "Length: " + length;
  52.             row = createRow(parData);
  53.             row2 = createRow(lengthData);
  54.             dataTableBody.appendChild(row);
  55.             dataTableBody.appendChild(row2);
  56.         }
  57.         function createRow(data) {
  58.             var row,cell,txtNode;
  59.             row = document.createElement("tr");
  60.             cell = document.createElement("td");
  61.             cell.setAttribute("bgcolor","#FFFAFA");
  62.             cell.setAttribute("border","0");
  63.             txtNode = document.createTextNode(data);
  64.             cell.appendChild(txtNode);
  65.             row.appendChild(cell);
  66.             return row;
  67.         }
  68.         function setOffsets() {
  69.             var end = offsetEl.offsetWidth;//整数 绝对宽度
  70.             var top = calculateOffsetTop(offsetEl);//整数  相对于版面或是指定父坐标,计算出上侧位置
  71.             dataDiv.style.border = "black 1px solid";
  72.             dataDiv.style.left = end + 15 +"px";
  73.             dataDiv.style.top = top + "px";
  74.         }
  75.         function calculateOffsetTop(field) {
  76.             return calculateOffset(field,"offsetTop");
  77.         }
  78.         function calculateOffset(field,attr) {//相对于版面或是指定父坐标,计算出上侧位置
  79.             var offset = 0;
  80.             while (field)//逐级计算出相对位置,并叠加
  81.             {
  82.                 offset += field[attr];
  83.                 field = field.offsetParent;
  84.             }
  85.             return offset;
  86.         }
  87.         function clearData() {
  88.             var ind = dataTableBody.childNodes.length;
  89.             for (var i = ind-1;i >=0 ;i-- )
  90.             {
  91.                 dataTableBody.removeChild(dataTableBody.childNodes[i]);
  92.             }
  93.             dataDiv.style.border = "none";
  94.             //dataDiv.setAttribute("border","none");
  95.         }
  96.     //-->
  97.     </script>
  98.     </head>
  99.     <body>
  100.         <h1>Ajax Tool Example</h1>
  101.         <h3>Golf Courses</h3>
  102.         <table id="courses" bgcolor="#FFFAFA" border="1" cellspacing="0" cellpadding="2" />
  103.             <tbody>
  104.                 <tr><td id="1" οnmοuseοver="getCourseData(this);" οnmοuseοut="clearData();">Autusta National</td></tr>
  105.                 <tr><td id="2" οnmοuseοver="getCourseData(this);" οnmοuseοut="clearData();">Pinehurst No.2</td></tr>
  106.                 <tr><td id="3" οnmοuseοver="getCourseData(this);" οnmοuseοut="clearData();">St.Andrews</td></tr>
  107.                 <tr><td id="4" οnmοuseοver="getCourseData(this);" οnmοuseοut="clearData();">Baltusrol Golf</td></tr>
  108.             </tbody>
  109.         </table>
  110.         <div id="popup" style="position:absolute;">
  111.             <table id="courseData" bgcolor="#FFFAFA" border="0" cellspacing="2" cellpadding="2" />
  112.                 <tbody id="courseDataBody"></tbody>
  113.             </table>
  114.         </div>
  115.     </body>
  116. </html>
tooltip.php
  1. <?php
  2. header('Content-Type: text/xml');
  3. $resArray = array (
  4.     '1'=>array('par'=>'par1','length'=>'leng1'),
  5.     '2'=>array('par'=>'par2','length'=>'leng2'),
  6.     '3'=>array('par'=>'par3','length'=>'leng3'),
  7.     '4'=>array('par'=>'par4','length'=>'leng4')
  8. );
  9. $key=$_GET['key'];
  10. $res="<response><par>".$resArray[$key]['par']."</par><length>".$resArray[$key]['length']."</length></response>";
  11. echo $res;
  12. ?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值