2017-03-16 18 views
0

私はhtmlの初心者で、divの左側にスクロールバーを作ろうとしています。 私はそれをgoogleにしようとしましたが、私が望む答えは見つかりませんでした。htmlの本文で別のdivにスクロールバーを作る方法

ここはhtmlの画像です。 enter image description here

そして、ここで私はWebSocketのからMACアドレス情報を取得し、DIVの左側に表示しようとしているHTML

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta charset="utf-8"> 
    <title>Highlight dropzones with interact.js</title> 
    <script src="js/interact.js"></script> 
    <script src="js/dropzones.js"></script> 
    <link rel="stylesheet" href="stylesheets/dropzones.css"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
    <link rel="stylesheet" href="stylesheets/styles.css"> 
    </head> 
    <body> 

    <object width="100%" height="100%" type="text/plain" data="/public/sensor/some.txt" border="0" > 
    <header> 
     <nav class="navbar navbar-inverse"> 
     <div class="collapse navbar-collapse" id="navbar-collapse"> 
      <ul class="nav navbar-nav navbar-right"> 
       <li><a onclick="show()" id="imageLoad" target="dropzone_1">Image Load</a></li> 
       <li><a href="#" id="imageSave">Image Save</a></li> 
      </ul> 
      </div> 
     </nav> 
     </header> 

     <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> 
     <div name="scroll_div" id="scrolldiv1"></div> 
     <div class="dropzone-wrapper" name="dropzone_1" id="dropzone"> 
     </div> 

     <script type="text/javascript"> 
     function show(){ 
      document.getElementById('dropzone').style.maxHeight = "100%"; 
      document.getElementById('dropzone').innerHTML = "<img src= 'images/example3.jpg' class='resize_fit_center'/>" 
     } 
     </script> 

     <script> 
     function autoResizeDiv(){ 
      document.getElementById('dropzone').style.height = window.innerHeight + 'px'; 
     } 
     window.onresize = autoResizeDiv; 
     autoResizeDiv(); 

     function WebSocket(){ 
      if ("WebSocket" in window){ 
      var channel = "<%= user%>"; 
      var socket = io.connect("websocket address"); 

      socket.on(channel, function (d) { 
       var data = JSON.parse(d); 
       console.log(channel + " : " + d); 
       var theDiv = document.getElementById(data.node_info[1].info.mac); 
       if(theDiv == null) { 
       var divTag = document.createElement("div"); 
       divTag.id = data.node_info[1].info.mac; 
       divTag.className = "draggable js-drag"; 
       divTag.innerHTML = data.node_info[1].info.mac; 
       document.getElementsByName('scroll_div')[0].appendChild(divTag); 

       } 
      }); 
      socket.on('crc_err', function(packet){ 
       console.log("crc_err : " + packet); 
      }); 
      socket.on('type_err', function(packet){ 
       console.log("type_err : " + packet); 
      }); 
      } 
      else{ 
         // The browser doesn't support WebSocket 
         // alert("WebSocket NOT supported by your Browser!"); 
       } 
     } 
     WebSocket(); 
     </script> 

    </body> 
</html> 

の私のコードです。 上記の図のようにスクロールバーを作成したい。私はdocument.getElementsByName('scroll_div')[0].appendChild(divTag)を使ってみましたが、ページの左側にスクロールバーを作成しません。

誰でも助けてくれますか?

ありがとうございます。

p.s.皆さんが私にCSSコードを投稿したい場合は、すぐに編集します。

+0

はい、CSSを動作します

は、この簡単な例を見てください。投稿する。以下の回答を見てください。下記のコードスニペットにも答えがあります。あなたが助けてくれるかどうかを見てください。 – Iceman

答えて

1

あなたのscroll_div divのためにあなたのcssでoverflow:scrollを使うことができます。 オーバーフロープロパティは、コンテンツが要素のボックスをオーバーフローした場合の動作を指定します。

このプロパティは、要素の内容が大きすぎて指定された領域に収まらない場合に、コンテンツをクリップするかスクロールバーを追加するかを指定します。

注:オーバーフロープロパティは、指定された高さのブロック要素に対してのみ機能します。 CSSの

div.scroll 
 
{ 
 
width:50%; 
 
height:100px; 
 
overflow:scroll; 
 
float: left; 
 
}
<div class="scroll">The overflow property specifies what happens if content overflows an element's box. 
 
<br/> 
 
This property specifies whether to clip content or to add scrollbars when an element's content is too big to fit in a specified area. 
 
<br/> 
 
Note: The overflow property only works for block elements with a specified height. </div>

+0

答えのおかげで、私はスクロールバーを作った。もう1つ質問することはできますか? – paulc1111

+0

あなたはお尋ねすることができますが、長い説明が必要な場合は、新しい質問を投稿してください – BioGenX

+0

それは簡単な質問です。スクロールバーを作成した後、淡い青色の円はdivの右側にドラッグ&ドロップできません。私はz-indexを使用しましたが、動作しません。 – paulc1111

0

direction: rtl; overflow:scroll;をdivに追加すると、左側にスクロールバーが表示されます。

.left{ 
 
    background:grey; 
 
    height:100vh; 
 
    width:200px; 
 
    display:inline-block; 
 
    vertical-align:top; 
 
} 
 
.right{ 
 
    width:200px; 
 
    height:100vh; 
 
    display:inline-block; 
 
    direction: rtl; 
 
    vertical-align:top; 
 
    overflow: scroll; 
 
}
<div class="left"> </div> 
 
<div class="right"> 
 
<p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p><p>...</p> 
 
</div>

+0

答えをありがとう、私は本当にそれを感謝 – paulc1111

0

ID scrolldiv1に特定の高さを与えます。 divを両方ともBootstrap行クラスの内側に配置し、内側の列に配置する方が良いでしょう。 次に、divにHeightを渡します。データが高さを超えるたびに、自動的にスクロールバーが追加されます。

はすべてのブラウザで動作します。

+0

答えのおかげで、私は本当にそれを感謝 – paulc1111

0

overflow-x: scroll;あなたの問題を解決します。

divを適切に維持するため、左ペインのdivにfloat: left;を使用しました。

.left-container { 
 
    width: 30%; 
 
    height: 200px; 
 
    overflow-x: scroll; 
 
    float: left; 
 
}
<div> 
 
    <div class="left-container"> 
 
    Scrollable Left pane 
 
    <ul> 
 
     <li>1</li> 
 
     <li>2</li> 
 
     <li>3</li> 
 
     <li>4</li> 
 
     <li>5</li> 
 
     <li>6</li> 
 
     <li>7</li> 
 
     <li>8</li> 
 
     <li>9</li> 
 
     <li>10</li> 
 
     <li>11</li> 
 
     <li>12</li> 
 
     <li>13</li> 
 
     <li>14</li> 
 
     <li>15</li> 
 
     <li>16</li> 
 
     <li>17</li> 
 
     <li>18</li> 
 
     <li>19</li> 
 
     <li>20</li> 
 
    </ul> 
 
    </div> 
 
    <div> 
 
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has 
 
    survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing 
 
    software like Aldus PageMaker including versions of Lorem Ipsum. 
 

 

 
    </div> 
 
</div>

+0

回答ありがとうございました。私は本当に感謝しています。 – paulc1111

+0

@ paulc1111 upvote助けがあれば – Iceman

0

追加 'オーバーフロー:auto' で左コンテナにそれが最も重要な部分で

.left-container { 
width: 30%; 
height: 200px; 
overflow: auto; 
float: left; 
    } 
+0

答えをありがとう!私は本当にそれを感謝します – paulc1111

+0

@ paulc1111は正常に動作していますか? – shyamu

関連する問題