怎么把这个控制滚动图片的js在一个页面中使用两个,分别控制两个图片div
在一个页面的两个地方使用,分别对应控制两个图片div滚动,要怎么修改,现在只能控制一个。请帮我修改一下代码。感谢!js部分<script>window.onload=fu...
在一个页面的两个地方使用,分别对应控制两个图片div滚动,要怎么修改,现在只能控制一个。请帮我修改一下代码。感谢!
js部分
<script>
window.onload=function(){
var ele=document.getElementById("description");
var w=ele.clientWidth;
var n=20,t=20;
var timers=new Array(n);
var c=document.getElementById("beni").getElementsByTagName("li");
for(var i=0;i<c.length;i++){
c[i].index=i;
c[i].onmouseover=doSlide;
}
c=null;
function doSlide(){
var x=ele.scrollLeft;
var d=this.index*w-x;
if(!d) return;
for(var i=0;i<n;i++)(function(){
if(timers[i])
clearTimeout(timers[i]);
var j=i;
timers[i]=setTimeout(function(){
ele.scrollLeft=x+Math.round(d*Math.sin(Math.PI*(j+1)/(2*n)));
},(i+1)*t);
})();
}
}
</script>
正文
<div id=wrapper>
<div id=content>
<div id=focus>
<ul id=beni>
<li><a href="#" >001</a></li>
<li><a href="#" >002</a></li>
<li><a href="#" >003</a></li>
<li><a href="#" >004</a></li>
<li><a href="#" >005</a></li>
</ul>
<div id=description>
<img src="images/12447871590.jpg" />
</div>
</div>
</div>
</div> 展开
js部分
<script>
window.onload=function(){
var ele=document.getElementById("description");
var w=ele.clientWidth;
var n=20,t=20;
var timers=new Array(n);
var c=document.getElementById("beni").getElementsByTagName("li");
for(var i=0;i<c.length;i++){
c[i].index=i;
c[i].onmouseover=doSlide;
}
c=null;
function doSlide(){
var x=ele.scrollLeft;
var d=this.index*w-x;
if(!d) return;
for(var i=0;i<n;i++)(function(){
if(timers[i])
clearTimeout(timers[i]);
var j=i;
timers[i]=setTimeout(function(){
ele.scrollLeft=x+Math.round(d*Math.sin(Math.PI*(j+1)/(2*n)));
},(i+1)*t);
})();
}
}
</script>
正文
<div id=wrapper>
<div id=content>
<div id=focus>
<ul id=beni>
<li><a href="#" >001</a></li>
<li><a href="#" >002</a></li>
<li><a href="#" >003</a></li>
<li><a href="#" >004</a></li>
<li><a href="#" >005</a></li>
</ul>
<div id=description>
<img src="images/12447871590.jpg" />
</div>
</div>
</div>
</div> 展开
1个回答
推荐于2018-04-11
展开全部
另一个图片用的地方 id 要改,比如 id=description 改为 id=lingyige,id=beni 改为 id=beni1
window.onload=function(){略去代码},是指页面加载执行一个匿名函数,你要同时执行两个效果,用匿名函数就不行,你不懂的话可以简单的这样做:
删除 "window.onload=" 这部分,给函数取一个名字如 showpic1,改好后如下:
function showpic1(){略去代码}
然后完整的复制一份 showpic1(){} ,改名为:function showpic2(){...}
showpic2 这个函数里面的:getElementById("description"); 改成 getElementById("lingyige");
getElementById("beni") 改成 getElementById("beni1")
最后是调用这两个函数,js 每次 window.onload (即页面加载时) 只能执行一个函数,你这样调用这两个函数的话是会失败的:
window.onload=showpic1();//调用函数showpic1
window.onload=showpic2();//调用函数showpic2
上面两个调用函数命令的结果是只会执行后面这个 showpic2,前面的 showpic1 不执行,所以你需要一些办法来在页面加载时同时调用这两个函数,这个办法有好几个,也很简单,你自己动手百度:js window.onload 调用多个函数,然后看别人的例子自己学着调用。
另外 函数的 ( ) 里面是可以传参数进去的,如果改为传 html 的 id 参数后再去执行,那么完全可以不复制出 showpic2(){} 这份函数,一个函数就能实现对两处或多处 html 起作用,但是你不太懂的话,复制两份的方法最简单,建议网上下点书看看,学上几天你就能自己能搞定传参数的问题。
window.onload=function(){略去代码},是指页面加载执行一个匿名函数,你要同时执行两个效果,用匿名函数就不行,你不懂的话可以简单的这样做:
删除 "window.onload=" 这部分,给函数取一个名字如 showpic1,改好后如下:
function showpic1(){略去代码}
然后完整的复制一份 showpic1(){} ,改名为:function showpic2(){...}
showpic2 这个函数里面的:getElementById("description"); 改成 getElementById("lingyige");
getElementById("beni") 改成 getElementById("beni1")
最后是调用这两个函数,js 每次 window.onload (即页面加载时) 只能执行一个函数,你这样调用这两个函数的话是会失败的:
window.onload=showpic1();//调用函数showpic1
window.onload=showpic2();//调用函数showpic2
上面两个调用函数命令的结果是只会执行后面这个 showpic2,前面的 showpic1 不执行,所以你需要一些办法来在页面加载时同时调用这两个函数,这个办法有好几个,也很简单,你自己动手百度:js window.onload 调用多个函数,然后看别人的例子自己学着调用。
另外 函数的 ( ) 里面是可以传参数进去的,如果改为传 html 的 id 参数后再去执行,那么完全可以不复制出 showpic2(){} 这份函数,一个函数就能实现对两处或多处 html 起作用,但是你不太懂的话,复制两份的方法最简单,建议网上下点书看看,学上几天你就能自己能搞定传参数的问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询