javascript - 将内联样式不透明度值与观察者属性绑定(bind)

标签 javascript html css vue.js

我一直在尝试将 div 的不透明度与 slider 的值绑定(bind)。

<div class="container" v-bind:style="opacity">test content</div>

但是,我无法使绑定(bind)正常工作,并且在检查开发人员工具时看到的是 div 绑定(bind)到某个 [object object] 并且不是样式本身。

这是我的观察者的样子:

watch:{
opacity: function(oldMessage, newMessage) {
            console.log(this.opacity);
            return {
                '"style"':this.opacity
            }
        },
},...

我可以看到不透明度的值正确地出现在控制台上。值范围是 0-1,看起来像这样。 enter image description here

我不确定就内联绑定(bind)而言这里出了什么问题。任何帮助将不胜感激!

最佳答案

如果 opacity 是一个数字,你必须像这样使用它:

<div class="container" v-bind:style="{opacity: opacity}">test content</div>

{opacity: opacity} 中,第一个是 CSS 属性名称,第二个是 data vue 属性名称。

注意:您对观察者的使用:

watch:{
opacity: function(oldMessage, newMessage) {
            console.log(this.opacity);
            return {
                '"style"':this.opacity
            }
        },
},...

意义不大。观察者不返回值。您返回该对象根本没有用。也许你想要的是一个计算属性:

new Vue({
  el: '#app',
  data: {
    opacity: 0.5
  },
  computed: {
    containerStyle() {
      return {opacity: this.opacity}
    }
  }
})
<script src="https://unpkg.com/vue"></script>

<div id="app">
  <input type="range" min="0" max="1" value="0.5" step="0.01" v-model="opacity"> {{ opacity }}
  <div class="container" v-bind:style="containerStyle">TEST CONTENT</div>
</div>

关于javascript - 将内联样式不透明度值与观察者属性绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49971728/

相关文章:

javascript - 将 SeqeunceJS 与 Twitter Bootstrap 3.0 集成

css - 如何定位 CSS 表单标签/值?

javascript - JavaScript 中的 Frameborder 制作 iframe

javascript - 使用 Javascript 将单元格数据从一个表拉到另一个表

javascript - 自动完成 PHP、SQL 和 Javascript

html - 对齐标题底部

css - 背景视频无法在手机上播放?

javascript - 管理小部件的可见性和不可见性

javascript - 文本框的字符限制

javascript - 隐藏在 JS 幻灯片后面的下拉菜单