Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在VueJs Nuxt中设置根(<;html>;)元素的样式_Javascript_Vue.js_Dom_Virtual Dom_Root Element - Fatal编程技术网

Javascript 在VueJs Nuxt中设置根(<;html>;)元素的样式

Javascript 在VueJs Nuxt中设置根(<;html>;)元素的样式,javascript,vue.js,dom,virtual-dom,root-element,Javascript,Vue.js,Dom,Virtual Dom,Root Element,我有一个vue组件,当用户单击旋转木马上的图像时,它会在创建后显示一个完整大小的图像。此选项打开时,用户应无法滚动页面。 目前,我实现这一点的方式是直接使用overflow:hidden设置documentElement的样式;或溢出:自动;创建或销毁组件时 我的问题是这是否可以接受,或者是否有一种方法可以使用虚拟DOM。我知道直接干扰DOM通常是不好的做法,但我似乎找不到一种方法让它工作。 我试过使用这个。$root。$el.style,但似乎也不起作用 <script> expo

我有一个vue组件,当用户单击旋转木马上的图像时,它会在创建后显示一个完整大小的图像。此选项打开时,用户应无法滚动页面。 目前,我实现这一点的方式是直接使用overflow:hidden设置documentElement的样式;或溢出:自动;创建或销毁组件时

我的问题是这是否可以接受,或者是否有一种方法可以使用虚拟DOM。我知道直接干扰DOM通常是不好的做法,但我似乎找不到一种方法让它工作。 我试过使用这个。$root。$el.style,但似乎也不起作用

<script>
export default {
  props: ['imageSrc'],
  created() {
    document.documentElement.style.overflow = 'hidden';
  },

  beforeDestroy() {
    document.documentElement.style.overflow = 'auto';
  },
};
</script>

导出默认值{
道具:['imageSrc'],
创建(){
document.documentElement.style.overflow='hidden';
},
在…之前{
document.documentElement.style.overflow='auto';
},
};

您考虑过改用CSS吗?您可以创建一个带有100vh和vw的div,其位置绝对高于所有内容(使用位置:固定以防止滚动)。将全尺寸img元素放置在内部,并将其显示设置为隐藏。将旋转木马中的图像绑定到一个click方法,该方法更新完整大小的img src,并将div的显示从hidden更改为block。确保在全尺寸图像中添加按钮或单击事件,以便用户可以将显示切换回隐藏状态。

您考虑过使用CSS吗?您可以创建一个带有100vh和vw的div,其位置绝对高于所有内容(使用位置:固定以防止滚动)。将全尺寸img元素放置在内部,并将其显示设置为隐藏。将旋转木马中的图像绑定到一个click方法,该方法更新完整大小的img src,并将div的显示从hidden更改为block。确保向全尺寸图像添加按钮或单击事件,以便用户可以将显示切换回隐藏状态