html - 由于 div 的高度,页面没有从顶部开始

标签 html css vue.js material-design-lite vue-router

我目前正在使用 Vuejs 并路由到其他页面。对于我的照片链接,我想要一张覆盖整个屏幕的主封面照片。

<template>
    <div id="album-container">

     <div class="cover-image"></div>

     <section class='intro'>Lorem </section>

     <div class="image-flex-wrap">
        <div class="image-cell" v-for="image in images">
            <img :src="image">
        </div>
     </div>

    </div>
</template>



.cover-image {
   background: url('my photo') #fff  no-repeat center center;
   background-size: cover;
   height: 100vh;
}

这会按照我想要的方式显示页面,但是当我从之前向下滚动的页面路由到此页面时,问题就出现了。它不是从页面顶部开始,而是从我的封面图像 div 的中间开始。我认为问题与高度有关:100vh,因为如果我将其替换为position:absolute和 100% 的宽度,那么页面将从顶部开始。但是,我想避免使用绝对定位,但对 css 的了解不足,无法理解为什么会发生这种情况。

最佳答案

感谢您的建议。

事实证明这个问题与 Vuejs 无关。我没有提到我正在使用 Material Design Lite,因为我没想到它是原因,但不幸的是。由于它的工作方式,您不再通过 MDL 提供的 .mdl-layout__content 类在窗口对象上滚动。这就是所有与窗口相关的滚动属性都返回 0 的原因。

我只是在我的路线上设置了一个 watch 方法来强制 scrollTop。

watch: {
 $route() {
  document.getElementsByClassName('mdl-layout').scrollTop = 0;
 }
}

关于html - 由于 div 的高度,页面没有从顶部开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42126956/

相关文章:

javascript - maxLength 不是一个函数

javascript - Angular 访问数组中另一个 ngFor 上的 ngFor 索引

css - 连续 3 张图像在容器中居中

html - 不确定如何制作具有可缩放背景的自定义 <div>

vue.js - Vuetify timepicker 将值返回给模型

javascript - 密码未显示

html - Go 中将 webcolor html 颜色名称转换为十六进制的函数 |深橙色 -> #FF8C00

CSS - Firefox 和 IE 浏览器不采用给定的固定宽度

javascript - 如何简化 VueJS 的这段代码

unit-testing - Vue.js vue-router 无论如何都要测试导航守卫?