【问题标题】:Materialize CSS Carousel show indicators on mouseenter在 mouseenter 上实现 CSS 轮播显示指示器
【发布时间】:2020-05-03 14:19:10
【问题描述】:

您好,我有问题。

我正在尝试更改 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;
    });

下面是 codepen 上的示例:https://codepen.io/bearwithme/pen/MWaOvbX

【问题讨论】:

    标签: javascript html css materialize


    【解决方案1】:

    好的,首先我会初始化指标,然后用简单的 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

    【讨论】:

    • 是的,我最终确实用额外的课程隐藏了它。重新初始化的问题是它不会破坏&lt;div class="indicators"&gt;,我必须用额外的js来做到这一点。我认为如果该组件在下一个版本中将其作为本机功能会很好,这对我来说似乎是一个非常常见的用例。
    猜你喜欢
    • 2022-09-29
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2015-08-13
    • 2019-02-28
    • 2017-08-10
    • 2016-03-03
    • 1970-01-01
    相关资源
    最近更新 更多