Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自定义函数";“休息”;当在同一页上重复使用时_Javascript_Oop_Function_Multiple Instances - Fatal编程技术网

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);