簡體   English   中英

如何根據DIV的寬度自動滾動div中的文本

[英]How to auto scroll text within div depending on width of DIV

我有固定寬度的div。如果div的內容大於div的寬度,我想自動滾動(左和右:水平方向)文本。我該怎么做呢?css或jquery。當前div具有這樣的類。 。

       .divcon{
margin:0px;
padding:0px;
height:30px;
width:143px;
font:bold 9px Verdana, Geneva, sans-serif;
line-height:30px;
color:#000;
background-image:url(../images/glass_bg.png);
background-repeat:repeat-x;
display:block;
float:left;

}

我不需要任何滾動條..我想要像選框一樣的功能

一種簡單的方法是在CSS類中添加溢出:

overflow: scroll;

這將使div在水平和垂直方向均可滾動。

如果只想向一個方向滾動,則應嘗試:

overflow-y:scroll; // For vertical scroll bar

overflow-x:scroll; // For horizontal scroll bar

你可以有這樣的

用於水平滾動

溢出-x:滾動;

用於垂直滾動

溢出-y:滾動;

用於在兩側溢出時進行滾動:

從上面的CSS默認滾動會來,它不會取決於內容的大小

要使其取決於內容大小,請滾動->自動

overflow: auto; /* scroll bars appear, only when they are needed */

要么

overflow: scroll; /* scroll bars appear (both horizontal and vertical, even when not needed */

還有其他編碼溢出的方法,尤其是當您希望顯示特定的滾動條時。 但是,較舊的瀏覽器(IE8和更早版本)並未廣泛支持這些功能。

overflow-x: scroll; /* only horizontal scroll bar */
overflow-y: scroll; /* only vertical scroll bar */

這是靜態文本的代碼,您需要根據div中的文本指定寬度:

CSS:

.divcon-outer{
width:143px;

}
.divcon{
margin:0px;
padding:0px;
max-height:45px;
width:auto;
font:bold 9px Verdana, Geneva, sans-serif;
line-height:30px;
color:#000;
background-image:url(../images/glass_bg.png);
background-repeat:repeat-x;
display:block;
overflow-x: auto;
overflow-y: hidden;

}
.divcon p{
min-width:200px;
max-width:50000px;
margin:0;
padding:0;
}

HTML:

<div class="divcon-outer">
<div class="divcon"><p>I have div with fixed width.I want to auto scroll(lefta nd right:Hirizontal direction) the text if content of div is more than div width.How can i do this thought css or jquery.Currently div has a class like this..</p></div></div>

這是一個示例,該示例使用嚴格的CSS在寬度固定的區域進行水平自動滾動。 沒有使用或渲染滾動條。 這里需要注意的幾件事:

  • 您的問題有點模棱兩可。 當您說要自動滾動時,是否表示要在將內容添加到div時滾動內容? 您是說要它反復滾動相同的文本嗎? 還是別的? 我在這里假設您正在請求第一個選項。

  • 此處的滾動不使用JavaScript,但當然需要一些腳本來填充要滾動的div。

  • 我僅在Firefox和Chrome中對此進行了測試。

 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style type="text/css"> #scrollbox{ display: inline-block; width: 16em; overflow: hidden; border: 1px solid #F00; } #scrollcontent{ float:right; white-space: nowrap; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script type="text/javascript"> var idx = 0; $(document).ready(function(){ setInterval(function(){ idx++; $('#scrollcontent').append('foo_' + idx + " "); }, 200); }) </script> </head> <body> <span id="scrollbox"> <span id="scrollcontent"></span> </span> </body> </html> 

只要您向div中添加文本,並且只希望在添加文本時向右滾動,效果就很好。 如果要使其自動左右滾動,則需要JavaScript自動將“ #scrollcontent”的位置曲折。 您需要一種算法來獲取父跨度的寬度(在這種情況下為“ #scrollbox”),從子跨度的寬度中減去該寬度(“ #scrollcontent”),並在零和該減法結果之間振盪一個數字。 子跨度的x位置將設置為該數字的負數。 請注意,您需要給“ scrollcontent”一個絕對位置,然后刪除float:right屬性。 您還需要為“ scrollbox”指定position屬性,否則scrollcontent的絕對位置將相對於確實明確定義了位置的下一個父對象,而不是scrollbox本身。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM