在浮动层不能全部显视时,自动翻转移动(向上,向下,向左,向右)(急,急,急)

sdpong 2002-10-18 07:23:58
加精
<script>
ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

var agt=navigator.userAgent.toLowerCase();
var appVer = navigator.appVersion.toLowerCase();
// *** BROWSER VERSION ***

var is_minor = parseFloat(appVer);
var is_major = parseInt(is_minor);

// Microsoft Stupidity Check.
if (ie4) {
var iePos = appVer.indexOf('msie');
if (iePos !=-1) {
is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)))
is_major = parseInt(is_minor);
}
// if (navigator.userAgent.indexOf('MSIE 5')>0 ) {
if (is_minor>=5 ) {
ie5 = true;
} else {
ie5 = false; }
} else {
ie5 = false;
}

var x = 0;
var y = 0;
var snow = 0;
var sw = 0;
var cnt = 0;
var dir = 1;
if ( (ns4) || (ie4) ) {
if (ns4) over = document.overDiv
if (ie4) over = overDiv.style
document.onmousemove = mouseMove
if (ns4) document.captureEvents(Event.MOUSEMOVE)
}

// Public functions to be used on pages.

// Caption popup right
function drc(text, title, osy) {
dtc(1, text, title, osy);
}

// Caption popup left
function dlc(text, title, osy) {
dtc(0, text, title, osy);
}

// Caption popup center
function dcc(text, title, osy) {
dtc(2, text, title, osy);
}

// Clears popups if appropriate
function nd() {
if ( cnt >= 1 ) { sw = 0 };
if ( (ns4) || (ie4) ) {
if ( sw == 0 ) {
snow = 0;
hideObject(over);
} else {
cnt++;
}
}
}

// Non public functions. These are called by other functions etc.

// Caption popup
function dtc(d, text, title, osy) {
txt = text
layerWrite(txt);
dir = d;
offsety = osy;
disp();
}

// Common calls
function disp() {
if ( (ns4) || (ie4) ) {
if (snow == 0) {
if (dir == 2) { // Center
moveTo(over,x,y+10);
}
if (dir == 1) { // Right
moveTo(over,x,y+10);
}
if (dir == 0) { // Left
moveTo(over,x,y+10);
}
showObject(over);
snow = 1;
}
}
// Here you can make the text goto the statusbar.
}

// Moves the layer
function mouseMove(e) {
if (ns4) {x=e.pageX; y=e.pageY;}
if (ie4) {x=event.x; y=event.y;}
if (ie5) {x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;}
if (snow) {
if (dir == 2) { // Center
moveTo(over,x,y+10);
}
if (dir == 1) { // Right
moveTo(over,x,y+10);
}
if (dir == 0) { // Left
moveTo(over,x,y+10);
}
}
}

// The Close onMouseOver function for Sticky
function cClick() {
hideObject(over);
sw=0;
}

// Writes to a layer
function layerWrite(txt) {
if (ns4) {
var lyr = document.overDiv.document
lyr.write(txt)
lyr.close()
}
else if (ie4) document.all["overDiv"].innerHTML = txt
}

// Make an object visible
function showObject(obj) {
if (ns4) obj.visibility = "show"
else if (ie4) obj.visibility = "visible"
}

// Hides an object
function hideObject(obj) {
if (ns4) obj.visibility = "hide"
else if (ie4) obj.visibility = "hidden"
}

// Move a layer
function moveTo(obj,xL,yL) {
obj.left = xL
obj.top = yL
</script>
<body>
<a href=

</body>
<A onmouseout=nd() onmouseover="dcc('<table border=0 cellpadding=0 cellspacing=0 width=300><tr><td width=100%><div align=left><table border cellpadding=0 cellspacing=0 width=300 bordercolordark=#333366 bordercolorlight=#3366cc><tr><td width=100%><div align=center><table border=0 cellpadding=3 cellspacing=0 width=100%><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr></table></div></td></tr></table></div></td></tr></table>','0','20')">asdfasdfasdf</a></html>

想在浮动层不能全部显视时,(如超出页面,超出框架(frame,iframe))自动移动到合适的位置显视,给出实现代码,很急.....
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuiwuhen 2002-10-19
  • 打赏
  • 举报
回复
修改了disp和mouseMove函数

function qswh(){
if(ie4){
with(document.body){
if(x>offsetWidth+scrollLeft-20-overDiv.offsetWidth)x=offsetWidth+scrollLeft-20-overDiv.offsetWidth;
if(y>offsetHeight+scrollTop-50-overDiv.offsetHeight)y-=20+overDiv.offsetHeight;
}
}
if (dir == 2) { // Center
moveTo(over,x,y+10);
}
if (dir == 1) { // Right
moveTo(over,x,y+10);
}
if (dir == 0) { // Left
moveTo(over,x,y+10);
}
}
// Common calls
function disp() {
if ( (ns4) || (ie4) ) {
if (snow == 0) {
qswh();
showObject(over);
snow = 1;
}
}
// Here you can make the text goto the statusbar.
}

// Moves the layer
function mouseMove(e) {
if (ns4) {x=e.pageX; y=e.pageY;}
if (ie4) {x=event.x; y=event.y;}
if (ie5) {x=event.x+document.body.scrollLeft; y=event.y+document.body.scrollTop;}
qswh();
}

测试数据:
<div style=height:1000></div><span style=width:1500;></span>
<p align=right><A onmouseout=nd() onmouseover="dlc('<table border=0 cellpadding=0 cellspacing=0 width=300><tr><td width=100%><div align=left><table border cellpadding=0 cellspacing=0 width=300 bordercolordark=#333366 bordercolorlight=#3366cc><tr><td width=100%><div align=center><table border=0 cellpadding=3 cellspacing=0 width=100%><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr><tr><td>asdfasdfasdf</td></tr></table></div></td></tr></table></div></td></tr></table>','0','20')">asdfasdfasdf</a></p>
<div style=height:1000>

ps.因为手头没有NS,没有调试.
yohomonkey 2002-10-19
  • 打赏
  • 举报
回复
up!

87,975

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧