<body style="text-align: left;">
<div id="marquees">
<ul>
<asp:Literal ID="ListMarquee" runat="server"></asp:Literal>
</ul>
</div> <script type="text/javascript">
var marqueesHeight = 230;
var stopscroll = false;
with (marquees) {
style.width = 0;
style.height = marqueesHeight;
style.overflowX = "visible";
style.overflowY = "hidden";
noWrap = true;
onmouseover = new Function("stopscroll=true");
onmouseout = new Function("stopscroll=false");
}
document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>'); var preTop = 0;
var currentTop = 0; function init() {
templayer.innerHTML = "";
while (templayer.offsetHeight < marqueesHeight) {
templayer.innerHTML += marquees.innerHTML;
}
marquees.innerHTML = templayer.innerHTML + templayer.innerHTML;
setInterval("scrollUp()", 60);
}
document.body.onload = init; function scrollUp() {
if (stopscroll == true) return;
preTop = marquees.scrollTop;
marquees.scrollTop += 1;
if (preTop == marquees.scrollTop) {
marquees.scrollTop = templayer.offsetHeight - marqueesHeight;
marquees.scrollTop += 1;
}
}
</script></body>这是.net的前台,为什么IE就能滚动正常, firefox就出问题
<div id="marquees">
<ul>
<asp:Literal ID="ListMarquee" runat="server"></asp:Literal>
</ul>
</div> <script type="text/javascript">
var marqueesHeight = 230;
var stopscroll = false;
with (marquees) {
style.width = 0;
style.height = marqueesHeight;
style.overflowX = "visible";
style.overflowY = "hidden";
noWrap = true;
onmouseover = new Function("stopscroll=true");
onmouseout = new Function("stopscroll=false");
}
document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>'); var preTop = 0;
var currentTop = 0; function init() {
templayer.innerHTML = "";
while (templayer.offsetHeight < marqueesHeight) {
templayer.innerHTML += marquees.innerHTML;
}
marquees.innerHTML = templayer.innerHTML + templayer.innerHTML;
setInterval("scrollUp()", 60);
}
document.body.onload = init; function scrollUp() {
if (stopscroll == true) return;
preTop = marquees.scrollTop;
marquees.scrollTop += 1;
if (preTop == marquees.scrollTop) {
marquees.scrollTop = templayer.offsetHeight - marqueesHeight;
marquees.scrollTop += 1;
}
}
</script></body>这是.net的前台,为什么IE就能滚动正常, firefox就出问题
document.getElementById("templayer"),而不是 templayer
所以,最好使用getElementById来取另外,注意,长度值一定要加单位: style.height = marqueesHeight+"px";
不加在IE中起作用,Firefox中是不起作用的。
详细参加 跨浏览器开发 的帖子:http://topic.csdn.net/u/20100729/14/2294df8c-c38c-4b26-b35b-e6ee9c92d9f1.html?15147
<div id="marquees">
<ul>
<asp:Literal ID="ListMarquee" runat="server"></asp:Literal>
</ul>
</div> <script type="text/javascript">
var marqueesHeight = 230;
var stopscroll = false;
with (document.getElementById("marquees")) {
style.width = 0;
style.height = marqueesHeight+"px";
style.overflowX = "visible";
style.overflowY = "hidden";
noWrap = true;
onmouseover = new Function("stopscroll=true");
onmouseout = new Function("stopscroll=false");
}
document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>'); var preTop = 0;
var currentTop = 0 function init() {
document.getElementById("templayer").innerHTML = "";
while (document.getElementById("templayer").offsetHeight < marqueesHeight) {
document.getElementById("templayer").innerHTML += document.getElementById("marquees").innerHTML;
}
document.getElementById("marquees").innerHTML = document.getElementById("templayer").innerHTML + document.getElementById("templayer").innerHTML;
setInterval("scrollUp()", 60);
}
document.body.onload = init; function scrollUp() {
if (stopscroll == true) return;
preTop = document.getElementById("marquees").scrollTop;
document.getElementById("marquees").scrollTop += 1;
if (preTop == document.getElementById("marquees").scrollTop) {
document.getElementById("marquees").scrollTop = document.getElementById("templayer").offsetHeight - marqueesHeight;
document.getElementById("marquees").scrollTop += 1;
}
}
</script></body>改成这样了,但是问题还是存在
<body>
<div id="marquees">
<ul>
<li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
<li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
<li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
<li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
<li>dfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdf</li>
</ul>
</div> <script type="text/javascript">
var marqueesHeight = 230;
var stopscroll = false;
with (document.getElementById("marquees")) {
style.width = 200;
style.height = marqueesHeight;
style.overflowX = "visible";
style.overflowY = "hidden";
noWrap = true;
onmouseover = new Function("stopscroll=true");
onmouseout = new Function("stopscroll=false");
}
document.write('<div id="templayer" style="position:absolute;z-index:1;visibility:hidden"></div>'); var preTop = 0;
var currentTop = 0; function init() {
document.getElementById("templayer").innerHTML = "";
while (document.getElementById("templayer").offsetHeight < marqueesHeight) {
document.getElementById("templayer").innerHTML +=document.getElementById("marquees").innerHTML;
}
document.getElementById("marquees").innerHTML = document.getElementById("templayer").innerHTML + document.getElementById("templayer").innerHTML;
setInterval("scrollUp()", 60);
}
window.onload = init; function scrollUp() {
if (stopscroll == true) return;
preTop = document.getElementById("marquees").scrollTop;
document.getElementById("marquees").scrollTop += 1;
if (preTop == document.getElementById("marquees").scrollTop) {
document.getElementById("marquees").scrollTop = document.getElementById("templayer").offsetHeight - marqueesHeight;
document.getElementById("marquees").scrollTop += 1;
}
}
</script></body>