2014-02-23 28 views
0

我想做一个消息,将始终在顶部,但使用Java脚本滚动页面。 我想下面的代码,但是当我还是把它的滚动在其静态位置使信息总是在顶部

var message = '<b><font color=000000 size=5>mona <a href="../link.htm">link to us</a>!   </font></b>' 
//enter a color name or hex to be used as the background color of the message 
var backgroundcolor = "#FFFF8A" 

//enter 1 for always display, 2 for ONCE per browser session 
var displaymode = 1 

//Set duration message should appear on screen, in seconds (10000=10 sec, 0=perpetual) 
var displayduration = 0 

//enter 0 for non-flashing message, 1 for flashing 
var flashmode = 1 
//if above is set to flashing, enter the flash-to color below 
var flashtocolor = "lightyellow" 
var ie = document.all 
var ieNOTopera = document.all && navigator.userAgent.indexOf("Opera") == -1 
function regenerate() { 
window.location.reload() 
} 

function regenerate2() { 
if (document.layers) 
    setTimeout("window.onresize=regenerate", 400) 
} 

var which = 0 

function flash() { 
if (which == 0) { 
    if (document.layers) 
     topmsg_obj.bgColor = flashtocolor 
    else 
     topmsg_obj.style.backgroundColor = flashtocolor 
    which = 1 
} 
else { 
    if (document.layers) 
     topmsg_obj.bgColor = backgroundcolor 
    else 
     topmsg_obj.style.backgroundColor = backgroundcolor 
    which = 0 
} 
} 

if (ie || document.getElementById) 
document.write('<div id="topmsg" style="position:absolute;visibility:hidden">' + message + '</div>') 

var topmsg_obj = ie ? document.all.topmsg : document.getElementById ? document.getElementById("topmsg") : document.topmsg 

function positionit() { 
var dsocleft = ie ? document.body.scrollLeft : pageXOffset 
var dsoctop = ie ? document.body.scrollTop : pageYOffset 
var window_width = ieNOTopera ? document.body.clientWidth : window.innerWidth - 20 
var window_height = ieNOTopera ? document.body.clientHeight : window.innerHeight 

if (ie || document.getElementById) { 
    topmsg_obj.style.left = parseInt(dsocleft) + window_width/2 - topmsg_obj.offsetWidth/2 
    topmsg_obj.style.top = parseInt(dsoctop) + parseInt(window_height) - topmsg_obj.offsetHeight - 4 
} 
else if (document.layers) { 
    topmsg_obj.left = dsocleft + window_width/2 - topmsg_obj.document.width/2 
    topmsg_obj.top = dsoctop + window_height - topmsg_obj.document.height - 5 
} 
} 

function setmessage() { 
if (displaymode == 2 && (!display_msg_or_not())) 
    return 
if (document.layers) { 
    topmsg_obj = new Layer(window.innerWidth) 
    topmsg_obj.bgColor = backgroundcolor 
    regenerate2() 
    topmsg_obj.document.write(message) 
    topmsg_obj.document.close() 
    positionit() 
    topmsg_obj.visibility = "show" 
    if (displayduration != 0) 
     setTimeout("topmsg_obj.visibility='hide'", displayduration) 
} 
else { 
    positionit() 
    topmsg_obj.style.backgroundColor = backgroundcolor 
    topmsg_obj.style.visibility = "visible" 
    if (displayduration != 0) 
     setTimeout("topmsg_obj.style.visibility='hidden'", displayduration) 
} 
setInterval("positionit()", 100) 
if (flashmode == 1) 
    setInterval("flash()", 1000) 
} 

function get_cookie(Name) { 
var search = Name + "=" 
var returnvalue = "" 
if (document.cookie.length > 0) { 
    offset = document.cookie.indexOf(search) 
    if (offset != -1) { 
     offset += search.length 
     end = document.cookie.indexOf(";", offset) 
     if (end == -1) 
      end = document.cookie.length; 
     returnvalue = unescape(document.cookie.substring(offset, end)) 
    } 
} 
return returnvalue; 
} 

function display_msg_or_not() { 
if (get_cookie("displaymsg") == "") { 
    document.cookie = "displaymsg=yes" 
    return true 
} 
else 
    return false 
} 

if (document.layers || ie || document.getElementById) 
window.onload = setmessage 

任何帮助。或任何新的代码请

+0

http://stackoverflow.com/questions/8620726/always-on-top-div-within-area可能的重复? – Tinwor

+0

位置:固定 –

+0

我该如何让它在左中间? – user3261588

回答

2

如果我明白你想要什么,我认为你完全在想它。您可以使用CSS将您的信息固定在页面的顶部。只需添加位置:固定。这是我如何让我的标题留在本网页的顶部:http://www.recipegraze.com

所以使用javascript使消息显示/消失,但使用一些简单的CSS使它坚持页面的顶部。

编辑:您还需要启用消息的z-index,以确保它显示在其他内容的顶部,而不是它的下面。