Refactored quality UI/UX navbar with responsive layout and burger menu

This commit is contained in:
James Mills 2020-03-28 18:13:49 +10:00
parent 331b267e7e
commit 5f209d4832
No known key found for this signature in database
GPG key ID: AC4C014F1440EBD6
4 changed files with 91 additions and 18 deletions

File diff suppressed because one or more lines are too long

View file

@ -502,3 +502,60 @@ footer p a {
footer p a:hover { footer p a:hover {
background-color: #005f5f; background-color: #005f5f;
} }
/* Add a black background color to the top navigation */
.topnav {
background-color: #333;
overflow: hidden;
}
/* Style the links inside the navigation bar */
.topnav a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
/* Change the color of links on hover */
.topnav a:hover {
background-color: #ddd;
color: black;
}
/* Add an active class to highlight the current page */
.topnav a.active {
background-color: #4CAF50;
color: white;
}
/* Hide the link that should open and close the topnav on small screens */
.topnav .icon {
display: none;
}
/* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */
@media screen and (max-width: 600px) {
.topnav a:not(:first-child) {display: none;}
.topnav a.icon {
float: right;
display: block;
}
}
/* The "responsive" class is added to the topnav with JavaScript when the user clicks on the icon. This class makes the topnav look good on small screens (display the links vertically instead of horizontally) */
@media screen and (max-width: 600px) {
.topnav.responsive {position: relative;}
.topnav.responsive a.icon {
position: absolute;
right: 0;
top: 0;
}
.topnav.responsive a {
float: none;
display: block;
text-align: left;
}
}

View file

@ -5,6 +5,7 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" type="image/x-icon" href="/static/favicon.ico"> <link rel="shortcut icon" type="image/x-icon" href="/static/favicon.ico">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="/static/theme.css"> <link rel="stylesheet" type="text/css" href="/static/theme.css">
<link rel="stylesheet" type="text/css" href="/static/upload.css"> <link rel="stylesheet" type="text/css" href="/static/upload.css">
<link rel="stylesheet" type="text/css" href="/static/import.css"> <link rel="stylesheet" type="text/css" href="/static/import.css">

View file

@ -1,14 +1,16 @@
{{ define "content" }} {{ define "content" }}
{{ $playing := .Playing }} {{ $playing := .Playing }}
<div class="nav"> <div class="topnav" id="myTopnav">
<ul> <a {{ if eq $.Quality "" }}class="active"{{ end }} href="/v/{{ $playing.ID }}">fullHD</a>
<li><a {{ if eq $.Quality "" }}class="active"{{ end }} href="/v/{{ $playing.ID }}">fullHD</a></li> <a {{ if eq $.Quality "720p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=720p">720p</a>
<li><a {{ if eq $.Quality "720p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=720p">720p</a></li> <a {{ if eq $.Quality "480p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=480p">480p</a>
<li><a {{ if eq $.Quality "480p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=480p">480p</a></li> <a {{ if eq $.Quality "360p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=360p">360p</a>
<li><a {{ if eq $.Quality "360p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=360p">360p</a></li> <a {{ if eq $.Quality "240p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=240p">240p</a>
<li><a {{ if eq $.Quality "240p" }}class="active"{{ end }} href="/v/{{ $playing.ID }}?quality=240p">240p</a></li> <a href="javascript:void(0);" class="icon" onclick="myFunction()">
</ul> <i class="fa fa-bars"></i>
</a>
</div> </div>
<div id="player"> <div id="player">
{{ if $playing.ID }} {{ if $playing.ID }}
<video id="video" controls preload="metadata" poster="/t/{{ $playing.ID}}"> <video id="video" controls preload="metadata" poster="/t/{{ $playing.ID}}">
@ -43,3 +45,16 @@
{{ end }} {{ end }}
</div> </div>
{{end}} {{end}}
{{ define "scripts" }}
<script type="application/javascript">
/* Toggle between adding and removing the "responsive" class to topnav when the user clicks on the icon */
function myFunction() {
var x = document.getElementById("myTopnav");
if (x.className === "topnav") {
x.className += " responsive";
} else {
x.className = "topnav";
}
}
</script>
{{ end }}