Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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
Jquery css.not(this)元素,根据它';s指数_Jquery_Css - Fatal编程技术网

Jquery css.not(this)元素,根据它';s指数

Jquery css.not(this)元素,根据它';s指数,jquery,css,Jquery,Css,我正在尝试创建一个手风琴滑块。 到目前为止,我已设法: 通过将滑块宽度除以滑块数量,开始每个滑块的第一个位置 每次单击幻灯片都会将其移动到一个等于当前幻灯片索引值5%*的位置(例如第一张幻灯片的0x5%,第二张幻灯片的1x5%,第三张幻灯片的2x5%,等等) 以下是迄今为止的代码: jQuery(document).ready(function($) { $(".slides li").each(function(initial) { var sliderwidth = $(".s

我正在尝试创建一个手风琴滑块。 到目前为止,我已设法:

  • 通过将滑块宽度除以滑块数量,开始每个滑块的第一个位置
  • 每次单击幻灯片都会将其移动到一个等于当前幻灯片索引值5%*的位置(例如第一张幻灯片的0x5%,第二张幻灯片的1x5%,第三张幻灯片的2x5%,等等)
  • 以下是迄今为止的代码:

    jQuery(document).ready(function($) {
    
      $(".slides li").each(function(initial) {
        var sliderwidth = $(".slides").width(); //entire slider width
        var slideindex = $(".slides li").length; //how many slides are in a slider
        var firstpos = sliderwidth / slideindex; //divided entire width by number of slides (1000/4 in this case, equals 250)
        initial = initial * firstpos; //each slides's initial position is incremented by 250, making the slides position 0, 250px, 500px, 750px
        $(this).css("left", initial); //css left with numbers above
      });
    
      $(".slides li").click(function() {
        var moveindex = $(".slides li").index(this); //the index value of the clicked slide (eg. 0, 1, 2 or 3)
        var movethis = parseInt(moveindex, 10) * 5; //multiply index value of current slide by 5 (as we want each slide to position itself on click 5% to the left)
        $(this).css("left", movethis + "%"); //css left with numbers above
    
      });
    
    });
    
    现在,我试图让其他幻灯片(不是当前单击的幻灯片)根据它们的相对索引值移动。例如:

    单击幻灯片#4将幻灯片1移动到0x5%,幻灯片2移动到1x5%,幻灯片3移动到2x5%

    但是我找不到一个方法

    $(".slides li").not(this).index();
    
    有什么想法吗


    谢谢

    使用
    index
    可以在调用
    index
    的结果集中获取已传递元素的索引

    因此,您希望迭代所有不属于此
    li
    ,并检查
    索引
    li
    在所有
    li
    列表中的内容:

    var listOfAllLi = $(".slides li")
    var listWithoutThis = listOfAllLi.not(this)
    
    listWithoutThis.each(function(_, element) {
      var indexOfElement = listOfAllLi.index(element)
      console.log(indexOfElement)
    })
    

    谢谢那么,我该如何将其插入到单击功能中呢?@IDoanger Bohadana这将在单击功能中起作用。您确实需要将
    console.log(listOfAllLi.index(element))
    替换为对
    元素有用的代码。请尝试以下操作:var listOfAllLi=$(.slides li”)var listofally without this=listOfAllLi。而不是(this)listofally without this。每个(函数(idx,element){.idx=idx*5;$(.slides li”)。不是(this)。css(“左”,idx+“%”;})但不起作用…我做错了什么?@IDoanger Bohadana
    element
    是您要移动的元素,
    listOfAllLi.index(element)
    是该元素的索引。所以您想使用
    $(.slides li”)。不是(这个)
    同样,如果您已经有了
    元素
    ?啊!类似这样的东西:没有这个的列表。每个(函数(idx,元素){var previndex=listOfAllLi.index(元素)*5$(元素).css(“左”,previndex+“%”;})