求控制网页中浮动层不超出屏幕显示范围的方法 通过JS弹出的浮动DIV层,居中于窗口中。

作者&投稿:扶怕 (若有异议请与网页底部的电邮联系)
当然你说的意思是你自己做的网站给别人看的,关键代码如下
if(MouseX+40+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
else popLeftAdjust=0;
if(MouseY+40+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
else popTopAdjust=0;
mouseY+40具体加多少你自己尝试

我做的一个弹出层,保存到本地你试试看,你要的应该就是这效果的吧。你看我的代码适当的参考一下应该就知道怎么弄了。
<html>
<head>
<title>shiyan</title>

<style type='text/css'id='defaultPopStyle'>
*{ margin:5px.;padding:0; }

.cPopText { left:200; background-color: #ff5555 ;color: #ffffff ;
border:10px solid #3333cc; margin:10px;solid:#aa0000;bordercolor: #000000;font-size: 18px;height: 40px; padding-right:

10px; padding-left: 10px; padding-top: 4px; padding-bottom: 4px; }
</style>
<style>
h2{ text-align:center;color:red}
#feixue{ text-align:left;font-size:14pt;color:#2222ff;}
</style>
<script language="javascript">
function ss()
{
dypopLayer.style.visibility="visible"
MouseX=event.x;
MouseY=event.y;
popWidth=dypopLayer.clientWidth;
popHeight=dypopLayer.clientHeight;
if(MouseX+40+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
else popLeftAdjust=0;
if(MouseY+40+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
else popTopAdjust=0;
dypopLayer.style.left=MouseX-0+document.body.scrollLeft+popLeftAdjust;
dypopLayer.style.top=MouseY-80+document.body.scrollTop+popTopAdjust;
}
function s2()
{
dypopLayer.style.visibility="hidden"
}
</script>
</head>

<body>
<h2>shiyan</h2>
<div id="feixue">我的样式</div>
<div id='dypopLayer' style='position:absolute;z-index:1000;visibility:visibility' class='cPopText'>i love you</div>
<br>
<br>
<br>
<div id="tt" align="left" >
<input type="button" value="团购其他商品" onmousemove=ss() onmouseout=s2() name="button1">
</div>
<div id="tt" align="center" >
<input type="button" value="团购其他商品2" onmousemove=ss() onmouseout=s2() name="button2">
</div>
<div id="tt" align="right" >
<input type="button" value="团购其他商品2" onmousemove=ss() onmouseout=s2() name="button3">  
<input type="button" value="团购其他商品2" onmousemove=ss() onmouseout=s2() name="button4">
</div>
<p style="border:0.2in solid #ff8000;margin:0.5cm;padding:0.2in; background:#c0c0c0" >
"border:0.2in solid #ff8000;"为一整体中间不能有“;”
</p>
</body>
</html>

查看源代码后看到"金融时报"并没有“服务器端链接”,而是通过客户端进行“关键字”加链接的。也就是说,这种做法除了是广告以外,SEO角度上讲完全没有任何意义。好象和LZ问题无关。呵呵。。。。。确定他这个是JS的以后,就好办了。写一个层<div id="myAdv"></div>,然后CSS控制隐藏。金融 这两个字加JS事件。onmouseover就显示myAdv,onmouseout就隐藏myAdv,LZ说的自动左右而不超出屏幕,原理是这样的:myAdv默认是要显示在“关键字”的上方的。先得到鼠标位置,然后计算如果myAdv在鼠标上方位置出现,是否会“越界”。也就是说鼠标位置 myAdv的高度是否超过容器的位置,如果越过,则按第二种方法,即将myAdv显示在“关键字”的下方即可。。。。我只是说说原理,表达能力也不行。不知道LZ听懂没。呵呵。。。有空倒是可以做做这样的效果了。我发现很多网站都有这种效果来做广告,但是似乎忽略了SEO角度的用处。。。如果我要做,一定先考虑SEO。呵呵。

不写具体的例子代码了, 代码太乱, 看起来也不容易明白. 只说说方法, 具体代码你自己写吧...

1.这个层事先设好, position用absolute, 并隐藏起来. 层的内容根据所点击关键字动态赋值. 赋好值后, 可以根据div1.clientWidth和div1.clientHeight取得该层的高宽.
比如:
<div id="div1" style="position:absolute;display:none;background:infobackground;padding:5;border:1 solid #666666;"></div>
赋值方法: div1.innerHTML = "关键字对应的内容"
宽度: dw = div1.clientWidth
高度: dh = div1.clientHeight

2.获取鼠标或关键字所在的位置.
可以通过鼠标的坐标来得到, 可通过鼠标的click或move事件来得到(分别对应点击和鼠标划过时).
X坐标: mx = event.x
Y坐标: my = event.y

3.计算层的左上角(left, top)位置.
判断, 当X坐标大于层的宽度(mx > dw)时, 层的left 值取 mx-dw, 即在关键字的左侧显示, 反之 left = mx + 关键字的宽度(用关键字对象的clientWidth属性得到), 即在关键字的右侧显示;
判断, 当Y坐标大于层的高度(my > dh)时, 层的top值取 my-dh, 即在关键字的上方显示, 反之 left = my + 关键字的高度(用关键字对象的clientHeight属性得到), 即在关键字的下方显示;

------
注意:
1.取得的鼠标所在坐标, 需要再加上网页滚动的值:
document.body.scrollTop 和 document.body.scrollLeft
2.层的位置计算完毕, 再使用 div.style.display='' 将其显示出来.
3.具体做的时候, 如果层可能覆盖住关键字, 可适当把位置值加上或减去一个校正数, 比如50,20等, 视具体情况而定.

把网页漂浮的高度和宽度都小于你系统的系统分辨率就行.

在网页的 工具-Internet选项-隐私-设置 中设置

html中怎样让一个浮动div不超出网页的(宽度)边界?~

估计你是要给包围浮动div的div【也就是浮动元素div的父元素】

设定宽度的吧,这个要不就是你忘记clear了。。。在写html最好去查找一个reset先放你的通用css文件里面【推荐yui】,一般都会有一个伪类clearfix清除浮动样式,这样就不会导致你的div高度塌陷,其他的也不会影响,,
宽度的还,要不就是其他的js或者jq在重新设定了??所以你修改css也没有用??可以先设置border然后用firebug查看下具体什么影响到了

把style里面的left和top拿到js里面写
在CSS里面用expression是只有IE支持的 这就是不兼容的东西

面板中的内容


document.getElementById('divCenter').style.left = (document.body.offsetWidth - 540) / 2;
document.getElementById('divCenter').style.top = (document.body.offsetHeight - 170) / 2 + document.body.scrollTop;

显示该层

如何禁止浮动广告如何禁止浮动广告弹出
答:怎么才能去掉手机浏览器浮动广告?先点一下手机屏幕上的那个菜单键。也就是说,在打开了某个网页的前提下,点一下手机上的那三条直线组成的菜单键按钮,就会弹出一个灰色的选项列表,在上面选择“设置”。打开了“设置”的手机页面后,会见到众多选项中,有一个叫做“高级”,点一下打开它。在“高级...

ie网页设计怎么让一个层总是显示在最外面如何让网页显示在最上层
答:如何让IE窗口总是在屏幕最前面 1。首先,进入一个新的网页。这里以百度为例。当你点进去的时候,发现新的网页已经打开了,但是当前显示的页面并没有跳转到过去,仍然是显示的首页。2.此时点击右上角的工具图标,从下拉菜单中选择“选项”,进入设置页面。在设置页面,点击左侧工具栏中的“标签页设置”...

css/div做的浮动网页 当左右浮动的时候怎么当浏览器的窗口缩小的时候浮...
答:你这个问题就是最外层的div宽度没有固定,不但是缩小的时候会出问题,如果是在比你现在用的显示器更大点的显示器的话,一样会乱掉,最好的办法就是在最外面在加一个div 然后给个固定的宽度 设置外边距上下为0,左右自适应。...哎,不跑的话还叫浮动网页么.. 想解决问题把东西打包发邮箱吧,顺...

在网页中插入浮动窗口,js代码或css代码(易看易懂)
答: var xPos = 300;var yPos = 200;var step = 1;var delay = 30;var height = 0;var Hoffset = 0;var Woffset = 0;var yon = 0;var xon = 0;var pause = true;var interval;img1.style.top = yPos;function changePos(){ width = document.body.clientWidth;height = documen...

如何让网页在浏览器自适应屏幕大小
答:想要网页宽度自适应,需要把网页元素宽度设置为百分比,还要在网页头部加上代码:。图片自适应,且不超过原始大小,需要设置最大宽度,代码如下:img{ width:100%; max-width:100%;}。改进功能 浏览器首次使用时,根据用户显示分辨率大小决定是否默认显示收藏栏;打开多个标签关闭浏览器时,提示用户确认;...

cssfloat怎么撑满屏幕css让背景图片铺满屏幕
答:html中float?float是浮动的意思。使用float意思就是网页不再是一个平面的,而是一个有上下层次的网页,只不过从屏幕上看相当于俯视去看一个网页,看出来的效果仍然是一个平面,但是侧视图去看的话就变成了上下层的结构,这样才会出现不同的p在不同的平面上,所以在你俯视去看的时候,他们可以并在一...

通过JS弹出的浮动DIV层,居中于窗口中。
答:).style.left = (document.body.offsetWidth - 540) / 2;document.getElementById('divCenter').style.top = (document.body.offsetHeight - 170) / 2 + document.body.scrollTop; 显示该层

div如何设置浮动html如何设置div浮动
答:2、左边定宽,右边不定宽,左在下,右在上;将右边p写在上方,通常是希望在加载网站内容时先显示右边的内容,这种情况在“左边为菜单,右边是内容”的左右布局中经常用到。网页设计中p强制换行怎么改变?如果不想让p换行,可以有两种方法:第一种设置p为浮动元素,并设置相应的宽度。举例:p{width:...

css浮动后怎么居中显示css浮动后怎么居中显示文字
答:定义其背景颜色为红色,浮动向左;对类名为b的p进行样式设置,定义其背景颜色为黄色,浮动向右。7,在浏览器打开test.html文件,查看实现的效果。class模型居中怎么写?这是方法,你可以按照这个写:水平居中设置宽度后,margin:0auto;上下居中用CSS添加浮动层和边距就可以实现。

网页制作中浮动窗口怎样制作
答:5.这步最关键,将你绘制的图层用鼠标拖到时间轴上(注意是"拖动"哦),然后将时间上面的选项"自动播放"和"循环"勾起.6.最后一步.在时间轴第一桢上,点击鼠标左键,选中"录制层路径",然后在网页上拖动你画的图层.这时你会看见拖动图层后面有些小点,那么恭喜你,你这时是在绘制浮动广告的路径,绘完后,...