用一组jQuery代码制作多个滑块

时间:2018-07-22 13:56:22

标签: javascript jquery html css

我已经使用html标记制作了带有jQuery的滑块,这些html标记具有类而不是ID,以便我可以将相同的jQuery代码用于其他重复的滑块。

问题是,我希望根据ul的数量来计算li的宽度,而不是在CSS中手动设置宽度。当只有一个滑块时,我可以在函数外部设置变量,但是当我必须通过html部件上的事件属性使用它时,我才能将它们用于多个滑块,则必须将变量移动到内部我的函数设置的宽度错误。

这是我的代码:

 function OLAR(direction,span) {
        var OurNexNPrv = $(span);
        var Parent_OLAR = OurNexNPrv.parents('.OLAR');
        var UL_OF_OLAR = Parent_OLAR.find('.OLAR_CONTENT ul');
        var LI_OF_OLAR = UL_OF_OLAR.find('li');
        var LI_OF_OLAR_LENGTH = LI_OF_OLAR.length;
        var Quantity_OF_OLAR_PAGES = LI_OF_OLAR_LENGTH / 3;
        var Max_Margin_LEFT = -(Quantity_OF_OLAR_PAGES - 1) * 576;
        UL_OF_OLAR.css('width',LI_OF_OLAR_LENGTH*192);

        var AffectedLeftMargin;
        var CurrentLeftMargin = UL_OF_OLAR.css('margin-left');

        CurrentLeftMargin = parseFloat(CurrentLeftMargin);

        if (direction == 'right') {
            AffectedLeftMargin = CurrentLeftMargin - 576;
        }
        if (direction == 'left') {
            AffectedLeftMargin = CurrentLeftMargin + 576;
        }

        if (AffectedLeftMargin < Max_Margin_LEFT) {
            AffectedLeftMargin = 0;
        }

        if (AffectedLeftMargin > 0) {
            AffectedLeftMargin = Max_Margin_LEFT;
        }

        UL_OF_OLAR.animate({'marginLeft': AffectedLeftMargin}, 1000);
    }

    $('.CIRCLE_LOAD_RIGHT').click(function () {
        OLAR('right');
    });

    $('.CIRCLE_LOAD_LEFT').click(function () {
        OLAR('left');
    });

如何通过该函数外部的CSS命令分别为每个ul设置宽度?

1 个答案:

答案 0 :(得分:0)

好的,我的ul标签没有绝对位置;在给定正确的位置以及left:0和bottom:0或right:0和bottom:0(根据您的语言)之后,来自JQuery代码的给定宽度可以与其他所有内容完美地押韵。我已经尝试过使用多个滑块,并且效果很好:) 因此,我们需要一个锚点才能完成这项工作。而且上面提到的这个JQuery代码没有错! 祝你有美好的一天。