使用wordpress制作Javascript幻灯片

时间:2016-09-06 15:03:03

标签: javascript php html wordpress advanced-custom-fields

我迈出了学习编码的第一步。我做了一些关于html,css,javascript,php和MySql的课程,现在,我决定在构建Wordpress儿童主题时继续学习这个练习。

问题是我正在制作图像幻灯片。要开始了解如何制作它,我发现了这一点:http://www.w3schools.com/w3css/w3css_slideshow.asp

这是一个简单实用的幻灯片。真的很棒!但是如果我想在Wordpress中实现它会有一些问题。

我制作了一个帖子类型并使用高级自定义字段插件创建了一个Repeater字段。所以在Wordpress中代码就是这样的代码:

<?php get_header(); ?>

<script>

var slideIndex = 1;
showDivs(slideIndex);

function plusDivs(n) {
  showDivs(slideIndex += n);
}

function showDivs(n) {
  var i;
  var x = document.getElementsByClassName("mySlides");
  if (n > x.length) {slideIndex = 1}
  if (n < 1) {slideIndex = x.length}
  for (i = 0; i < x.length; i++) {
     x[i].style.display = "none";
  }
  x[slideIndex-1].style.display = "block";
}

</script>


<?php


if( have_rows('image') ):

    while ( have_rows('image') ) : the_row();


                if( get_sub_field('subimage') ) :

            echo '<div class="mySlides">' . get_sub_field('subimage') . '</div>';
          endif;

    endwhile;


endif;

?>

<a class="home-btn-left" onclick="plusDivs(-1)">❮</a>
<a class="home-btn-right" onclick="plusDivs(1)">❯</a>


</div>

<?php get_footer(); ?>

它几乎完美无缺!但现在我有两个问题:

1)一旦我加载页面以查看模板。我看到第一张图片覆盖了最后一张图片。我不知道为什么:

enter image description here

2)在幻灯片放映结束时,有一张空幻灯片。看起来我有一个空的子字段,但不,我没有空的子字段。我不知道为什么会有空幻灯片。

你有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:2)

我认为问题是在</div>之前的最后一次结束DIV get_footer()。这是一个简单的html标记错误导致浏览器失败。您的代码应如下所示:

<?php get_header(); ?>

<script>

var slideIndex = 1;

function plusDivs(n) {
  showDivs(slideIndex += n);
}

function showDivs(n) {
  var i;
  var x = document.getElementsByClassName("mySlides");
  if (n > x.length) {slideIndex = 1}
  if (n < 1) {slideIndex = x.length}
  for (i = 0; i < x.length; i++) {
     x[i].style.display = "none";
  }
  x[slideIndex-1].style.display = "block";
}

</script>


<?php

if( have_rows('image') ):
  while ( have_rows('image') ) : the_row();
    if( get_sub_field('subimage') ) :
      echo '<div class="mySlides">' . get_sub_field('subimage') . '</div>';
    endif;
  endwhile;
endif;

?>

<a class="home-btn-left" onclick="plusDivs(-1)">❮</a>
<a class="home-btn-right" onclick="plusDivs(1)">❯</a>

<script>
  showDivs(slideIndex);
</script>

<?php get_footer(); ?>

如果这不能解决您的问题,请告诉我。