在网在找了段文字滚动的代码,自己想加工成个类方便以后使用,想完成如下功能://创建一个类beenyPmd(sd,fx,obj1,obj2,obj3)
//sd 控制滚动速度
//fx 控制滚动方向(上下左右)
//obj1,obj2,obj3分别为三个DIV对像
//pmd 方法根据 fx方向向上下左右移动
//play 方法开始滚动
//stop 方法停止滚动
<div id="lyxBox" style="width:100px; height:100px; overflow:hidden;">
<div id="text1">
My name is Li Fuli! I love my country! I love my family!<br />
我是李福利我爱我的祖国!我爱我家 <br />
<hr>
</div>
<div id="text2">
</div>
</div>
<script>
Function beenyPmd(sd,fx,obj1,obj2,obj3)
{
this.sd = sd;
this.fx = fx;
this.obj1 = obj1;
this.obj2 = obj2;
this.obj3 = obj3;
this.numHeight = obj1.scrollHeight - obj1.offsetHeight;
this.numWidth = obj1.scrollWidth - obj1.offsetWidth;
obj3.innerHTML = obj2.innerHTML;
this.pmd = function(){
if(this.obj2.offsetTop - this.obj1.scrollTop<=0||(this.obj3.offsetTop - this.obj1.scrollTop == 0 - this.numHeight))
{
this.obj1.scrollTop-=this.obj2.offsetHeight;
}else{
this.obj1.scrollTop++;
}
}
this.stop = function(kk){
clearInterval(kk);
}
this.play = function(){
return setInterval(this.pmd,this.sd);
}
}
var ss = new beenyPmd(100,1,lyxBox,text1,text2);
var kk = ss.play;
ss.obj1.onmouseover = ss.stop(kk);
ss.obj1.onmouseout = ss.play;
</script>
//sd 控制滚动速度
//fx 控制滚动方向(上下左右)
//obj1,obj2,obj3分别为三个DIV对像
//pmd 方法根据 fx方向向上下左右移动
//play 方法开始滚动
//stop 方法停止滚动
<div id="lyxBox" style="width:100px; height:100px; overflow:hidden;">
<div id="text1">
My name is Li Fuli! I love my country! I love my family!<br />
我是李福利我爱我的祖国!我爱我家 <br />
<hr>
</div>
<div id="text2">
</div>
</div>
<script>
Function beenyPmd(sd,fx,obj1,obj2,obj3)
{
this.sd = sd;
this.fx = fx;
this.obj1 = obj1;
this.obj2 = obj2;
this.obj3 = obj3;
this.numHeight = obj1.scrollHeight - obj1.offsetHeight;
this.numWidth = obj1.scrollWidth - obj1.offsetWidth;
obj3.innerHTML = obj2.innerHTML;
this.pmd = function(){
if(this.obj2.offsetTop - this.obj1.scrollTop<=0||(this.obj3.offsetTop - this.obj1.scrollTop == 0 - this.numHeight))
{
this.obj1.scrollTop-=this.obj2.offsetHeight;
}else{
this.obj1.scrollTop++;
}
}
this.stop = function(kk){
clearInterval(kk);
}
this.play = function(){
return setInterval(this.pmd,this.sd);
}
}
var ss = new beenyPmd(100,1,lyxBox,text1,text2);
var kk = ss.play;
ss.obj1.onmouseover = ss.stop(kk);
ss.obj1.onmouseout = ss.play;
</script>
解决方案 »
- 两段代码冲突
- hasChildNodes方法的疑问?
- js动态创建table的问题
- Ext基础问题——Ext.onReady() ???
- JavaScript 如何使用session?
- 梅花雪?看看楼下的贴子?标题:求一正则表达式?表单验证经常用到的!
- 求正则表达式<url>192.168.0.1/ppush/index.jsp</url><msg charset="gb2312">好,好好20好好</msg>
- javascript截取前面N个字代码怎样写?
- 如何得到复选框的文本,不是value??
- 我不会正则表达式!!!请问这个怎么写!!!Easy!!
- 一个正则
- dreamweaver 的3个选择题
function beenyPmd(sd,fx,obj1,obj2,obj3)
{
this.sd = sd;
this.fx = fx;
this.obj1 = obj1;
this.obj2 = obj2;
this.obj3 = obj3;
this.numHeight = obj1.scrollHeight - obj1.offsetHeight;
this.numWidth = obj1.scrollWidth - obj1.offsetWidth;
obj3.innerHTML = obj2.innerHTML;
var me = this;
this.pmd = function() {
if (me.obj2.offsetTop - me.obj1.scrollTop <= 0 || (me.obj3.offsetTop - me.obj1.scrollTop == 0 - me.numHeight)) {
me.obj1.scrollTop -= me.obj2.offsetHeight;
} else {
me.obj1.scrollTop++;
}
}
this.stop = function(kk){
clearInterval(kk);
}
this.play = function(){
return setInterval(this.pmd,this.sd);
}
}
var ss = new beenyPmd(100,1,lyxBox,text1,text2);
var kk = ss.play();
ss.obj1.onmouseover = function() { ss.stop(kk); }
ss.obj1.onmouseout = function() { kk = ss.play(); }
1.function应该小写Function beenyPmd(sd,fx,obj1,obj2,obj3)2.script最好放到head里面并在在window.onload事件后再执行代码3.
3.函数没有加括号var kk = ss.play;
4.不要直接直接用id引用dom
5.对于this指针理解不够
这是修改后的:
<head>
<script>
window.onload=function(){
function $(id){return document.getElementById(id)}
function beenyPmd(sd,fx,obj1,obj2,obj3)
{
this.sd = sd;
this.fx = fx;
this.obj1 = obj1;
this.obj2 = obj2;
this.obj3 = obj3;
this.numHeight = obj1.scrollHeight - obj1.offsetHeight;
this.numWidth = obj1.scrollWidth - obj1.offsetWidth;
obj3.innerHTML = obj2.innerHTML;
this.pmd = function(me){
return(function(){
if(me.obj2.offsetTop - me.obj1.scrollTop<=0||(me.obj3.offsetTop - me.obj1.scrollTop == 0 - me.numHeight))
{
me.obj1.scrollTop-=me.obj2.offsetHeight;
}else{
me.obj1.scrollTop++;
}
})
}
this.stop = function(kk){
clearInterval(kk);
}
this.play = function(){
return setInterval(this.pmd(this),this.sd);
}
}
var ss = new beenyPmd(100,1,$("lyxBox"),$("text1"),$("text2"));
var kk;
ss.obj1.onmouseover = function(){ss.stop(kk);}
ss.obj1.onmouseout = function(){kk=ss.play();}
}
</script></head>
<body>
<p id="me">dsjhfj</p>
<div id="lyxBox" style="width:100px; height:100px; overflow:hidden;">
<div id="text1">
My name is Li Fuli! I love my country! I love my family!<br />
我是李福利我爱我的祖国!我爱我家 <br />
<hr>
</div>
<div id="text2">
</div>
</div>
</body>
<div id="demo" style="width:100px; height:100px; overflow:hidden;">
<div id="demo1">
My name is Li Fuli! I love my country! I love my family!<br />
我是李福利我爱我的祖国!我爱我家 <br />
<hr>
</div>
<div id="demo2">
</div>
</div>
<script>
var speed=10;
var oldnum=demo.scrollHeight-demo.offsetHeight;
demo2.innerHTML=demo1.innerHTML;
function Marquee(){
//alert(demo2.offsetTop);
//alert('s'+demo.scrollTop);
if(demo2.offsetTop-demo.scrollTop<=0 || (demo2.offsetTop-demo.scrollTop==0-oldnum))
{
demo.scrollTop-=demo1.offsetHeight;
}
else{
demo.scrollTop++;
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>
谢谢各位,得好好学习!我是看到上面的代码就想自己整理成一个类以后方便使用!我想大家运行下应该能明白我的思路的,请大家指点!