soultip.js
上传用户:wangting
上传日期:2020-01-24
资源大小:2226k
文件大小:7k
源码类别:

破解

开发平台:

ASP/ASPX

  1. //*********************************//
  2. // SoulTip v1.1
  3. //*********************************//
  4. //*********************************//
  5. // MAIN DEVELOPER
  6. //*********************************//
  7. // Ferruh Mavituna
  8. // Contact : http://ferruh.mavituna.com/cnt.asp
  9. //*********************************//
  10. // OTHER DEVELOPERS (Many Thanks & Respect)
  11. //*********************************//
  12. //Yusuf U饀r Soysal/hayalet
  13. //Hide Selectboxes 
  14. //hy_collusion()
  15. //hy_collusionRecover()
  16. //ScreenWidth scroll overflow solution ideas
  17. //*********************************//
  18. // CONTACT
  19. //*********************************//
  20. // ferruh{at}mavituna.com 
  21. // http://ferruh.mavituna.com/contact.asp
  22. // http://ferruh.mavituna.com
  23. //*********************************//
  24. // LICENCE
  25. //*********************************//
  26. /*
  27. SoulTip v1.1 Javascript based easy tooltip System 
  28. Copyright (C) {2003} {Ferruh Mavituna} http://ferruh.mavituna.com
  29. This program is free software; you can redistribute it and/or modify it
  30. under the terms of the GNU General Public License as published by the Free
  31. Software Foundation; either version 2 of the License, or (at your option)
  32. any later version.
  33. This program is distributed in the hope that it will be useful, but WITHOUT
  34. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  35. FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  36. You should have received a copy of the GNU General Public License along with
  37. this library; if not, write to the Free Software Foundation, Inc., 59 Temple
  38. Place, Suite 330, Boston, MA 02111-1307 USA
  39. */
  40. //*********************************//
  41. // DEVELOPMENT HISTORY
  42. //*********************************//
  43. // 25.04.2003
  44. //First Development
  45. // ?
  46. //Some Performance Improvements
  47. // 24.07.2003 
  48. //Some Improvements
  49. //Hide Selectboxes
  50. //Fix Screenwidth problems -for x and y-
  51. // Licensed Under GPL
  52. //25.10.2003
  53. //Fixed Mode added and stabled
  54. // fm_findObj() replaced getElementById()
  55. //*********************************//
  56. // SAMPLE USAGE & SUPPORT
  57. //*********************************//
  58. // <a href="test.htm" help="Go to test page">Look at me !</a>
  59. // For more info http://ferruh.mavituna.com/article.asp?181
  60. /****************************************************************************************/
  61. // CODE STARTED
  62. /****************************************************************************************/
  63. // Customizations;
  64. var divname="soultip";
  65. var divInnername="soultipinner";
  66. /*If this is true tooltips will not move and shown in fixed mode*/
  67. var fixed=false;
  68. /*-----------------------------
  69. Customizable Soultip HTML Code
  70. soultip is the name of main holder;
  71. soultipinner is the place for help;
  72. So you may add your own static headers to id="soultip" div. Do not forget "soultipinner" has dynamic content.
  73. -----------------------------*/
  74. var soultip="<div id='soultip'><div id='soultipinner'></div></div><link href='soultip.css' rel='stylesheet' type='text/css' />"
  75. // -- END OF Customizations;
  76. /****************************************************************************************/
  77. var ie = document.all
  78. // Fix SoulTip Coordinates
  79. var CoordLeft=10;
  80. var CoordRight=-15;
  81. //* For Storing hidden selects
  82. var hiddenTags = new Array();
  83. function fm_MXY(XorY){ // Mouse Coords
  84. var coord = 0;
  85. XorY=="x"?coord = event.clientX + document.body.scrollLeft:coord = event.clientY + document.body.scrollTop;
  86. if(coord<0)coord=0;
  87. return coord;
  88. }
  89. function fm_MXYgecko(XorY,event){ // Mouse Coords
  90. var coord = 0;
  91. XorY=="x"?coord = event.clientX + document.body.scrollLeft:coord = event.clientY + document.body.scrollTop+50;
  92. if(coord<0)coord=0;
  93. return coord;
  94. }
  95. function fm_help(event){ // Show-Hide 
  96. var NewCoordLeft=0,NewCoordRight=0; 
  97. var d=document;
  98. var thisObj = d.getElementById(divname); // findObj
  99. if(!d.body)return; // fix early loading IE err
  100. var browserwidth=document.body.clientWidth; // Browser sizes - Positions
  101. var browserheight=document.body.clientHeight+document.body.scrollTop+25;
  102. var soulwidth=thisObj.offsetWidth+10, soulheight=thisObj.offsetHeight+10; // Soultip sizes
  103. if (window.event)
  104. var activeObj=window.event.srcElement; 
  105. else
  106. var activeObj=event.target; 
  107. if(activeObj.help)
  108. var desc=activeObj.help; //help tag
  109. else
  110. var desc=activeObj.getAttribute("help") //help tag
  111. if(desc!=null){ //If object help tag exist
  112. if (!ie)var x = fm_MXYgecko("x",event), y = fm_MXYgecko("y",event);
  113. else var x = fm_MXY("x"), y = fm_MXY("y");
  114. if(document.alldesc==desc){ //If fixed
  115. NewCoordLeft=activeObj.offsetLeft+activeObj.offsetWidth-x;
  116. NewCoordRight=activeObj.offsetTop-y;
  117. }
  118. NewCoordLeft+=(x+soulwidth>browserwidth)?-soulwidth:CoordLeft; //idea by Yusuf U饀r Soysal - hayalet
  119. NewCoordRight+=(y+soulheight>browserheight)?-soulheight:CoordRight;
  120. thisObj.style.left=x+NewCoordLeft+"px"; //Move X 
  121. thisObj.style.top=y+10+NewCoordRight+"px"; //Move Y
  122. fm_writehelp(desc); //print output
  123. hy_collusion(thisObj); //Hide SelectBoxes by hayalet
  124. if(fixed)document.alldesc=desc; //cache for fixed
  125. }else{
  126. hy_collusionRecover(); //Recover Selects by hayalet
  127. thisObj.style.display="none";
  128. }
  129. }
  130. function fm_writehelp(val){ // Write Tip
  131. var d=document;
  132. var thisObj = d.getElementById(divname);
  133. var innerObj = d.getElementById(divInnername);
  134. innerObj.innerHTML=val;
  135. thisObj.style.display="block";
  136. }
  137. function hy_collusion(obj){ // Hide Selectboxes by Yusuf U饀r Soysal - hayalet
  138. var offsetLeft   = obj.offsetLeft;
  139. var offsetTop    = obj.offsetTop;
  140. var offsetWidth  = obj.offsetWidth;
  141. var offsetHeight = obj.offsetHeight;
  142. var topLeftX     = offsetLeft;
  143. var topLeftY     = offsetTop;
  144. var bottomRightX = offsetLeft + offsetWidth;
  145. var bottomRightY = offsetTop  + offsetHeight;
  146. var hyl = 0;
  147. if(document.getElementsByTagName){
  148. var selectTags = document.getElementsByTagName("select");
  149. for( ; hyl < selectTags.length; hyl++){
  150. var tag = selectTags[hyl];
  151. var x1 = tag.offsetLeft;
  152. var y1 = tag.offsetTop;
  153. var x2 = x1 + tag.offsetWidth;
  154. var y2 = y1 + tag.offsetHeight;
  155. if( ((topLeftX < x1 && x1 < bottomRightX) || (topLeftX < x2 && x2 < bottomRightX)) &&
  156. ((topLeftY < y1 && y1 < bottomRightY) || (topLeftY < y2 && y2 < bottomRightY)) ) {
  157. tag.style.visibility = "hidden";
  158. hiddenTags[ hiddenTags.length ] = tag;
  159. }
  160. else
  161. tag.style.visibility = "visible";
  162. }
  163. }
  164. }
  165. function hy_collusionRecover(){// Hide Selectboxes by Yusuf U饀r Soysal - hayalet
  166. var hyl = 0;
  167. for( ; hyl<hiddenTags.length; hyl++)
  168. hiddenTags[hyl].style.visibility = "visible";
  169. }
  170. // ACTION | Grab mousemove and Write Soultip
  171. document.write(soultip);
  172. if (document.addEventListener)
  173. document.addEventListener("mousemove", fm_help, true);
  174. else 
  175.   document.onmousemove=fm_help;