Javascript 自定义函数";“休息”;当在同一页上重复使用时
我想我可以制作自己的动态幻灯片脚本Javascript 自定义函数";“休息”;当在同一页上重复使用时,javascript,oop,function,multiple-instances,Javascript,Oop,Function,Multiple Instances,我想我可以制作自己的动态幻灯片脚本 function slider( container ) { var time = 1200; var width = 1000; var container = document.getElementById(container); var name = container.childNodes[1].className; var content = document.getElementsByClassName(na
function slider( container )
{
var time = 1200;
var width = 1000;
var container = document.getElementById(container);
var name = container.childNodes[1].className;
var content = document.getElementsByClassName(name);
var num = ( content.length * width );
next = function()
{
var px = container.style.marginLeft;
var diff = Math.abs( px.replace( 'px', '' ) );
var shifted = ( diff ) ? ( diff / width ) : '0';
shifted++;
if ( shifted == content.length )
{
shifted = 0;
shift();
}
container.style.marginLeft = ( shifted == content.length ) ? '0' : '-' + ( shifted * width ) + 'px';
}
shift = function()
{
for ( var i = 0; i < content.length; i++ )
{
var delay = ( ( i + 1 ) * time );
setTimeout( next, delay );
}
}
container.style.width = num + 'px';
shift();
}
功能滑块(容器)
{
var时间=1200;
var宽度=1000;
var container=document.getElementById(容器);
var name=container.childNodes[1].className;
var content=document.getElementsByClassName(名称);
var num=(content.length*width);
下一步=函数()
{
var px=container.style.marginLeft;
var diff=数学绝对值(px.替换('px','');
变量移位=(差异)?(差异/宽度):“0”;
移位++;
if(移位==content.length)
{
移位=0;
移位();
}
container.style.marginLeft=(移位==content.length)?'0':'-'+(移位*宽度)+'px';
}
shift=函数()
{
对于(变量i=0;i
适用于所有其他幻灯片容器。幻灯片始终由内部功能更改
函数next()
此功能确定下一张幻灯片以及幻灯片何时结束,以使用另一个内部功能重置幻灯片
函数移位()
对于不同的DIV容器使用不同的vars是可以互换的,但是当我尝试运行多个实例时,如下面所示
滑块(‘元素’);
滑块('element2')
首先,它运行代码并循环浏览所有元素的幻灯片,但只有第一个实例会正确重置并继续从开始到结束、一次又一次地“滑动”。在重复实例被shift()d处理后,不会为重复实例调用所需的next()
将slider()移动到master类之外,并从页面调用它,结果是相同的
别胡闹了,因为这可能是一行修复
…将在整个页面上找到该类的所有元素,而不仅仅是在该滑块中。尝试将其更改为:
var content = container.getElementsByClassName(name);
此外,在
next=
和shift=
之前添加var
欢迎来到堆栈溢出。你需要展示你的实际代码——我们不能不看就知道出了什么问题。(而且在现场提供演示也不会有什么坏处。)谢谢!我已经展示了使用的代码。编辑:非常整洁和有用的网站。非常感谢你,我想我下次会看到的。继续教书,我们永远学不完。
var content = container.getElementsByClassName(name);