谁能解释下这段代码
[code=C#][/code] <script type="text/javascript">
var textDiv = document.getElementById("rollText");
var textList = textDiv.getElementsByTagName("a");
if (textList.length > 1) {
var textDat = textDiv.innerHTML;
var br = textDat.toLowerCase().indexOf("<br", textDat.toLowerCase().indexOf("<br") + 3);
//var textUp2 = textDat.substr(0,br);
textDiv.innerHTML = textDat + textDat + textDat.substr(0, br);
textDiv.style.cssText = "position:absolute; top:0";
var textDatH = textDiv.offsetHeight; MaxRoll();
}
var minTime, maxTime, divTop, newTop = 0;
function MinRoll() {
newTop++;
if (newTop <= divTop + 20) {
textDiv.style.top = "-" + newTop + "px";
} else {
clearInterval(minTime);
maxTime = setTimeout(MaxRoll, 5000);
}
}
function MaxRoll() {
divTop = Math.abs(parseInt(textDiv.style.top));
if (divTop >= 0 && divTop < textDatH - 40) {
minTime = setInterval(MinRoll, 1);
} else {
textDiv.style.top = 0; divTop = 0; newTop = 0; MaxRoll();
}
}
</script>
[解决办法]
var textDiv = document.getElementById("rollText"); //得到ID为rollText的对象赋给textDiv var textList = textDiv.getElementsByTagName("a"); //得到textDiv对象中所有A标签的集合 if (textList.length > 1) { //如果textDiv集合元素大于0 var textDat = textDiv.innerHTML; //得到textDiv中的HTML代码,赋给textDat var br = textDat.toLowerCase().indexOf("<br", textDat.toLowerCase().indexOf("<br") + 3); //把textDat转化为小写,从textDat中第一次出现"<br"索引加3位置开始查找,找从textDat出现第一次"<br"的索引,赋给br //var textUp2 = textDat.substr(0,br); textDiv.innerHTML = textDat + textDat + textDat.substr(0, br); //给textDiv的HTML赋值,赋值为:两个textDat加上textDat从索引0开始截取到索引br的字符串 textDiv.style.cssText = "position:absolute; top:0"; //给textDiv绝对定位,距顶部边0相素 var textDatH = textDiv.offsetHeight; //得到textDiv上边界到它的包含元素的上边界的偏移量 MaxRoll(); //调用MaxRoll()方法 } var minTime, maxTime, divTop, newTop = 0; //声明几个变量 function MinRoll() { newTop++; //newTop = newTop + 1; if (newTop <= divTop + 20) { //如果newTop小于等于divTop+20 textDiv.style.top = "-" + newTop + "px"; //textDiv的css的top等于-newTop的值px; } else { //反之 clearInterval(minTime); //停止定时器 maxTime = setTimeout(MaxRoll, 5000); //设计一个定时器,五秒中调用一次MaxRoll方法 } } function MaxRoll() { divTop = Math.abs(parseInt(textDiv.style.top)); //取textDiv的css的top的绝对值,赋给divTop if (divTop >= 0 && divTop < textDatH - 40) { //如果divTop的值大于等于0而且divTop的值小于textDatH-40 minTime = setInterval(MinRoll, 1); //1毫秒调用一次MinRoll方法,直到 clearInterval()或窗体关闭 } else { //反之 textDiv.style.top = 0; //设置textDiv的css的Top为0 divTop = 0; newTop = 0; MaxRoll(); //调用MaxRoll方法 } }