2017-02-13 8 views
0

w3schools.comの"How To - Side Navigation"を画面の右側から表示しようとしていますが、難しかったです。私の試みと同様に、w3schoolsの例を以下に示します。左向きのオフスクリーンナビゲーションバーを画面の右側に翻訳する際の問題

私は私の試みで見つけた、「X」終了のためのボタンがナビゲーションバーの高さは 順不同リストの高さだけで&ウェブページ 永続的である(が、まだ機能しています)。

Sidenav押し例(左):

<!DOCTYPE html> 
<html> 
<style> 
body { 
    font-family: "Lato", sans-serif; 
} 

.sidenav { 
    height: 100%; 
    width: 0; 
    position: fixed; 
    z-index: 1; 
    top: 0; 
    left: 0; 
    background-color: #111; 
    overflow-x: hidden; 
    transition: 0.5s; 
    padding-top: 60px; 
} 

.sidenav a { 
    padding: 8px 8px 8px 32px; 
    text-decoration: none; 
    font-size: 25px; 
    color: #818181; 
    display: block; 
    transition: 0.3s 
} 

.sidenav a:hover, .offcanvas a:focus{ 
    color: #f1f1f1; 
} 

.sidenav .closebtn { 
    position: absolute; 
    top: 0; 
    right: 25px; 
    font-size: 36px; 
    margin-left: 50px; 
} 

#main { 
    transition: margin-left .5s; 
    padding: 16px; 
} 

@media screen and (max-height: 450px) { 
    .sidenav {padding-top: 15px;} 
    .sidenav a {font-size: 18px;} 
} 
</style> 
<body> 

<div id="mySidenav" class="sidenav"> 
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> 
    <a href="#">About</a> 
    <a href="#">Services</a> 
    <a href="#">Clients</a> 
    <a href="#">Contact</a> 
</div> 

<div id="main"> 
    <h2>Sidenav Push Example</h2> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <span style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776; open</span> 
</div> 

<script> 
function openNav() { 
    document.getElementById("mySidenav").style.width = "250px"; 
    document.getElementById("main").style.marginLeft = "250px"; 
} 

function closeNav() { 
    document.getElementById("mySidenav").style.width = "0"; 
    document.getElementById("main").style.marginLeft= "0"; 
} 
</script> 

</body> 
</html> 

私の試み:私は右から来てSidenav例を押して変更するために何ができる

<!DOCTYPE html> 
<html> 
<style> 
body { 
    font-family: "Lato", sans-serif; 
} 

.sidenav { 
    height: 100%; 
    width: 0; 
    position: inherit; 
    z-index: 1; 
    top: 0; 
    left: 0; 
    float: right; 
    background-color: #4D394B; 
    overflow-x: hidden; 
    transition: 0.5s; 
    padding-top: 60px; 
} 

.sidenav a { 
    padding: 8px 8px 8px 32px; 
    text-decoration: none; 
    font-size: 25px; 
    color: #818181; 
    display: block; 
    transition: 0.0s 
} 

.sidenav a:hover, .offcanvas a:focus{ 
    color: #f1f1f1; 
} 

.sidenav .closebtn { 
    float: left; 
    position: absolute; 
    top: 0; 
    right: 25px; 
    font-size: 36px; 
    margin-left: 50px; 
} 

#main { 
    transition: margin-left .5s; 
    padding: 16px; 
} 

@media screen and (max-height: 450px) { 
    .sidenav {padding-top: 15px;} 
    .sidenav a {font-size: 18px;} 
} 
</style> 
<body> 

<div id="mySidenav" class="sidenav"> 
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> 
    <a href="#">About</a> 
    <a href="#">Services</a> 
    <a href="#">Clients</a> 
    <a href="#">Contact</a> 
</div> 

<div id="main"> 
    <h2>Sidenav Push Example</h2> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <span style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776; open</span> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
    <p>Click on the element below to open the side navigation menu, and push this content to the right.</p> 
</div> 

<script> 
function openNav() { 
    document.getElementById("mySidenav").style.width = "250px"; 
    document.getElementById("main").style.marginLeft = "-250px"; 
} 

function closeNav() { 
    document.getElementById("mySidenav").style.width = "0"; 
    document.getElementById("main").style.marginLeft= "0"; 
} 
</script> 

</body> 
</html> 

画面の?あなたはright: 0;.sidenavleft: 0;を変更し、スクリプトであなたがstyle.marginLeftstyle.marginRightに変更するには、このよう

答えて

1

は、

function openNav() { 
 
    document.getElementById("mySidenav").style.width = "250px"; 
 
    document.getElementById("main").style.marginRight = "250px"; 
 
} 
 

 
function closeNav() { 
 
    document.getElementById("mySidenav").style.width = "0"; 
 
    document.getElementById("main").style.marginRight = "0"; 
 
}
body { 
 
    font-family: "Lato", sans-serif; 
 
} 
 
.sidenav { 
 
    height: 100%; 
 
    width: 0; 
 
    position: fixed; 
 
    z-index: 1; 
 
    top: 0; 
 
    right: 0; 
 
    background-color: #111; 
 
    overflow-x: hidden; 
 
    transition: 0.5s; 
 
    padding-top: 60px; 
 
} 
 
.sidenav a { 
 
    padding: 8px 8px 8px 32px; 
 
    text-decoration: none; 
 
    font-size: 25px; 
 
    color: #818181; 
 
    display: block; 
 
    transition: 0.3s 
 
} 
 
.sidenav a:hover, 
 
.offcanvas a:focus { 
 
    color: #f1f1f1; 
 
} 
 
.sidenav .closebtn { 
 
    position: absolute; 
 
    top: 0; 
 
    right: 25px; 
 
    font-size: 36px; 
 
    margin-left: 50px; 
 
} 
 
#main { 
 
    transition: margin-left .5s; 
 
    padding: 16px; 
 
} 
 
@media screen and (max-height: 450px) { 
 
    .sidenav { 
 
    padding-top: 15px; 
 
    } 
 
    .sidenav a { 
 
    font-size: 18px; 
 
    } 
 
}
<div id="mySidenav" class="sidenav"> 
 
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a> 
 
    <a href="#">About</a> 
 
    <a href="#">Services</a> 
 
    <a href="#">Clients</a> 
 
    <a href="#">Contact</a> 
 
</div> 
 

 
<div id="main"> 
 
    <h2>Sidenav Push Example</h2> 
 
    <p>Click on the element below to open the side navigation menu, and push this content to the left.</p> 
 
    <span style="font-size:30px;cursor:pointer" onclick="openNav()">&#9776; open</span> 
 
</div>

(これは2ヶ所で発生に注意してください)
関連する問題