【问题标题】:How to set Sticky or fixed on scroll- Mega Menu [closed]如何在滚动上设置粘滞或固定 - 超级菜单 [关闭]
【发布时间】:2021-12-31 02:15:39
【问题描述】:

我正在使用这个超级菜单代码:

codepen

'https://codepen.io/arjunamgain/pen/YXBeLJ'

这是一个菜单html代码的小例子:

<div class="content">
    <ul class="exo-menu">
        <li>
            <a class="active" href="#">
                <i class="fa fa-home"></i>
                Home
            </a>
        </li>  
        <li>
            <a href="#">
                <i class="fas fa-hand-holding-usd"></i>
                Link 1
            </a>
            <div class="contact"></div>
        </li>
        <a href="#" class="toggle-menu visible-xs-block">|||</a>        
    </ul>
</div>
    

这里是javascript:

$(function () {
  $('.toggle-menu').click(function(){
    $('.exo-menu').toggleClass('display');      
  });
});

但是这个菜单是固定的,我希望它在滚动时卡在顶部

【问题讨论】:

  • 请在问题本身中包含基于文本的minimal reproducible example
  • @evolutionxbox 现在够了吗?
  • 并非如此。如果不进入 codepen,我无法复制您看到的问题

标签: javascript html jquery css twitter-bootstrap-3


【解决方案1】:

这会有所帮助,我在滚动事件中添加了“固定”类。添加一些 CSS 来修复标题。

$(document).ready(function () {
        $(window).scroll(function(){
          var sticky = $('.content'),
              scroll = $(window).scrollTop();

          if (scroll >= 50) sticky.addClass('fixed');
          else sticky.removeClass('fixed');
        });
    });
 body{
    margin: 0;
    padding: 0;
    font: 300 14px/18px Roboto;
    background-image: url('../images/texture.png');
 }
  

 *,
:after,
:before {
  box-sizing: border-box
}

.clearfix:after,
.clearfix:before {
  content: '';
  display: table
}

.clearfix:after {
  clear: both;
  display: block
}
ul{
    list-style:none;
    margin: 0;
    padding: 0;
}
a, a:hover, a.active, a:active, a:visited, a:focus{
    color:#fefefe;
    text-decoration:none;
}
.content{
    max-width: 1700px;
        margin: 50px auto;
}

.exo-menu{
    width: 100%;
    float: left;
    list-style: none;
    position:relative;
    background: #23364B;
}
.exo-menu > li {    display: inline-block;float:left;}
.exo-menu > li > a{
    color: #ccc;
    text-decoration: none;
    text-transform: uppercase;
    border-right: 1px #365670 dotted;
    -webkit-transition: color 0.2s linear, background 0.2s linear;
    -moz-transition: color 0.2s linear, background 0.2s linear;
    -o-transition: color 0.2s linear, background 0.2s linear;
    transition: color 0.2s linear, background 0.2s linear;
}
.exo-menu > li > a.active,
.exo-menu > li > a:hover,
li.drop-down ul > li > a:hover{
    background:#009FE1;
    color:#fff;
}
.exo-menu i {
  float: left;
  font-size: 18px;
  margin-right: 6px;
  line-height: 20px !important;
}
li.drop-down,
.flyout-right,
.flyout-left{position:relative;}
li.drop-down:before {
  content: "\f103";
  color: #fff;
  font-family: FontAwesome;
  font-style: normal;
  display: inline;
  position: absolute;
  right: 6px;
  top: 20px;
  font-size: 14px;
}
li.drop-down>ul{
    left: 0px;
    min-width: 230px;

}
.drop-down-ul{display:none;}
.flyout-right>ul,
.flyout-left>ul{
  top: 0;
  min-width: 230px;
  display: none;
  border-left: 1px solid #365670;
  }

li.drop-down>ul>li>a,
.flyout-right ul>li>a ,
.flyout-left ul>li>a {
    color: #fff;
    display: block;
    padding: 20px 22px;
    text-decoration: none;
    background-color: #365670;
    border-bottom: 1px dotted #547787;
    -webkit-transition: color 0.2s linear, background 0.2s linear;
    -moz-transition: color 0.2s linear, background 0.2s linear;
    -o-transition: color 0.2s linear, background 0.2s linear;
    transition: color 0.2s linear, background 0.2s linear;
}
.flyout-right ul>li>a ,
.flyout-left ul>li>a {
    border-bottom: 1px dotted #B8C7BC;
}


/*Flyout Mega*/
.flyout-mega-wrap {
    top: 0;
    right: 0;
    left: 100%;
    width: 100%;
    display:none;
    height: 100%;
    padding: 15px;
    min-width: 742px;

}
h4.row.mega-title {
  color:#eee;
  margin-top: 0px;
  font-size: 14px;
  padding-left: 15px;
  padding-bottom: 13px;
  text-transform: uppercase;
  border-bottom: 1px solid #ccc;
 }
.flyout-mega ul > li > a {
  font-size: 90%;
  line-height: 25px;
  color: #fff;
  font-family: inherit;
}
.flyout-mega ul > li > a:hover,
.flyout-mega ul > li > a:active,
.flyout-mega ul > li > a:focus{
  text-decoration: none;
  background-color: transparent !important;
  color: #ccc !important
}
/*mega menu*/

.mega-menu {
  left: 0;
  right: 0;
  padding: 15px;
  display:none;
  padding-top: 0;
  min-height: 100%;

}
h4.row.mega-title {
  color: #eee;
  margin-top: 0px;
  font-size: 14px;
  padding-left: 15px;
  padding-bottom: 13px;
  text-transform: uppercase;
  border-bottom: 1px solid #547787;
  padding-top: 15px;
  background-color: #365670
  }
 .mega-menu ul li a {
  line-height: 25px;
  font-size: 90%;
  display: block;
}
ul.stander li a {
    padding: 3px 0px;
}

ul.description li {
    padding-bottom: 12px;
    line-height: 8px;
}

ul.description li span {
    color: #ccc;
    font-size: 85%;
}
a.view-more{
  border-radius: 1px;
  margin-top:15px;
  background-color: #009FE1;
  padding: 2px 10px !important;
  line-height: 21px !important;
  display: inline-block !important;
}
a.view-more:hover{
    color:#fff;
    background:#0DADEF;
}
ul.icon-des li a i {
    color: #fff;
    width: 35px;
    height: 35px;
    border-radius: 50%;
    text-align: center;
    background-color: #009FE1;
    line-height: 35px !important;
}

ul.icon-des li {
    width: 100%;
    display: table;
    margin-bottom: 11px;
}
/*Blog DropDown*/
.Blog{
    left:0;
    display:none;
    color:#fefefe;
    padding-top:15px;
    background:#547787;
    padding-bottom:15px;
}
.Blog .blog-title{
    color:#fff;
    font-size:15px;
    text-transform:uppercase;

}
.Blog .blog-des{
    color:#ccc;
    font-size:90%;
    margin-top:15px;
}
.Blog a.view-more{
    margin-top:0px;
}
/*Images*/
.Images{
    left:0;
   width:100%;
     display:none;
    color:#fefefe;
    padding-top:15px;
    background:#547787;
    padding-bottom:15px;
}
.Images h4 {
  font-size: 15px;
  margin-top: 0px;
  text-transform: uppercase;
}
/*common*/
.flyout-right ul>li>a ,
.flyout-left ul>li>a,
.flyout-mega-wrap,
.mega-menu{
    background-color: #547787;
}

/*hover*/
.Blog:hover,
.Images:hover,
.mega-menu:hover,
.drop-down-ul:hover,
li.flyout-left>ul:hover,
li.flyout-right>ul:hover,
.flyout-mega-wrap:hover,
li.flyout-left a:hover +ul,
li.flyout-right a:hover +ul,
.blog-drop-down >a:hover+.Blog,
li.drop-down>a:hover +.drop-down-ul,
.images-drop-down>a:hover +.Images,
.mega-drop-down a:hover+.mega-menu,
li.flyout-mega>a:hover +.flyout-mega-wrap{
    display:block;
}
/*responsive*/
 @media (min-width:767px){
    .exo-menu > li > a{
    display:block;
    padding: 20px 22px;
 }
.mega-menu, .flyout-mega-wrap, .Images, .Blog,.flyout-right>ul,
.flyout-left>ul, li.drop-down>ul{
        position:absolute;
}
 .flyout-right>ul{
    left: 100%;
    }
    .flyout-left>ul{
    right: 100%;
}
 }
@media (max-width:767px){

    .exo-menu {
        min-height: 58px;
        background-color: #23364B;
        width: 100%;
    }
    
    .exo-menu > li > a{
        width:100% ;
        display:none ;
    
    }
    .exo-menu > li{
        width:100%;
    }
    .display.exo-menu > li > a{
      display:block ;
        padding: 20px 22px;
    }
    
.mega-menu, .Images, .Blog,.flyout-right>ul,
.flyout-left>ul, li.drop-down>ul{
        position:relative;
}

}
a.toggle-menu{
    position: absolute;
    right: 0px;
    padding: 20px;
    font-size: 27px;
    background-color: #ccc;
    color: #23364B;
    top: 0px;
}

.content.fixed {
        right: 0;
    position: fixed;
    width: 100%;
    top: 0;
    margin: 0 auto;
    margin-top: 0;
    transition: 0.1s ease-in;
    left: 0;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
    <!-- Jquery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
      <div style="text-align:center;margin-top:25px;marin-bottom:15px;font-weight:bold;texxxt-decoration:none; color:#484848;">
    <a style="color:#000;" href="https://www.linkedin.com/in/arjunamgain/" target="_blank">My Profile</a>
</div>


 
    <link href='https://fonts.googleapis.com/css?family=Roboto:400,300,700' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">



</head>

<body class="background">
     <div class="content">
     
        <ul class="exo-menu">
            <li><a class="active" href="#"><i class="fa fa-home"></i> Home</a></li>
            <li class="drop-down"><a href="#"><i class="fa fa-cogs"></i> Flyout</a>
                <!--Drop Down-->
                <ul class="drop-down-ul animated fadeIn">
                <li class="flyout-right"><a href="#">Flyout Right</a><!--Flyout Right-->
                    <ul class="animated fadeIn">
                        <li><a href="#">Mobile</a></li>
                        <li><a href="#">Computer</a></li>
                        <li><a href="#">Watch</a></li>
                    </ul>
                </li>
                
                <li class="flyout-left"><a href="#">Flyout Left</a><!--Flyout Left-->
                    <ul class="animated fadeIn">
                        <li><a href="#">Mobile</a></li>
                        <li><a href="#">Computer</a></li>
                        <li><a href="#">Watch</a></li>
                    </ul>           
                </li>
                
                <li><a href="#">No Flyout</a></li>
                 
                </ul>
                <!--//End drop down-->
            
            </li>
            <li><a href="#"><i class="fa fa-cogs"></i> Services</a></li>
            <li><a href="#"><i class="fa fa-briefcase"></i> Portfolio</a></li>
            <li class="mega-drop-down"><a href="#"><i class="fa fa-list"></i> Mega Menu</a>
                <div class="animated fadeIn mega-menu">
                    <div class="mega-menu-wrap">
                        <div class="row">
                        <div class="col-md-4">
                            <h4 class="row mega-title">Feature</h4>
                                <img class="img-responsive" src="https://3.bp.blogspot.com/-rUk36pd-LbM/VcLb48X4f-I/AAAAAAAAGCI/Y_UxBAgEqwA/s1600/Magento_themes.jpg">
                            </div>
                            <div class="col-md-2">
                                    <h4 class="row mega-title">Standers</h4>
                                <ul class="stander">
                                    <li><a href="#">Mobile</a></li>
                                    <li><a href="#">Computer</a></li>
                                    <li><a href="#">Watch</a></li>
                                    <li><a href="#">laptop</a></li>
                                    <li><a href="#">Camera</a></li>
                                    <li><a href="#">I pad</a></li>
                                    <li><a class="view-more btn- btn-sm" href="#">View more</a></li>
                                </ul>
                            </div>
                            <div class="col-md-3">
                                <h4 class="row mega-title">Description</h4>
                                <ul class="description">
                                    <li><a href="#">Women</a>
                                        <span>Description of Women</span>
                                    </li>
                                    <li><a href="#">Men</a>
                                            <span>Description of men Cloths</span>
                                    </li>
                                    <li><a href="#">Kids</a>
                                            <span>Description of Kids Cloths</span>
                                    </li>
                                    <li><a href="#">Others</a>
                                            <span>Description of Others Cloths</span>
                                    </li>
                                    <li>
                                    <a class="view-more btn btn-sm " href="#">View more</a>
                                             
                                    </li>
                                </ul>
                            </div>
                            <div class="col-md-3">
                            <h4 class="row mega-title">Icon + Description</h4>
                                <ul class="icon-des">
                                    <li><a href="#"><i class="fa fa-globe"></i>Web</a></li>
                                    <li><a href="#"><i class="fa fa-mobile"></i>Mobile</a></li>
                                    <li><a href="#"><i class="fa fa-arrows-h"></i>Responsive</a></li>
                                    <li><a href="#"><i class="fa fa-desktop"></i>Desktop</a></li>
                                    <li><a href="#"><i class="fa fa-paint-brush"></i>UI/UX</a></li>
                                </ul>
                            </div>
                            
                        </div>
                    </div>  
                </div>
            </li>
            <li class="blog-drop-down"><a href="#"><i class="fa fa-bullhorn"></i> Blog</a>
                <div class="Blog animated fadeIn">
                    <div class="col-md-4">
                        <img class="img-responsive" src="https://2.bp.blogspot.com/-VG_e0pKfrDo/VcLb6JwZqfI/AAAAAAAAGCk/8ZgA9kZqTQ8/s1600/images3.jpg">
                        <div class="blog-des">
                    <h4 class="blog-title">Lorem ipsum dolor sit amet</h4>
                            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod 
                            tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis
                            nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. 
                            Duis autem vel eum iriure dolor in hendrerit in vulputate. </p>
                            <a class="view-more btn- btn-sm" href="#">Read More</a>
                        </div>
                    </div>
                    <div class="col-md-4">
                        <img class="img-responsive" src="https://3.bp.blogspot.com/-hUt5FrdZHio/VcLb5dlwTBI/AAAAAAAAGCU/UUH5N1JkoQc/s1600/images1.jpg">
                        <div class="blog-des">
                        <h4 class="blog-title">Lorem ipsum dolor sit amet</h4>
                            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod 
                            tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis
                            nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. 
                            Duis autem vel eum iriure dolor in hendrerit in vulputate. </p>
                                    <a class="view-more btn- btn-sm" href="#">Read More</a>
                        </div>
                    </div>
                    <div class="col-md-4">
                        <img class="img-responsive" src="https://4.bp.blogspot.com/-A7U1uPlSq6Y/VcLb5kKHCkI/AAAAAAAAGCc/7WghyndTEuY/s1600/images2.jpg">
                        <div class="blog-des">
                        <h4 class="blog-title">Lorem ipsum dolor sit amet</h4>
                            <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod 
                            tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis
                            nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. 
                            Duis autem vel eum iriure dolor in hendrerit in vulputate. </p>
                                    <a class="view-more btn- btn-sm" href="#">Read More</a>
                        </div>
                    </div>
                     
                    
                </div>
            </li>
            <li  class="images-drop-down"><a  href="#"><i class="fa fa-photo"></i> Images</a>
                <div class="Images animated fadeIn">
                    <div class="col-md-3">
                        <h4>Images Title </h4>
                        <img class="img-responsive" src="https://2.bp.blogspot.com/-VG_e0pKfrDo/VcLb6JwZqfI/AAAAAAAAGCk/8ZgA9kZqTQ8/s1600/images3.jpg">
                    </div>
                    <div class="col-md-3">
                    <h4>Images Title </h4>
                        <img class="img-responsive" src="https://3.bp.blogspot.com/-hUt5FrdZHio/VcLb5dlwTBI/AAAAAAAAGCU/UUH5N1JkoQc/s1600/images1.jpg">
                    </div>
                    <div class="col-md-3">
                    <h4>Images Title </h4>
                        <img class="img-responsive" src="https://4.bp.blogspot.com/-A7U1uPlSq6Y/VcLb5kKHCkI/AAAAAAAAGCc/7WghyndTEuY/s1600/images2.jpg">
                    </div>
                    <div class="col-md-3">
                    <h4>Images Title </h4>
                        <img class="img-responsive"  src="https://3.bp.blogspot.com/-hGrnZIjzL2k/VcLb47kyQKI/AAAAAAAAGCQ/J6Q2IAHIQvQ/s1600/image4.jpg">
                    </div>
                    
                </div>
            
            </li>
            <li><a href="#"><i class="fa fa-envelope"></i> Contact</a>
                <div class="contact">
            
                </div>
            </li>
            <a href="#" class="toggle-menu visible-xs-block">|||</a>        
    </ul>
     
     
     </div>
     <section style="height:100vh"></section>
         <section style="height:100vh"></section>
     
    </body>
</html> 
     

【讨论】:

  • 这就是我要找的,当然我会设计我的标题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 2012-10-27
  • 1970-01-01
  • 1970-01-01
  • 2013-08-28
  • 1970-01-01
相关资源
最近更新 更多