javascript - 当使用 Vue 隐藏或显示元素时,MDL 样式会丢失

标签 javascript html css vue.js material-design

使用 Vue 隐藏和显示元素时,会丢失一些 mdl 样式。请参阅此 CodePen 示例:https://codepen.io/anon/pen/RBojxP

HTML:

<!-- MDL -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
  <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
  <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>

  <!-- Vue (latest stable) -->
  <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

  <div id="main">
    <div class="mdl-grid">
      <div class="mdl-cell mdl-cell--6-col">
        <!-- Slider -->
        <div v-if="showSlider" id="sliderContainer">
          <input class="mdl-slider mdl-js-slider" type="range" min="0" max="100" value="0" tabindex="0">
        </div>
        <button @click="showSlider = !showSlider" class="mdl-button mdl-js-button mdl-button--colored mdl-js-ripple-effect">
          Toggle Slider
        </button>
      </div>
      <div class="mdl-cell mdl-cell--6-col">
        <!-- Switch -->
        <label v-if="showSwitch" class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-1">
          <input type="checkbox" id="switch-1" class="mdl-switch__input" checked>
          <span class="mdl-switch__label"></span>
        </label>
        <button @click="showSwitch = !showSwitch" class="mdl-button mdl-js-button mdl-button--colored mdl-js-ripple-effect">
          Toggle Switch
        </button>
      </div>
    </div>
  </div>

JS:

var app = new Vue({
  el: '#main',
  data: {
    showSlider: true,
    showSwitch: true
  }
})

切换按钮几次,然后看到样式离开。不确定这是 Vue 问题还是 MDL 问题。我不确定这是否适用于所有 mdl 组件,但它发生在 slider 和开关上。

最佳答案

发布后一分钟(当然)找到了解决方案。我正在使用 v-if 并且我需要使用 v-show

关于javascript - 当使用 Vue 隐藏或显示元素时,MDL 样式会丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51433582/

相关文章:

javascript - jQuery 进度条不工作

javascript - 模板文字在 JavaScript 中无法正常工作

html - Bootstrap : responsive div in between two fixed div elements

html - 图像高度在 Internet Explorer 8 中不缩放

css - 如何将特定的 CSS 规则仅应用于 Chrome?

css - 如何在 div 上应用变换和过渡效果

javascript - 键盘按键和箭头无法正确使用此脚本

html - 如何将页脚保留在我的图片库下方

html - CSS "full width"部分在移动设备上无法正常工作

javascript - 在页面加载时显示目录中的图像