查找当前幻灯片并将Class添加到父div [英] Find current Slide and add Class to parent div

查看:75
本文介绍了查找当前幻灯片并将Class添加到父div的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在自动播放时将类添加到当前滑块的父div,我正在使用 Jssor Slider .

I'm trying to add Class to Current Slider parent div when auto-play, I am using Jssor Slider.

致电Jassor:

jQuery(document).ready(function($) {

//Define an array of slideshow transition code
var _SlideshowTransitions = [
{$Duration:1200,x:1,$Delay:40,$Cols:6,$Formation:$JssorSlideshowFormations$.$FormationStraight,$Easing:{$Left:$Jease$.$InOutQuart,$Opacity:$Jease$.$Linear},$Opacity:2,$ZIndex:-10,$Brother:{$Duration:1200,x:1,$Delay:40,$Cols:6,$Formation:$JssorSlideshowFormations$.$FormationStraight,$Easing:{$Top:$Jease$.$InOutQuart,$Opacity:$Jease$.$Linear},$Opacity:2,$ZIndex:-10,$Shift:-100}},
{$Duration:1200,y:0.3,$Cols:2,$During:{$Top:[0.3,0.7]},$ChessMode:{$Column:12},$Easing:{$Top:$Jease$.$InCubic,$Opacity:$Jease$.$Linear},$Opacity:2},
{$Duration:1200,x:0.3,$Rows:2,$During:{$Left:[0.3,0.7]},$ChessMode:{$Row:3},$Easing:{$Left:$Jease$.$InCubic,$Opacity:$Jease$.$Linear},$Opacity:2}
    ];

  var options = {
    $AutoPlay: true,

    $PauseOnHover: 1, //[Optional] Whether to pause when mouse over if a slideshow is auto playing, default value is false

    $ArrowKeyNavigation: true, //Allows arrow key to navigate or not
    $SlideWidth: 800, //[Optional] Width of every slide in pixels, the default is width of 'slides' container
    //$SlideHeight: 300,                                  //[Optional] Height of every slide in pixels, the default is width of 'slides' container
    $SlideSpacing: 0, //Space between each slide in pixels
    $Cols: 1, //Number of pieces to display (the slideshow would be disabled if the value is set to greater than 1), the default value is 1

    //New add for random transition
    $SlideshowOptions: {
      $Class: $JssorSlideshowRunner$,
      $Transitions: _SlideshowTransitions,
      $TransitionsOrder: 0, //The way to choose transition to play slideshow, 1: Sequence, 0: Random 
      $ShowLink: true
    },

    $ArrowNavigatorOptions: { //[Optional] Options to specify and enable arrow navigator or not
      $Class: $JssorArrowNavigator$, //[Requried] Class to create arrow navigator instance
      $ChanceToShow: 2, //[Required] 0 Never, 1 Mouse Over, 2 Always
      $Steps: 1 //[Optional] Steps to go for each navigation request, default value is 1
    }
  };

  var jssor_slider1 = new $JssorSlider$("slider1_container", options);

  //responsive code begin
  //you can remove responsive code if you don't want the slider scales while window resizes
  function ScaleSlider() {
    var parentWidth = jssor_slider1.$Elmt.parentNode.clientWidth;
    if (parentWidth)
      jssor_slider1.$ScaleWidth(Math.min(parentWidth, 800));
    else
      window.setTimeout(ScaleSlider, 30);
  }
  ScaleSlider();

  $(window).bind("load", ScaleSlider);
  $(window).bind("resize", ScaleSlider);
  $(window).bind("orientationchange", ScaleSlider);

}); // Call end

HTML:

<div id="slider1_container" style="position: relative; top: 0px; left: 0px; width: 800px;height: 300px; overflow: hidden;">
 <!-- Slides Container -->
 <div u="slides" style="cursor: move; position: absolute; left: 0px; top: 0px; width: 800px; height: 300px;overflow: hidden;">
    <div><img u="image" src="http://www.jssor.com/img/photography/002.jpg"/></div>
    <div><img u="image" src="http://www.jssor.com/img/photography/003.jpg"/></div>
    <div><img u="image" src="http://www.jssor.com/img/photography/003.jpg"/></div>
    <div><img u="image" src="http://www.jssor.com/img/photography/005.jpg"/></div>

</div>
</div>


我尝试给定JS:

// event fired when slider is "parked"
jssor_slider1.$On( $JssorSlider$.$EVT_PARK, function(slideIndex){

    var allImages = $(jssor_slider1.$Elmt).find("img[u=image]");
    var currentImage = allImages.eq(slideIndex);
    var currentDiv = currentImage.parent("div");

    currentDiv.addClass("current");

});

// event fired when slider starts moving
jssor_slider1.$On( $JssorSlider$.$EVT_POSITION_CHANGE, function(position){

 // remove 'current' class from all slides
 $(jssor_slider1.$Elmt).find(".current").removeClass("current"); 

});

问题演示小提琴: http://jsfiddle.net/y7fap5dy/7/
通过此js,它可以在没有自动播放的情况下正常工作,但是当滑块自动播放无法正常工作时,如何解决此建议?

预先感谢.

Problem Demo Fiddle: http://jsfiddle.net/y7fap5dy/7/
By this js it's works without auto-play, but when slider auto-play it's unable to work, how to fix this any suggestions?

Thanks in advance.

推荐答案

在您的html代码中,将类名称 current 赋予第一个div(幻灯片容器div),如下所示:

in your html code give class name current to first div (slide container div) like code given below

<div class="current" id="slider1_container" style="position: relative; top: 0px; left: 0px; width: 800px;height: 300px; overflow: hidden;">

尝试并让我知道是否可行,我认为您想要做的事.

try and let me know if that works, i think that what u wanted do.

这篇关于查找当前幻灯片并将Class添加到父div的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆