2017-06-05 44 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; –

相關問題