固定&缩小导航栏

时间:2017-11-16 13:12:20

标签: javascript html css

在没有使用Bootstrap的情况下,我没有在谷歌上找到任何关于此事的内容,在我的项目中我并不想这样做。 (因为我是一个初学者,我决定从一个香草项目开始 - 只有css html和js,主要是因为当我开始构建这个时,我甚至不知道什么是bootstrap)。 那么我如何在滚动时使白色(id:top-mare + logo)导航栏固定和收缩?

HTML



<!DOCTYPE html>
<html lang="en-us" class="no-js">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Best DAVNIC73</title>
    <link href="css/css.css" rel="stylesheet" />
    <link href="css/sshow.css" rel="stylesheet" /> 
    <link href="css/mqueries.css" rel="stylesheet" />
    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
</head>
<body>
    <div id="container">
        <div class="shadow">
            <header id="top">
                <nav id="top-mic">
                    <ul>
                        <li><a href="#">Contact</a></li>
                        <li><a href="#">Despre noi</a></li>
                        <li><a href="#">Locatie</a></li>
                    </ul>
                </nav>
                <a href="#"><img src="img/logo.jpg" alt="davnic" id="logo"></img></a>
                <div id="top-mare-wrap">
                    <nav id="top-mare">
                        <ul>
                            <li><a href="#">Acasa</a></li>
                            <li><a href="#">Buton1</a></li>
                            <li><a href="#">Buton2</a></li>
                            <li><a href="#">Buton3</a></li>
                            <li><a href="#">Buton4</a></li>
                        </ul>
                    </nav>
                </div>
            </header>
        </div>
        <div class="slideshow-container">

            <div class="mySlides fade">
                <div class="numbertext">1 / 3</div>
                <img src="img/img1.jpg" style="width:100%">
            </div>

            <div class="mySlides fade">
                <div class="numbertext">2 / 3</div>
                <img src="img/img2.jpg" style="width:100%">
            </div>

            <div class="mySlides fade">
                <div class="numbertext">3 / 3</div>
                <img src="img/img3.jpg" style="width:100%">
            </div>
            <a class="prev" onclick="plusSlides(-1)">&#10094;</a>
            <a class="next" onclick="plusSlides(1)">&#10095;</a>
            <script src="js/sshow.js"></script> 

            <button onclick="topFunction()" id="myBtn" title="Inapoi la inceputul paginii"><img src="img/arrow-up-01-128.jpg"/></button>
            <script src="js/myBtn.js"></script>
            <footer class="footer">
                <ul>
                    <li id="nume">SC Best DAVNIC73 SRL</li>
                    <li><img src="img/location_1.png" class="location"/> Judet Dambovita, Oras Targoviste, Strada, Nr</li>
                    <li><img src="img/phone.jpg" class="phone"/>074 44 44 444</li>
                    <li><img src="img/mail.jpg" id="mail"/>bestdavnic73@gmail.com</li>
                    <li class="copyright">Copyright Ⓒ 2017</li>
                </ul>
            </footer>     
            </div>
</div>
</body>
</html>
&#13;
&#13;
&#13;

CSS

&#13;
&#13;
html {
    box-sizing: border-box;
    height: 100%;
    font-family: Roboto, Arial;
}

*,
*:before,
*:after {
    box-sizing: inherit;
}

body {
    font-family: Roboto, Arial;
    height: auto;
    width: 100%;
    padding: 0;
    padding-bottom: 6vw;
    margin: 0;
    font-size: 1.1vw;
    min-height: 100%;
    position: relative;
}

header {
    color: #ffffff;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid #ADADAD;
}

#container {
    margin: 0 auto;
    padding: 0;
    color: #ffffff;
}

#top-mic {
    background-color: #F28A00;
    margin: 0;
    padding: 0;
    margin-bottom: 0.73vw;
}

#top-mic ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
}

#top-mic li {
        float: right;
        padding: 0.416vw 1.5625vw;
}

#top-mic li a {
        display: block;
        text-decoration: none;
        color: #ffffff;
        text-align: center;
        font-size: 0.6vw;
        font-weight: bold;
        transition: color 0.25s ease;
        margin-right: 2.8645vw;
}

#top-mic li a:hover {
    color: #ADADAD;
}

#logo {
	max-width: 100%;
    float: left;
    margin-left: 12.5vw;
    margin-right: 6.77vw;
    width:15vw;
	height: auto !important;
}

#top-mare-wrap {
    margin: 0 auto;
}

#top-mare {
    padding: 0;
    margin: 0;
    margin-bottom: 3.125vw;
    
}

#top-mare ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
}

#top-mare li {
        display: inline;
}

#top-mare li a {
        margin-top: 2.1875vw;
        margin-left: 2.083vw;
        padding-right: 1.041vw;
        display: inline-block;
        text-decoration: none;
        color: #ADADAD;
        text-align: center;
        font-size: 2.1vw;
        font-weight: bold;
        transition: color 0.25s ease;
}

#top-mare li a:hover {
        color: #F28A00;
}

#test {
    color:black;
}

.footer {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: #F28A00;
}

.footer ul {
        list-style-type: none;
        margin: 0;
        padding: 1.041vw;     
}

.footer li { 
        font-size: 0.9vw;
        font-weight:bold;
        display: inline;
        margin-left: 2.604vw;
        padding-right: 0.78125vw;
        padding-bottom: 0.263vw;
}

.copyright {
    float:right;
}

#nume {
    font-weight: italic;
}

#myBtn {
    display: none; 
    position: fixed; 
    bottom: 3.646vw; 
    left: 3.125vw; 
    z-index: 99; 
    border: none; 
    outline: none;
    background-color: #F28A00; 
    color: white; 
    cursor: pointer; 
    padding: 0.78125vw;
    border-radius: 10px; 
    width: 3.33333vw;
    height: 3.3333vw;
}

.location {
    width: 0.677vw;
    height: 0.677vw;
}

.phone {
    width: 0.677vw;
    height: 0.677vw;
}

#mail {
    height: 0.677vw;
    width: 0.9375vw;
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

要创建缩小动画,我建议你使用CSS过渡和jQuery addClass。

所以,你要从顶部测量滚动位置。当需要高度时,添加包含缩小值的CSS类到该元素。

例如,您的徽标包含“&#39;徽标&#39;:

<img src="image/logo.jpg" class="logo"/>

Logo CSS:

.logo {
    width: 200px;
    transition: all .5s ease-in-out;
}

您要添加/删除的课程称为例如。 &#39;收缩&#39 ;.它具有缩小值(例如,您希望缩小的徽标宽度为125px):

.logo.shrink {
    width: 125px;
}

接下来在需要时将徽标添加到徽标(在此示例中从顶部70px)。

$(document).on('scroll', function() {
    if ($(this).scrollTop > 70) {
        $('.logo').addClass('shrink');
    } else if ($(this).scrollTop < 70) {
        $('.logo').removeClass('shrink');
    }
});

我举了一个例子:https://jsfiddle.net/cr29y1tc/29/