asp中有一段javascipt的网页鼠标滚轮竟然可以一直下滑,底下全是空白,请教

坎坷程序员 2013-04-17 11:57:24
主要代码
<script language="JavaScript">
lastScrollY=0;
function heartBeat(){
diffY=document.body.scrollTop;
percent=.1*(diffY-lastScrollY);
if(percent>0)percent=Math.ceil(percent);
else percent=Math.floor(percent);
document.all.list.style.pixelTop+=percent;
lastScrollY=lastScrollY+percent;
}

//打开隐藏视频列表
function openSmall(){
var listmenu=document.getElementById("listmenu");
if(listmenu.style.display=="none"){
listmenu.style.display="block";
}
else{
listmenu.style.display="none";
}

}
//创建视频播放器div并居中
function openDiv(flvurl){
//var listmenu=document.getElementById('FlvBox');
//listmenu.style.display="block";

var flvDiv=document.createElement("div");
flvDiv.id="FlvBox";
flvDiv.className="flvBoxStyle";
flvDiv.innerHTML="<div id='FlvBox' class='flvBoxStyle'><object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0' width='100%' height='100%'><param name='movie' value='flv/Flvplayer.swf?vcastr_file="+flvurl+"&IsAutoPlay=1' /><param name='quality' value='high' /><param name='allowFullScreen' value='true' /><param name='IsAutoPlay' value='1' /><embed src='flv/Flvplayer.swf?vcastr_file="+flvurl+" &IsAutoPlay=1' width='100%' height='100%' allowfullscreen='true' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash'> </embed></object><a href='#'><img src='images/close_green.png' align='right' onClick='closeDIV() '></a></div>";
document.body.appendChild(flvDiv);
}
//关闭DIV视频播放器
function closeDIV(){
document.getElementById('FlvBox').parentNode.removeChild(document.getElementById('FlvBox'));
}

suspendcode45="<div id=list style='width:204px; height:500px; position:absolute; top:480px;'><div id=listmenu style='display:none'><table border=0 cellpadding=0 cellspacing=0><%for flvi=1 to 20%><tr><td><img src='images/dian_<%=flvi mod 5%>.gif'><a href='#' class='link2' onclick=openDiv('<%=flvRs(1)%>')> <%=flvRs(2)%></td></tr><%flvRs.movenext%><%if flvRs.eof then exit for%><%next%></table></div><div id='Layer1' style='position:absolute; width:204px; height:50px;'><a href='#' onclick=openSmall()><img src='images/111.gif' width='204' height='50' border='0' /></a></div><object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' width='204' height='50'><param name='movie' value='images/list.swf'><param name='wmode' value='transparent'><param name='quality' value='high'><embed src='images/list.swf' width='205' height='80' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' wmode='transparent'></embed></object></div>"
document.write(suspendcode45);
window.setInterval("heartBeat()",1);
...全文
244 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
坎坷程序员 2013-04-18
  • 打赏
  • 举报
回复
谢谢各位版主,有一个人说对了,是高度设置问题,改成200就没问题了,谢谢各位,结贴!
坎坷程序员 2013-04-18
  • 打赏
  • 举报
回复
引用 8 楼 net_lover 的回复:
本帖最后由 net_lover 于 2013-04-17 15:46:07 编辑 另外,你的代码在非IE里面是无法使用的,你可以参照这个方法实现这样的功能,根据需要进行修改,如果不考虑IE6,可以完全去掉脚本 部分,纯cSS即可实现 XML/HTML code?123456789101112131415161718192021222324……
你的代码确实没问题,单独运行浏览器都没问题,但是只要一放到我的页面中,在IE模式下,浮动窗口根本不动,在极速模式下完全没问题,,我晕了个去!
  • 打赏
  • 举报
回复
我估计是diffY=document.body.scrollTop;这个影响的 还有document.all.list.style.pixelTop+=percent;这个是不兼容的
孟子E章 2013-04-17
  • 打赏
  • 举报
回复
另外,你的代码在非IE里面是无法使用的,你可以参照这个方法实现这样的功能,根据需要进行修改,如果不考虑IE6,可以完全去掉脚本 部分,纯cSS即可实现
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
html,body{margin:0;padding:0;}
#y1 {position:fixed;top:0;left:0;width:100px;height:100px;border:1px solid red;}
#y2 {position:fixed;top:0;right:0;width:100px;height:100px;border:1px solid red;}
#y3 {position:fixed;bottom:0;left:0;width:100px;height:100px;border:1px solid red;}
#y4 {position:fixed;bottom:0;right:0;width:100px;height:100px;border:1px solid red;}
</style>
<!--[if lte IE 6]>
<style>
#y1 {position:absolute;}
#y2 {position:absolute;}
#y3 {position:absolute;}
#y4 {position:absolute;}
</style>
<![endif]-->

<script type="text/javascript">
//以下所有脚本只为IE6写,其他浏览器完全可以删除。
function getViewportScrollX() {
var scrollX = 0;
if (document.documentElement && document.documentElement.scrollLeft) {
scrollX = document.documentElement.scrollLeft;
}
else if (document.body && document.body.scrollLeft) {
scrollX = document.body.scrollLeft;
}
else if (window.pageXOffset) {
scrollX = window.pageXOffset;
}
else if (window.scrollX) {
scrollX = window.scrollX;
}
return scrollX;
}

function getViewportScrollY() {
var scrollY = 0;
if (document.documentElement && document.documentElement.scrollTop) {
scrollY = document.documentElement.scrollTop;
}
else if (document.body && document.body.scrollTop) {
scrollY = document.body.scrollTop;
}
else if (window.pageYOffset) {
scrollY = window.pageYOffset;
}
else if (window.scrollY) {
scrollY = window.scrollY;
}
return scrollY;
}

function getViewportWidth() {
var width = 0;
if (document.documentElement && document.documentElement.clientWidth) {
width = document.documentElement.clientWidth;
}
else if (document.body && document.body.clientWidth) {
width = document.body.clientWidth;
}
else if (window.innerWidth) {
width = window.innerWidth - 18;
}
return width;
}

function getViewportHeight() {
var height = 0;
if (window.innerHeight) {
height = window.innerHeight - 18;
}
else if (document.documentElement && document.documentElement.clientHeight) {
height = document.documentElement.clientHeight;
}
else if (document.body && document.body.clientHeight) {
height = document.body.clientHeight;
}
return height;
}

if (navigator.userAgent.indexOf("MSIE 6") > -1 && navigator.userAgent.indexOf("MSIE 7") == -1 &&

navigator.userAgent.indexOf("MSIE 8") == -1) {
window.ononload = window.onscroll = window.onresize = function (e) {
var t = getViewportScrollY();
var l = getViewportScrollX();
var w = getViewportWidth();
var h = getViewportHeight();
document.getElementById("y1").style.left = l + "px";
document.getElementById("y1").style.top = t + "px";

document.getElementById("y2").style.left = l + w - document.getElementById("y2").offsetWidth

+ "px";
document.getElementById("y2").style.top = t + "px";

document.getElementById("y3").style.left = l + "px";
document.getElementById("y3").style.top = t + h - document.getElementById("y2").offsetHeight

+ "px";

document.getElementById("y4").style.left = l + w - document.getElementById("y2").offsetWidth

+ "px";
document.getElementById("y4").style.top = t + h - document.getElementById("y2").offsetHeight

+ "px";
}
}
</script>
</head>
<body>
<div id="y1">左上角位置的内容</div>
<div id="y2">右上角位置的内容</div>
<div id="y3">左下角位置的内容</div>
<div id="y4">右下角位置的内容</div>
<p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p>
<p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p>
<p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p>
<p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p><p>a</p>
</body>
</html>
孟子E章 2013-04-17
  • 打赏
  • 举报
回复
主要是你的高度设置的问题,你可以测试这个
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<style>
html,body{padding:0;margin:0,border:0}
*{padding:0;margin:0,border:0}
</style>
<body>

<script>
lastScrollY=0;
function heartBeat(){ 
diffY=Math.max(document.body.scrollTop,document.documentElement.scrollTop) ; 
percent=.1*(diffY-lastScrollY); 
if(percent>0)percent=Math.ceil(percent);
else percent = Math.floor(percent);
document.getElementById("list").style.pixelTop += percent;
lastScrollY=lastScrollY+percent; 
} 

//打开隐藏视频列表
function openSmall(){
var listmenu=document.getElementById("listmenu");
if(listmenu.style.display=="none"){
listmenu.style.display="block";    
}
else{
listmenu.style.display="none";
}

}
//创建视频播放器div并居中
function openDiv(flvurl){
//var listmenu=document.getElementById('FlvBox');
//listmenu.style.display="block"; 

 var flvDiv=document.createElement("div"); 
 flvDiv.id="FlvBox"; 
 flvDiv.className="flvBoxStyle"; 
 flvDiv.innerHTML="AAA"; 
  document.body.appendChild(flvDiv); 
}
//关闭DIV视频播放器
function closeDIV(){ 
 document.getElementById('FlvBox').parentNode.removeChild(document.getElementById('FlvBox'));  
}

suspendcode45 = "<div id=list style='width:204px; height:200px; position:absolute; top:" + (document.documentElement.clientHeight - 200 ) + "px;'>dsdsdssd</div>"
document.write(suspendcode45); 
window.setInterval("heartBeat()",1);  
</script>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
</body>
坎坷程序员 2013-04-17
  • 打赏
  • 举报
回复
引用 5 楼 chinmo 的回复:
function heartBeat(){ diffY=document.body.scrollTop; percent=.1*(diffY-lastScrollY); if(percent>0)percent=Math.ceil(percent); else percent=Math.floor(percent); document.all.list……
没错,就是这段导致的,而且就是document.all.list.style.pixelTop+=percent;我现在就是有个list是一个小flash条,是跟着页面而上下浮动的,,所以请帮忙看下有没有办法改一下可以不出现这个问题
  • 打赏
  • 举报
回复
function heartBeat(){ diffY=document.body.scrollTop; percent=.1*(diffY-lastScrollY); if(percent>0)percent=Math.ceil(percent); else percent=Math.floor(percent); document.all.list.style.pixelTop+=percent; lastScrollY=lastScrollY+percent; } 大致应该就是这部分代码导致网页高度无限的增加,可以逐步检查就知道了
  • 打赏
  • 举报
回复
我建议你先删除到里面所有的JS,看看是否有问题,如果没问题,再一点点的加回去,看看哪个JS影响了
坎坷程序员 2013-04-17
  • 打赏
  • 举报
回复
引用 1 楼 net_lover 的回复:
一般是css设置的问题,你可以加上 html,body{padding:0;margin:0,border:0} *{padding:0;margin:0,border:0} 进行测试
测试明显不是,哥们,完全没有作用!
坎坷程序员 2013-04-17
  • 打赏
  • 举报
回复
我试试看先,难道是样式的问题!
孟子E章 2013-04-17
  • 打赏
  • 举报
回复
一般是css设置的问题,你可以加上 html,body{padding:0;margin:0,border:0} *{padding:0;margin:0,border:0} 进行测试

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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