将原生的JS上滚动代码(能正常运行),改成jquery 格式.

<body>
<div id="colee" style="overflow:hidden;height:200px;width:400px;background:#fcc;">
<div id="colee1">
<p>1<img src=""></p>
<p>2<img src=""></p>
<p>3<img src=""></p>
<p>4<img src=""></p>
<p>5<img src=""></p>
<p>6<img src=""></p>
<p>7<img src=""></p>
<p>8<img src=""></p>
<p>9<img src=""></p>
</div>
<div id="colee2"></div>
</div>
<script>
var speed=10; //数字越大越慢
var colee2=document.getElementById("colee2"); //例如改成 $('#colee2'),但改后无法运行了。
var colee1=document.getElementById("colee1");
var colee=document.getElementById("colee");
colee2.innerHTML=colee1.innerHTML; //克隆colee1为colee2
function Marquee1(){
//当滚动至colee1与colee2交界时
if(colee2.offsetTop-colee.scrollTop<=0){
colee.scrollTop-=colee1.offsetHeight; //colee跳到最顶端
}else{
colee.scrollTop++
}
}
var MyMar1=setInterval(Marquee1,speed)//设置定时器
//鼠标移上时清除定时器达到滚动停止的目的
colee.onmouseover=function() {clearInterval(MyMar1)}
//鼠标移开时重设定时器
//例如改成 $('#colee').bind('mouseover',function(){........});后也无法运行。
colee.onmouseout=function(){MyMar1=setInterval(Marquee1,speed)}
</script>
<!--向上滚动代码结束-->

第1个回答  2013-05-30
1.
var colee2=document.getElementById("colee2"); //例如改成 $('#colee2'),
改成:
var colee2=$("#colee2")[0]; //$('#colee2')得到的是jq对象,而不是普通dom对象,所以当然就不行了
其它的获取方式也类似这样就好了

2.
colee.onmouseover=function() {clearInterval(MyMar1)}
//鼠标移开时重设定时器
//例如改成 $('#colee').bind('mouseover',function(){........});后也无法运行。

如果说colee已经在前面通过$("#colee")[0]的方式获取到了,那么它就是一个普通的dom节点,再用jq引用的时候只要重新封装一下colee即可:
$(colee).bind('mouseover',function(){.clearInterval(MyMar1)});
按说这样写是没有问题的,因为MyMar1是全局变量

3.前面的获取示例:
var speed=10; //数字越大越慢
var colee1=$("#colee1")[0];
var colee=$("#colee")[0];
var colee2=$("#colee2")[0];
$(colee2).html($(colee1).html()); //克隆colee1为colee2
……
然后就是事件处理了
相似回答