将CSS Carousel材质化后在鼠标输入上显示指示器

问题描述 投票:0回答:1

你好,我有问题。

我正在尝试在mouseenter事件上更改Carousel实例的选项。我需要做什么才能重新渲染实例?

我的HTML:

  <div class="carousel carousel-slider center">
    <div class="carousel-fixed-item center">
      <a class="btn waves-effect white grey-text darken-text-2">button</a>
    </div>
    <div class="carousel-item red white-text" href="#one!">
      <h2>First Panel</h2>
      <p class="white-text">This is your first panel</p>
    </div>
    <div class="carousel-item amber white-text" href="#two!">
      <h2>Second Panel</h2>
      <p class="white-text">This is your second panel</p>
    </div>
    <div class="carousel-item green white-text" href="#three!">
      <h2>Third Panel</h2>
      <p class="white-text">This is your third panel</p>
    </div>
    <div class="carousel-item blue white-text" href="#four!">
      <h2>Fourth Panel</h2>
      <p class="white-text">This is your fourth panel</p>
    </div>
  </div>

我的js:

  document.addEventListener('DOMContentLoaded', function() {
    var elems = document.querySelectorAll('.carousel');
    var instances = M.Carousel.init(elems, {
          fullWidth: true,
          indicators: false
    });
  });

document.querySelector('.carousel').
    addEventListener('mouseenter', function(event) {
      var elem = document.querySelector('.carousel');
      M.Carousel.getInstance(elem).options.indicators = true;
    });

以下是代码笔上的示例:https://codepen.io/bearwithme/pen/MWaOvbX

javascript html css materialize
1个回答
0
投票

好吧,我首先初始化指标,然后用简单的CSS onhover隐藏和显示它们。 Waaaaaay比较容易。

如果您必须更改mouseenter的功能,则需要销毁实例并重新初始化:

instance.destroy();
var elems = document.querySelectorAll('.carousel');
var instances = M.Carousel.init(elems, {
          fullWidth: true,
          indicators: true
    });

https://materializecss.com/carousel.html#methods

© www.soinside.com 2019 - 2024. All rights reserved.