需要 JSSOR Slider 根据引用页面登陆特定图像

Need JSSOR Slider to land on specific image depending on referring page

对 Javascript 很陌生,正在研究需要以特定图像开头的滑块,具体取决于查看者来自哪个页面。

我直接使用 JSSOR 工作了一点,但已经到了无法让它工作的地步。

在捕获文档引荐来源网址或设置图像索引时,我可能会忽略一些地方。

您是否需要为滑块中的每个图像分配一个索引才能正常工作,还是它们会自动从上到下编入索引?

这是滑块中第一张图片的代码 - 未分配索引

<div data-p="208.625">
    <img data-u="image" src="images/Seat_Gray_1.jpg" title="Gray seat option 1" alt="Gray seat, first option"/>
    <img data-u="thumb" src="images/Seat_Gray_1.jpg" width="150px"/>
</div>

下面是尝试捕获引用页面并根据它来自网站的哪个页面设置第一张图片的代码:

这是它开头的原始滑块代码:

jssor_1_slider_init = function() {

        var jssor_1_options = {
          $ArrowNavigatorOptions: {
            $Class: $JssorArrowNavigator$
          },
          $ThumbnailNavigatorOptions: {
            $Class: $JssorThumbnailNavigator$,
            $Cols: 6,
            $SpacingX: 8,
            $SpacingY: 15,
            $Align: 395
          }
        };

        var jssor_1_slider = new $JssorSlider$("jssor_1", jssor_1_options);

现在,插入新代码以获取引用 url 来决定 startIndex 的位置。图片页面有效,但始终从第一张幻灯片(幻灯片 0)开始。

下面是添加新代码的正确位置吗?

jssor_1_slider_init = function() {

/************************ Jump Test start ********************/
        var startIndex = 0;

        var incomingPage = document.referrer;

        if ( incomingPage == "http://www.example.com/black_seats.php" ) {
            startIndex: 4;

        } else if ( incomingPage == "http://www.example.com/red_products.php" ) {
            startIndex: 8;

        } else if ( incomingPage == "http://www.example.com/green_products.php" ) {
            startIndex: 14;

       } else {
           startIndex: 0;
       }

/************************ Jump Test end - start of original script ********************/

        var jssor_1_options = {
          $ArrowNavigatorOptions: {
            $Class: $JssorArrowNavigator$
          },
          $ThumbnailNavigatorOptions: {
            $Class: $JssorThumbnailNavigator$,
            $Cols: 6,
            $SpacingX: 8,
            $SpacingY: 15,
            $Align: 395
          }
        };

/************************ Jump Test add start index ********************/

        var jssor_slider_options = {
            $StartIndex: startIndex
  };

/************************ Final line of original code ********************/

        var jssor_1_slider = new $JssorSlider$("jssor_1", jssor_1_options);

如有任何帮助,我们将不胜感激。

谢谢!

//specifies startIndex according to page comes from
var startIndex = 0;

var jssor_1_options = {
  $StartIndex: startIndex,
  $ArrowNavigatorOptions: {
    $Class: $JssorArrowNavigator$
  },
  $ThumbnailNavigatorOptions: {
    $Class: $JssorThumbnailNavigator$,
    $Cols: 6,
    $SpacingX: 8,
    $SpacingY: 15,
    $Align: 395
  }
};

终于成功了!意识到我需要来自单个页面的多张图像才能登陆不同的图像,我开始考虑从 PHP 端发送和捕获变量。我将变量字符串添加到每个图像 link:

    <a href="seats.php?incomingCategory=blackSeat01">
    <img src="images/BlackSeat01_thumb.jpg" ...
    </a>

然后在着陆图片滑块页面上,我在滑块初始化之前添加了这段PHP代码以捕获传入变量:

    <?php
    $incomingCategory = $_GET['incomingCategory'];
    ?>

发送后,在滑块函数中,我添加了以下 if/else 语句来回显传入的字符串变量并将滑块指向正确的幻灯片:

    var startIndex = 0;

    //put php variable to a javascript variable 
    var incomingPage = <?php echo json_encode($incomingCategory, JSON_HEX_TAG); ?>; 

        if ( incomingPage == "graySeat01" ) {
            startIndex = 0;

        } 

        else if ( incomingPage == "blackSeat01" ) {
            startIndex = 3;

        }

        else if ( incomingPage == "blackSeat02" ) {
            startIndex = 4;

        }

        else if ( incomingPage == "blueSeat01" ) {
            startIndex = 8;

        }

        else if ( incomingPage == "blueSeat02" ) {
            startIndex = 9;

        }

        else {
            startIndex = 0;
        }

现在每次都能完美运行。我在早期工作时遇到了问题,因为我将变量设置为带有单个 = 的字符串。字符串被捕获,但它并没有改变幻灯片。将其更改为 == 瞧!

感谢@jssor 的帮助 - 干杯!