当前位置: 代码迷 >> HTML/CSS >> Javascript:接续滚动-加入"<DOCTYPE html PUBLIC."后不滚动
  详细解决方案

Javascript:接续滚动-加入"<DOCTYPE html PUBLIC."后不滚动

热度:747   发布时间:2012-11-20 09:55:43.0
Javascript:连续滚动----加入"<!DOCTYPE html PUBLIC..."后不滚动
在制作网页中遇到的问题,因为现在用div+css,所以,网页头部就有了<html xmlns="http://www.w3.org/1999/xhtml">代码,可是有它以后所有的滚动代码都不会滚动。

 解决办法一:

         删除网页首行的
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  这个确实可以解决, 因为 js代码里有不符合w3c规定的方法和属性. 取消了这个w3c标准限制后 就可以了;可是,你网页中的css布局也就变形了,所以第一种不适合重构的思想


解决办法二:

把 js代码中的 document.body 改为 document.documentElement 就符合w3c标准了, 因此 不需要删除 那一行;

第二种方法还是很完美的

下面是一个例子:
----------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script type="text/javascript">
//添加事件响应函数的函数,与本效果无关
function addEventSimple(obj,evt,fn){
if(obj.addEventListener){
  obj.addEventListener(evt,fn,false);
}else if(obj.attachEvent){
  obj.attachEvent('on'+evt,fn);
}
}
addEventSimple(window,'load',initScrolling);
//保存想要滚动的容器
var scrollingBox;
var scrollingInterval;
//用于记录是否“滚到头”过一次
var reachedBottom=false;
//记录第一次滚到头时候的scrollTop
var bottom;
//初始化滚动效果
function initScrolling(){
scrollingBox = document.getElementById("scrollText");
//样式设置,与滚动基本无关,应该用CSS设置。
scrollingBox.style.height = "120px";
scrollingBox.style.overflow = "hidden";
//滚动
scrollingInterval = setInterval("scrolling()",50);
//鼠标划过停止滚动效果
scrollingBox.onmouseover = over;
//鼠标划出回复滚动效果
scrollingBox.onmouseout = out;
}
//滚动效果
function scrolling(){
//开始滚动,origin是原来scrollTop
var origin = scrollingBox.scrollTop++;
//如果到头了
if(origin == scrollingBox.scrollTop){
  //如果是第一次到头
  if(!reachedBottom){
   scrollingBox.innerHTML+=scrollingBox.innerHTML;
   reachedBottom=true;
   bottom=origin;
  }else{
   //已经到头过,只需回复头接尾的效果
   scrollingBox.scrollTop=bottom;
  }
}
}
function over(){
clearInterval(scrollingInterval);
}
function out(){
scrollingInterval = setInterval("scrolling()",50);
}
</script>
  <div id="scrollText">
    <a href='#'>1</a><br>
<a href='#'>2</a><br>
<a href='#'>3</a><br>
<a href='#'>4</a><br>
<a href='#'>5</a><br>
<a href='#'>6</a><br>
  </div>

-----------------------------------------
怎么样,问题解决了吧,呵呵^_^
  相关解决方案