2017-06-05 57 views
-1

现在,只要我在底部滚动,它确实this。我希望只能通过侧边栏向下滚动,但它似乎在整个页面中都这样做。试图让只有侧边栏滚动而不影响其他任何东西

侧边栏和主要内容位于我附加的HTML的最底部,但我想整个事情可能是有用的。

var map = L.map('map', { 
 
    center: [16.15, 105.237], 
 
    zoom: 6 
 
}); 
 

 
var mainTileLayer = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { 
 
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' 
 
}).addTo(map);
body { 
 
    padding-top: 100px; 
 
} 
 

 
#primary-navbar { 
 
    box-shadow: 0 5px 5px -5px #999799; 
 
} 
 

 
#secondary-navbar { 
 
    z-index: 999; 
 
    margin-top: 50px; 
 
    background-color: aliceblue; 
 
    box-shadow: 0 5px 5px -5px #999799 
 
} 
 

 
#sidebar { 
 
    z-index: 998; 
 
    min-height: 100%; 
 
    padding-top: 25px; 
 
    overflow-y: scroll; 
 
    box-shadow: 5px 0 6px -1px #888888; 
 
} 
 

 
#map-container { 
 
    padding: 0; 
 
    margin: 0; 
 
} 
 

 
#map { 
 
    height: 100%; 
 
    width: 100%; 
 
}
<html> 
 

 
<head> 
 
    <title>Title</title> 
 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-07I2e+7D8p6he1SIM+1twR5TIrhUQn9+I6yjqD53JQjFiMf8EtC93ty0/5vJTZGF8aAocvHYNEDJajGdNx1IsQ==" crossorigin="" /> 
 

 
    <link rel="stylesheet" href="css/index.css" /> 
 
</head> 
 

 
<body> 
 
    <nav class="navbar navbar-default navbar-fixed-top" id="primary-navbar" role="navigation"> 
 
    <div class="container-fluid"> 
 
     <div class="navbar-header"> 
 
     <a class="navbar-brand" href="#">Brand</a> 
 
     </div> 
 
     <div class="collapse navbar-collapse"> 
 
     <div class="nav navbar-nav pull-right"> 
 
      <li class="active"><a href="#">Home</a></li> 
 
      <li><a href="#">About</a></li> 
 
      <li><a href="#">People</a></li> 
 
      <li><a href="#">Contact</a></li> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </nav> 
 

 
    <nav class="navbar navbar-fixed-top navbar-lower" id="secondary-navbar" role="navigation"> 
 
    <div class="container-fluid"> 
 
     <div class="collapse navbar-collapse collapse-buttons"> 
 
     <div class="col-sm-2 col-md-2"> 
 
      <form class="navbar-form" role="search"> 
 
      <div class="input-group"> 
 
       <input type="text" class="form-control" placeholder="Search" name="navbar-search-box"> 
 
       <span class="input-group-btn"> 
 
            <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button> 
 
           </span> 
 
      </div> 
 
      </form> 
 
     </div> 
 
     <ul class="nav navbar-nav"> 
 
      <li class="dropdown" id="filter-dropdown"> 
 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> 
 
      <ul class="dropdown-menu"> 
 
       <li><a href="#" Action>Dropdown Option 1</a></li> 
 
       <li><a href="#">Dropdown Option 2</a></li> 
 
      </ul> 
 
      </li> 
 
     </ul> 
 
     </div> 
 
    </div> 
 
    </nav> 
 

 
    <div class="container-fluid"> 
 
    <div class="row"> 
 
     <div class="col-xs-8 col-sm-4" id="sidebar" role="navigation"> 
 
     <p>Lotta text here.</p> 
 
     </div> 
 
     <div class="col-xs-12 col-sm-8" id="map-container"> 
 
     <div id="map"></div> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g=" crossorigin="anonymous"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
 
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-A7vV8IFfih/D732iSSKi20u/ooOfj/AGehOKq0f4vLT1Zr2Y+RX7C+w8A1gaSasGtRUZpF/NZgzSAu4/Gc41Lg==" crossorigin=""></script> 
 
</body> 
 

 
</html>

回答

0

我想我会做的地图部分position: fixed,因此它实际上与你卷轴,把它留在地方。然后,您不需要使左侧部分可滚动,因为它本身就是。 如果您将该部分设置为可滚动并且您滚动至结尾,则父级div自然会自动滚动。

希望它有帮助!

+0

这确实帮助,那种!地图不再滚动,但它将滚动条放置在通常位于的最右侧,而不是侧边栏上它应该在的位置。 – Vigilant

+0

啊!我不知道这是必要的,对不起。 然后给一个'max-height'(例如:100vh)的容器,一个'overflow:hidden;',并在#sidebar上,尝试 'overflow-y:scroll;' 'height:100vh;'(与容器相同) – arsea

+0

看看这是否有帮助:http://jsbin.com/winorehage/edit?html,css,output – arsea

0

我无法准确地再现地图(到map.js的链接只是js/map.js什么的?不是一个完整的url ..也许你可以修改)但我认为这可能会诀窍。我用你的行类(由我添加)vh显示两个div,并调整/吐overflow溢出 - Y:AUTO;和overflow-x:scroll(根据你的需要调整它们,比如隐藏起来等等)。当地图出现时,我也将margin和padding设置为重要,它缩进了很多(仍然是)。我注意到在你的图片中没问题,但这可能没有必要(但添加.row类)。

希望这有助于

var map = L.map('map', { 
 
    center: [16.15, 105.237], 
 
    zoom: 6 
 
}); 
 

 
var mainTileLayer = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { 
 
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' 
 
}).addTo(map);
body { 
 
    padding-top: 100px; 
 
} 
 

 
.row { 
 
    height: 100vh; 
 
    overflow-y:auto; 
 
    overflow-x:scroll; 
 
} 
 

 
#primary-navbar { 
 
    box-shadow: 0 5px 5px -5px #999799; 
 
} 
 

 
#secondary-navbar { 
 
    z-index: 999; 
 
    margin-top: 50px; 
 
    background-color: aliceblue; 
 
    box-shadow: 0 5px 5px -5px #999799 
 
} 
 

 
#sidebar { 
 
    z-index: 998; 
 
    height: 100%; 
 
    padding-top: 25px; 
 
    overflow-y: scroll; 
 
    box-shadow: 5px 0 6px -1px #888888; 
 
} 
 

 
#map-container { 
 
    padding:0!important; 
 
    margin:0!important; 
 
} 
 

 
#sidebar, #map-container{display:inline-block;} 
 

 
#map { 
 
    height: 100%; 
 
    width: 100%; 
 
    padding:0; 
 
    margin:0; 
 
}
<head> 
 
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css"> 
 
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script> 
 

 
</head> 
 

 
<body> 
 
    <nav class="navbar navbar-default navbar-fixed-top" id="primary-navbar" role="navigation"> 
 
    <div class="container-fluid"> 
 
     <div class="navbar-header"> 
 
     <a class="navbar-brand" href="#">Brand</a> 
 
     </div> 
 
     <div class="collapse navbar-collapse"> 
 
     <div class="nav navbar-nav pull-right"> 
 
      <li class="active"><a href="#">Home</a></li> 
 
      <li><a href="#">About</a></li> 
 
      <li><a href="#">People</a></li> 
 
      <li><a href="#">Contact</a></li> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </nav> 
 

 
    <nav class="navbar navbar-fixed-top navbar-lower" id="secondary-navbar" role="navigation"> 
 
    <div class="container-fluid"> 
 
     <div class="collapse navbar-collapse collapse-buttons"> 
 
     <div class="col-sm-2 col-md-2"> 
 
      <form class="navbar-form" role="search"> 
 
      <div class="input-group"> 
 
       <input type="text" class="form-control" placeholder="Search" name="navbar-search-box"> 
 
       <span class="input-group-btn"> 
 
            <button class="btn btn-default" type="submit"><i class="glyphicon glyphicon-search"></i></button> 
 
           </span> 
 
      </div> 
 
      </form> 
 
     </div> 
 
     <ul class="nav navbar-nav"> 
 
      <li class="dropdown" id="filter-dropdown"> 
 
      <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> 
 
      <ul class="dropdown-menu"> 
 
       <li><a href="#" Action>Dropdown Option 1</a></li> 
 
       <li><a href="#">Dropdown Option 2</a></li> 
 
      </ul> 
 
      </li> 
 
     </ul> 
 
     </div> 
 
    </div> 
 
    </nav> 
 

 
    <div class="container-fluid"> 
 
    <div class="row"> 
 
     <div class="col-xs-8 col-sm-4" id="sidebar" role="navigation"> 
 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam odio lorem, aliquet eu massa sit amet, fermentum euismod eros. Suspendisse id magna congue, vulputate nulla nec, bibendum neque. Cras mollis velit et nulla blandit imperdiet. Etiam 
 
      cursus rhoncus justo quis ullamcorper. Sed ac pharetra dolor. Fusce ut lacus ultricies, elementum ligula non, hendrerit erat. Etiam felis leo, hendrerit sollicitudin mi vitae, varius rutrum turpis. Proin non aliquam felis. Nulla condimentum, 
 
      sem ut cursus sodales, dui odio aliquam felis, eget mattis nunc risus a neque. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec vestibulum eros libero, sed dictum mi dictum vel. Phasellus in iaculis 
 
      felis. Sed ut lacus et odio sollicitudin rhoncus id ut ante. Donec rutrum nulla massa, et porttitor enim consectetur a. Phasellus eleifend vitae velit et vulputate.</p> 
 
     <p> 
 
      Vivamus sit amet consectetur neque. Aliquam feugiat risus id lorem varius, eget iaculis dolor iaculis. Nullam eleifend turpis in lectus finibus, sed congue odio efficitur. Vivamus iaculis, tortor in luctus pharetra, massa justo lacinia massa, vel cursus 
 
      dui erat sit amet lorem. Vivamus ut ex quis ante suscipit sodales at quis lectus. Morbi malesuada commodo nisl, ut tincidunt ante maximus non. Maecenas convallis massa tortor, ut consectetur eros maximus quis. Phasellus et sollicitudin nunc.</p> 
 
     <p> 
 
      Nunc ultrices, leo et lobortis egestas, turpis eros posuere nisl, non luctus nibh orci a nisl. Vivamus condimentum dapibus nisl vel tristique. Nam a turpis diam. Nunc vehicula nisl arcu, quis ullamcorper ex malesuada ut. Mauris ornare eleifend orci et 
 
      malesuada. Cras vel quam non turpis lobortis egestas. Morbi a leo efficitur, consectetur dui vel, aliquet nulla. Etiam enim justo, tincidunt id finibus eget, condimentum quis eros. Cras felis quam, interdum ut nulla id, pellentesque fermentum 
 
      libero. Mauris bibendum eros ut massa posuere, sagittis sollicitudin turpis iaculis. Duis et condimentum nisi. Morbi elementum lorem at diam dapibus, ac maximus orci efficitur.</p> 
 
     <p> 
 
      Fusce mattis porttitor scelerisque. Donec commodo auctor leo, eget sodales ligula malesuada eu. Nullam finibus enim in orci dignissim tempus. Quisque placerat eros sed arcu congue auctor. Praesent sapien diam, aliquet nec tincidunt id, pulvinar eget eros. 
 
      Nulla posuere congue erat ut mollis. Vivamus at fermentum neque. Cras nec suscipit lorem. Suspendisse eu purus eget felis convallis feugiat a quis quam. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras nibh tellus, scelerisque 
 
      ut velit id, tristique mattis lacus. Pellentesque varius, lectus mollis ultrices lacinia, diam dui congue felis, sagittis malesuada dui lectus sed dolor. In hac habitasse platea dictumst. Donec a mollis velit.</p> 
 
     <p> 
 
      Nam cursus venenatis enim ac scelerisque. Nullam mollis suscipit ipsum nec tempor. Suspendisse potenti. Nulla at diam magna. Duis placerat, massa vel semper mattis, sapien libero porta arcu, in placerat dui ipsum in ante. Nullam interdum, eros vel sagittis 
 
      vulputate, libero sapien iaculis augue, sit amet eleifend velit tellus sit amet tortor. Nunc consequat lorem magna, accumsan vehicula nulla aliquam tincidunt. Etiam enim ante, bibendum a enim in, malesuada euismod erat. In ligula nisl, eleifend 
 
      a sapien dignissim, consectetur accumsan arcu. Nunc tempor ex nec nulla faucibus tristique. Aliquam erat volutpat. Sed sagittis nec massa at pulvinar.</p> 
 
     <p> 
 
      Maecenas quam diam, lobortis id fermentum at, laoreet sed magna. Aliquam tristique mollis feugiat. Cras elementum purus sit amet augue fermentum efficitur. Quisque sit amet ornare orci. Nulla cursus at eros eu convallis. Nunc dapibus efficitur augue, 
 
      molestie gravida metus scelerisque a. Vivamus eget volutpat neque. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Aenean id tempor eros. Sed sapien dolor, cursus quis cursus ut, malesuada id tellus. 
 
      Nullam odio mi, rutrum eget felis nec, posuere lacinia velit. In sed sapien sit amet nunc congue tempus et sit amet urna. Donec quis feugiat dui. Curabitur tristique, tellus sit amet ultricies egestas, justo orci tincidunt metus, blandit auctor 
 
      augue justo in nunc.</p> 
 
     </div> 
 
     <div class="col-xs-12 col-sm-8" id="map-container"> 
 
     <div id="map"></div> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g=" crossorigin="anonymous"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script> 
 
</body> 
 

 
</html>

+0

如果margin/padding在两个div,文本和地图的顶部相同,那么当您滚动备份..只是一个建议.. –

+0

当我编辑时,它显示内联块,不知道为什么当我运行发布的答案时没有?编辑包括显示:inline-block; –