【发布时间】:2019-05-11 16:07:19
【问题描述】:
我尝试通过 Nuxt 组件中的挂载函数更改 $navbar-height 的值。
到目前为止一切正常,除了覆盖 Bulma 变量
我在 Nuxt 配置中添加了 Bulma:
modules: [
// Doc: https://github.com/nuxt-community/axios-module#usage
'@nuxtjs/axios',
// Doc:https://github.com/nuxt-community/modules/tree/master/packages/bulma
'@nuxtjs/bulma',
'@nuxtjs/font-awesome'
]
并更改了我的main.scss 文件中的一些变量:
@import '~bulma/sass/utilities/initial-variables';
@import '~bulma/sass/utilities/mixins';
@import '~bulma/sass/utilities/functions';
$primary: #3dccc8;
$danger: #dc5222;
$navbar-height: 5rem;
$navbar-item-img-max-height: 3rem;
@import '~bulma/bulma';
main.scss 也被添加到 Nuxt 配置中
css: [
{ src: '~assets/css/main.scss', lang: 'scss' }
],
我现在尝试操作组件中的变量,但没有任何反应。
函数如下:
mounted() {
this.$nextTick(function(){
window.addEventListener("scroll", function(){
var navbar = document.getElementById("nav")
var nav_classes = navbar.classList
if(document.documentElement.scrollTop >= 10) {
if (nav_classes.contains("shrink") === false) {
nav_classes.toggle("shrink");
console.log(nav_classes)
}
}
else {
if (nav_classes.contains("shrink") === true) {
nav_classes.toggle("shrink");
}
}
})
})
}
【问题讨论】:
-
你不能在javascript运行时覆盖sass变量,因为sass被编译成css
-
那么还有其他解决方案吗?
标签: css vue.js sass bulma nuxt.js