javascript - Navbar 更多在右侧

标签 javascript html css

我创建了一个可悬停的侧边导航栏,它出现在右侧。我面临的问题是导航栏没有达到我想要的程度。我希望导航栏触及浏览器页面的一侧,直到导航栏只显示一点点。有人可以帮我解决这个问题吗?谢谢。

This is the link to W3S to show you where I got the code from

为了更具体地说明导航栏的位置,我圈出了我想要的位置:

enter image description here

这是我希望导航栏显示的方式:

enter image description here

这是悬停时的样子:

enter image description here

body{
    margin:0;
    font-family:'Montserrat';
}

.polymorph{    
  fill:#EDE1DB;
    }

#showdashboard, #goback{
    position:absolute;
    margin: 80px auto 0 auto;
    left:0;
    right:0;
    width:30%;
    background:none;
    border: 1px solid #163C68;
    border-radius: 5px;
    color:#163C68;
    font-size: 20px;
    cursor:pointer;
    outline:0;
}

#gobutton{
    width: auto;
    margin: 30px auto;
    background: #AAC0AA;
}

#blip{
    position:fixed;
    color:#298BE2;
    right:25%;
    top:0;
    opacity: 0;
    width: 30%;
    transform: translateY(-800px);
}

#mySidenav a {
  position: absolute;
  right: -80px;
  transition: 0.3s;
  padding: 15px;
  width: 100px;
  text-decoration: none;
  font-size: 20px;
  color: #163C68;
  border-radius: 5px 0 0 5px;
}

#mySidenav a:hover {
  right: 0;
}

#about {
  top: 20px;
  background-color: #EDE1DB;
}

#blog {
  top: 80px;
  background-color: #EDE1DB;
}

#projects {
  top: 140px;
  background-color: #EDE1DB;
}

#contact {
  top: 200px;
  background-color: #EDE1DB
}
<!DOCTYPE hmtl>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="description" content="Meter Dashboard Animation">
        <link rel="stylesheet" href="LandingPage.css">
    </head>
    
    <body>
        <button id="showdashboard">Show Meter Dashboard</button>
        <svg viewBox="0 0 237.5 104.8" >
            <polygon class="polymorph" points="237.5,104.8 0,104.8 0,0 63.9,0 237.5,0"/>
        </svg>
        <div id="blip">
            <div id="mySidenav" class="sidenav">
                <a href="#" id="about">About</a>
                <a href="#" id="blog">Blog</a>
                <a href="#" id="projects">Projects</a>
                <a href="#" id="contact">Contact</a>
            </div>
            <button id="goback">Back</button>
        </div>
        <script src="anime.min.js"></script>
        <script>
            var revealbtn = document.getElementById('showdashboard');
            var backbtn = document.getElementById('goback');
            
            revealbtn.onclick = function(){
                var morphing = anime({
                    targets: '.polymorph',
                    points: [
                        {value:'237.5,104.8 0,104.8 0,0 63.9,0 33.9,63.6'},
                        {value:'237.5,104.8 0,104.8 0,0 0,0 33.9,63.6'}
                    ],
                    easing: 'easeOutQuad',
                    duration: 800,
                    loop: false
                });
                
                anime({
                    targets: '#blip',
                    opacity: 1,
                    duration: 1000,
                    translateY: 250
                })
                
                var promise = morphing.finished.then(()=>{
                    backbtn.onclick = function(){
                        var morphing = anime({
                            targets: '.polymorph',
                            points:[
                                {value:'237.5,104.8 0,104.8 0,0 63.9,0 33.9,63.6'},
                                {value:'237.5,104.8 0,104.8 0,0 63.9,0 237.5,0'},
                            ],
                            easing: 'easeOutQuad',
                            duration: 800,
                            loop: false
                        });
                        
                        anime({
                            targets:'#blip',
                            opacity: 0,
                            duration: 1000,
                            translateY: -800
                        })
                    };
                })
            }
        </script>
    </body>
</html>

最佳答案

它应该通过稍微改变 css 来工作。请看下面demo

更改了 CSS

#mySidenav a {
  position: fixed;
  right: -80px;
  transition: 0.3s;
  padding: 15px;
  width: 100px;
  text-decoration: none;
  font-size: 20px;
  color: transparent;
  border-radius: 5px 0px 0px 5px;
}

#mySidenav a:hover {
  right: 0;
  color: white;
}

我已将颜色设置为透明,因此如果没有悬停它就会隐藏,并将位置从 left 更改为 right。 接下来将悬停状态颜色更改为白色以显示文本。

更新

我更改了边框半径,使其位于元素的左边缘。位置也更改为 fixed 以删除滚动条并使菜单始终位于该位置(即使是垂直滚动条)。

关于javascript - Navbar 更多在右侧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59698797/

相关文章:

javascript - 隐藏的嵌套导航在悬停之前显示

javascript - 在 ionic 2 中滑动或单击按钮的 div

javascript - iframe contentWindow 在缩短 document.domain 后抛出拒绝访问错误

javascript - 如何使用 JQuery 循环 "ul"子级?

asp.net - 无法将数据放入固定宽度的 GridView 单元格中

javascript - 将创建的 div 调整为父 div

html - 即 : Only part of an anchor is clickable

javascript - 选中时单选按钮更改样式

html - Powershell:下载或保存整个 ie 页面的源代码

javascript - jQuery:绑定(bind)到图像 onload 的函数获取旧的 height() 信息