在小屏幕上滚动时,导航栏为什么会向右移动一点?

x

如问题所示,我的问题是,当我将窗口调整为较小的尺寸并向下滚动时,导航栏的浮动元素会向右滑动一点,并且在窗口中不再完全可见。

一般而言,我对Web开发还很陌生,因此我们将不胜感激。

这是我的滚动功能的代码:

// When the user scrolls the page, execute myFunction
window.onscroll = myFunction
// Get the navbar
var navbar = document.getElementById("navbar");

// Get the offset position of the navbar
var sticky = navbar.offsetTop;

// Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position
function myFunction() {
  if (window.pageYOffset >= sticky) {
    navbar.classList.add("sticky")
  } else {
    navbar.classList.remove("sticky");
  }
}

提前致谢。

这是代码:https : //jsfiddle.net/mxfiddle/fubLo45j/

拉克夏·塔库尔(Lakshya Thakur)

发生这种现象的原因是position:fixedelement超出了常规文档流的范围,因此没有占用其容器div(navbar-wrapper的宽度您需要sticky显式计算元素上的宽度

我已经习惯width:calc(100% - 60px) !important了。

100%装置的宽度的100%,你的情况宽度。现在60px总共减去,因为您30pxbody元素上定义了左右边距

!important(看起来并不重要,但它意味着这很重要),因为你要添加的位是必需的sticky类明确地在稍后的时间使用JS当所有的CSS属性已经与相应的应用specificty因此width,您最初使用会覆盖最初申请的任何内容!important

注意-避免使用!important如果您负责创建自己的CSS并在代码中遇到!important的主要用法,则表明您的CSS可以利用重构。

// When the user scrolls the page, execute myFunction
window.onscroll = myFunction
// Get the navbar
var navbar = document.getElementById("navbar");

// Get the offset position of the navbar
var sticky = navbar.offsetTop;

// Add the sticky class to the navbar when you reach its scroll position. Remove "sticky" when you leave the scroll position
function myFunction() {
  if (window.pageYOffset >= sticky) {
    navbar.classList.add("sticky")
  } else {
    navbar.classList.remove("sticky");
  }
}
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: auto;
  padding: 0px;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
  max-width: 900px;
  font-family: "PMN Caecilia", sans-serif;
  text-align: justify;
  list-style: decimal;
}

/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

body {
  overflow-y: scroll;
  margin: 30px;
  line-height: 1.6;
  font-size: 120%;
  max-width: 800px;
  margin-bottom: 100px;
  background-color: #FAFAFA;
  color: #000000;
}

h1 {
  font-size: 220%;
  font-family: "PMN Caecilia", sans-serif;
  margin-bottom: 30px;
  margin-top: 30px;
}

h2 {
  font-family: "PMN Caecilia", sans-serif;
  font-size: 160%;
}

p {
  font-size: 85%;
  margin-top: 30px;
  margin-bottom: 30px;
}

a {
  color: #8000FF;
  text-decoration: none;
  position: relative;
}

#navbar {
  float: left;
  height: 80px;
  width: 100%;
  max-width: 800px;
  top: 0px;
  overflow: hidden;
  background-color: #FAFAFA;
}

#navbar a {
  top: 0px;
  padding-top: 30px;
  padding-bottom: 30px;
}

#navbar a:after {
  content: "";
  position: absolute;
  left: 0%;
  right: 100%;
  bottom: -5px;
  background: #8000FF;
  height: 3px;
  transition-property: left right;
  transition-duration: 0.3s;
  transition-timing-function: ease-out;
}

#navbar a:hover:after {
  right: 0%;
}

.sticky {
  position: fixed;
  top: 0;
  width: calc(100% - 60px) !important;
}

.header {
  width: 100%;
  top: 0px;
  margin-bottom: 100px;
}

.content {
  top: 0px;
  width: 100%
}
<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1">
    <title>This will be my personal webiste!</title>
    <link href="/Users/max/Desktop/Site/set.css" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="/Users/max/Desktop/Site/navbar.js" async></script>
  </head>

  <body>
    <div class="navbar-wrapper" style="height: 80px">
      <div id="navbar">
        <a style="float: left" href="/Users/max/Desktop/Site/index.html">Hello World!</a>
        <a style="float: right; padding-left: 3%;" href="/Users/max/Desktop/Site/Writing.html">Writing</a>
        <a style="float: right; padding-left: 3%;" href="/Users/max/Desktop/Site/Projects.html">Projects</a>
        <a style="float: right; padding-left: 3%;" href="/Users/max/Desktop/Site/About.html">About</a>
      </div>
    </div>
    <div class="header">
      <h1>Hello, World!</h1>
    </div>
    <div class="content">
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum blandit quam magna, vitae viverra magna accumsan quis. Quisque venenatis nisl eu erat viverra posuere. Cras sed risus ut tortor porttitor luctus et ac velit. Nunc aliquam commodo mauris nec luctus. Phasellus commodo rutrum diam id placerat. In pretium nec metus quis vehicula. Pellentesque euismod, purus id tempor imperdiet, justo turpis vestibulum dui, non tristique tortor est a urna. Suspendisse lobortis faucibus nisl in faucibus. Vestibulum id lacus justo. Vestibulum justo lectus, euismod sit amet tellus sed, hendrerit pellentesque tellus. Nulla semper et tellus eu gravida. Duis non leo sit amet augue sagittis convallis non id ipsum. Sed nec nisi sit amet augue facilisis ullamcorper et in sem. Suspendisse ut purus nec ligula varius dictum.

Etiam porta nunc eu urna luctus porta. In tellus felis, bibendum vel eleifend vitae, gravida suscipit metus. Nunc sed eleifend risus. In at fermentum enim. Pellentesque malesuada libero ut tortor varius, ut porttitor risus bibendum. Ut hendrerit semper sapien, feugiat tempus velit hendrerit in. Aliquam consequat tempor urna, et varius sapien luctus eu. In nulla orci, mollis et fermentum ac, malesuada et nisi. Proin sed felis at metus ornare accumsan at sit amet arcu. Vestibulum enim augue, feugiat vel ligula in, aliquet condimentum mi. Curabitur ullamcorper dui ante, sit amet vehicula neque hendrerit id. Phasellus malesuada non nisi sed convallis. Mauris in ligula vel felis bibendum viverra. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin malesuada pellentesque imperdiet. Nam pretium odio in tellus pulvinar malesuada.
      </p>
    </div>
  </body>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在小屏幕上滚动时,导航栏为什么会向右移动一点?

来自分类Dev

我正在尝试将导航栏中的链接向右移动160px,但我无法做到这一点

来自分类Dev

导航栏向左/向右移动

来自分类Dev

我的导航栏文本仅在XS上显示时为什么会移动到下一行?

来自分类Dev

为什么在小屏幕上无法打开导航栏?

来自分类Dev

如何在输入字段中从左向右移动光标一点

来自分类Dev

在锚点上单击ng时,导航栏菜单为什么会闪烁?

来自分类Dev

为什么底线向右缩进一点

来自分类Dev

为什么TextView不能向右移动?

来自分类Dev

选择下拉菜单时,导航栏略微向右移动

来自分类Dev

将TD边框从左向右右移一点

来自分类Dev

根据屏幕宽度向右移动侧边导航

来自分类Dev

如何在html中向右移动导航栏?

来自分类Dev

为什么导航栏中的右对齐文本向右移得太远?

来自分类Dev

调整大小后,为什么单元格会向右移动?

来自分类Dev

Bootstrap Navbar - 向右移动一个导航项

来自分类Dev

为什么我的导航栏和我的页面两侧之间有一点差距?

来自分类Dev

引导程序“导航栏品牌”导致“导航栏导航”项目从导航栏中的居中位置向右移动?

来自分类Dev

引导程序“导航栏品牌”导致“导航栏导航”项目从导航栏中的居中位置向右移动?

来自分类Dev

当我在 Xcode 上移动屏幕时,为什么我会迟到看到文本?

来自分类Dev

为什么在IE上滚动时固定的背景图像会移动?

来自分类Dev

为什么我的导航栏在移动设备上缩放页面?

来自分类Dev

播放器向右或向左移动时,为什么平台会移动

来自分类Dev

向下滚动一点后如何在粘性导航上按下按钮?

来自分类Dev

小屏幕上的中心导航栏品牌

来自分类Dev

移动/小屏幕上的Wordpress侧栏

来自分类Dev

导航栏按钮仅在较小的屏幕上向右拉

来自分类Dev

引导程序:在小屏幕上,移动手机时删除导航栏品牌

来自分类Dev

当我仅在XS上显示导航栏文本时,为什么导航栏文本移至下一行?

Related 相关文章

  1. 1

    在小屏幕上滚动时,导航栏为什么会向右移动一点?

  2. 2

    我正在尝试将导航栏中的链接向右移动160px,但我无法做到这一点

  3. 3

    导航栏向左/向右移动

  4. 4

    我的导航栏文本仅在XS上显示时为什么会移动到下一行?

  5. 5

    为什么在小屏幕上无法打开导航栏?

  6. 6

    如何在输入字段中从左向右移动光标一点

  7. 7

    在锚点上单击ng时,导航栏菜单为什么会闪烁?

  8. 8

    为什么底线向右缩进一点

  9. 9

    为什么TextView不能向右移动?

  10. 10

    选择下拉菜单时,导航栏略微向右移动

  11. 11

    将TD边框从左向右右移一点

  12. 12

    根据屏幕宽度向右移动侧边导航

  13. 13

    如何在html中向右移动导航栏?

  14. 14

    为什么导航栏中的右对齐文本向右移得太远?

  15. 15

    调整大小后,为什么单元格会向右移动?

  16. 16

    Bootstrap Navbar - 向右移动一个导航项

  17. 17

    为什么我的导航栏和我的页面两侧之间有一点差距?

  18. 18

    引导程序“导航栏品牌”导致“导航栏导航”项目从导航栏中的居中位置向右移动?

  19. 19

    引导程序“导航栏品牌”导致“导航栏导航”项目从导航栏中的居中位置向右移动?

  20. 20

    当我在 Xcode 上移动屏幕时,为什么我会迟到看到文本?

  21. 21

    为什么在IE上滚动时固定的背景图像会移动?

  22. 22

    为什么我的导航栏在移动设备上缩放页面?

  23. 23

    播放器向右或向左移动时,为什么平台会移动

  24. 24

    向下滚动一点后如何在粘性导航上按下按钮?

  25. 25

    小屏幕上的中心导航栏品牌

  26. 26

    移动/小屏幕上的Wordpress侧栏

  27. 27

    导航栏按钮仅在较小的屏幕上向右拉

  28. 28

    引导程序:在小屏幕上,移动手机时删除导航栏品牌

  29. 29

    当我仅在XS上显示导航栏文本时,为什么导航栏文本移至下一行?

热门标签

归档