【问题标题】:Need JSSOR Slider to land on specific image depending on referring page需要 JSSOR 滑块根据参考页面降落在特定图像上
【发布时间】:2017-03-15 21:42:07
【问题描述】:

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

任何帮助将不胜感激。

谢谢!

【问题讨论】:

  • 它初始化为jssor_1_options,但您将$StartIndex 设置为jssor_slider_options
  • 太棒了!所以我在这里添加 $StartIndex: var jssor_1_options = { $StartIndex, $ArrowNavigatorOptions... @jssor
  • 是的,它应该可以工作。

标签: javascript php jquery html jssor


【解决方案1】:

终于搞定了!意识到我需要来自单个页面的多个图像才能落在不同的图像上,我开始研究从 PHP 端发送和捕获变量。我将变量字符串添加到每个图像链接:

    <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 提供的帮助 - 干杯!

【讨论】:

    【解决方案2】:
    //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
      }
    };
    

    【讨论】:

    • 谢谢@jssor,我用新的滑块创建了一个新页面。但是,我在选项中添加了 $StartIndex: startIndex, 现在整个滑块从页面上消失了......我什至没有添加 if else 语句,只是添加 $StartIndex 的选项似乎已经让它消失了。
    • 请将您的$StartIndex, 替换为$StartIndex: startIndex,
    • 这就是我所做的,整个脚本现在看起来像这样-仅在选项中添加该行会使滑块消失jssor_1_slider_init = function() { var jssor_1_options = { $StartIndex: startIndex, //added start index option $ArrowNavigatorOptions: { $Class: $JssorArrowNavigator$ }, @jssor
    • 我明白了,请在此处留下您网页的网址。
    • 感谢@jssor - 我向 jssor_dev 发送了一封包含 url 和详细信息的电子邮件。我确实弄清楚了它为什么消失了——当我添加var startIndex = 0; 时,滑块又可以工作了。我也添加了 if 语句,但两个引用页面仍然落在图像 #1 上 - 而不是指定的图像。再次感谢
    猜你喜欢
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多