永发信息网

求控制网页中浮动层不超出屏幕显示范围的方法

答案:5  悬赏:80  手机版
解决时间 2021-04-01 05:29
  • 提问者网友:蔚蓝的太阳
  • 2021-03-31 13:34
求控制网页中浮动层不超出屏幕显示范围的方法
最佳答案
  • 五星知识达人网友:孤老序
  • 2021-03-31 13:39
当然你说的意思是你自己做的网站给别人看的,关键代码如下
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具体加多少你自己尝试

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


shiyan







shiyan


我的样式
i love you













  



"border:0.2in solid #ff8000;"为一整体中间不能有“;”



全部回答
  • 1楼网友:雾月
  • 2021-03-31 17:29
在网页的 工具-Internet选项-隐私-设置 中设置
  • 2楼网友:第四晚心情
  • 2021-03-31 16:28
把网页漂浮的高度和宽度都小于你系统的系统分辨率就行.
  • 3楼网友:鸽屿
  • 2021-03-31 16:07
不写具体的例子代码了, 代码太乱, 看起来也不容易明白. 只说说方法, 具体代码你自己写吧...
1.这个层事先设好, position用absolute, 并隐藏起来. 层的内容根据所点击关键字动态赋值. 赋好值后, 可以根据div1.clientWidth和div1.clientHeight取得该层的高宽.
比如:

赋值方法: 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等, 视具体情况而定.
  • 4楼网友:几近狂妄
  • 2021-03-31 15:08
查看源代码后看到"金融时报"并没有“服务器端链接”,而是通过客户端进行“关键字”加链接的。也就是说,这种做法除了是广告以外,SEO角度上讲完全没有任何意义。好象和LZ问题无关。呵呵。。。。。确定他这个是JS的以后,就好办了。写一个层
,然后CSS控制隐藏。金融 这两个字加JS事件。onmouseover就显示myAdv,onmouseout就隐藏myAdv,LZ说的自动左右而不超出屏幕,原理是这样的:myAdv默认是要显示在“关键字”的上方的。先得到鼠标位置,然后计算如果myAdv在鼠标上方位置出现,是否会“越界”。也就是说鼠标位置 myAdv的高度是否超过容器的位置,如果越过,则按第二种方法,即将myAdv显示在“关键字”的下方即可。。。。我只是说说原理,表达能力也不行。不知道LZ听懂没。呵呵。。。有空倒是可以做做这样的效果了。我发现很多网站都有这种效果来做广告,但是似乎忽略了SEO角度的用处。。。如果我要做,一定先考虑SEO。呵呵。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯