第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

CSS 有兩個(gè)列表,同步它們的垂直滾動(dòng),同時(shí)允許一個(gè)列表水平滾動(dòng)

CSS 有兩個(gè)列表,同步它們的垂直滾動(dòng),同時(shí)允許一個(gè)列表水平滾動(dòng)

慕森卡 2022-11-27 17:14:40
我有兩個(gè)列表,其中列表 1 中的項(xiàng)目 i 與列表 2 中的項(xiàng)目 i 相關(guān)。我希望兩個(gè)列表都可以垂直滾動(dòng),以便項(xiàng)目在兩個(gè)列表中始終具有相同的滾動(dòng)位置。但是列表 2 有更多的內(nèi)容供屏幕顯示(比如各種時(shí)間軸),所以我希望該列表可以水平滾動(dòng)(請(qǐng)注意,不是項(xiàng)目本身而是整個(gè)列表),而列表 1 保持固定。有沒(méi)有辦法只在 CSS 中做到這一點(diǎn)?這是我到目前為止所擁有的:代碼沙盒請(qǐng)注意,這只是為了說(shuō)明這一點(diǎn)。實(shí)際項(xiàng)目是更大的 DOM 結(jié)構(gòu),而不僅僅是文本。我更新了 codesandbox 來(lái)說(shuō)明這一點(diǎn)。我似乎真的無(wú)法讓水平滾動(dòng)正常工作。任何幫助將非常感激。
查看完整描述

1 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

設(shè)置width為一些適當(dāng)?shù)拇笾担ɡ?code>500px),并white-space: nowrap.rightPaneItem.

請(qǐng)記住,元素的width屬性值.rightPaneItem需要根據(jù)rightPaneItem最長(zhǎng)內(nèi)容的內(nèi)容進(jìn)行調(diào)整。

function App() {

  return (

    <div className="App">

      <div className="leftPane">

        LeftPane

        {new Array(100).fill(0).map((_, i) => (

          <div key={i} class="leftPaneItem">

            item {i}

          </div>

        ))}

      </div>

      <div className="rightPane">

        RightPane

        {new Array(100).fill(0).map((_, i) => (

          <div key={i} class="rightPaneItem">

            item {i} with a way longer text so you should be able to scroll

            horizontally

          </div>

        ))}

      </div>

    </div>

  );

}



ReactDOM.render(<App />, document.getElementById("root"));

.App {

  text-align: center;

  max-height: 300px;

  max-width: 300px;

  display: flex;

  border: 3px dashed green;

  overflow: auto;

  padding: 5px;

}


.leftPane {

  display: flex;

  flex-direction: column;

  height: 100%;

  flex: 1;

  border: 2px solid red;

  padding: 5px;

}


.rightPane {

  display: flex;

  flex-direction: column;

  height: 100%;

  flex: 2;

  border: 2px solid blue;

  padding: 5px;

  overflow-x: auto;

}


.leftPaneItem {

  height: 20px;

}


.rightPaneItem {

  height: 20px;

  width: 500px;

  overflow-x: hidden;

  white-space: nowrap;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.13.1/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.1/umd/react-dom.production.min.js"></script>


<div id="root"></div>

編輯:

由于您將在右列中擁有可變長(zhǎng)度的內(nèi)容,因此您可以使用以下方法。

您可以在外部容器和元素上添加,而不是在 上設(shè)置widthoverflow屬性。.rightPaneItemoverflow: auto.App.rightPane

function App() {

  return (

    <div className="App">

      <div className="leftPane">

        LeftPane

        {new Array(100).fill(0).map((_, i) => (

          <div key={i} class="leftPaneItem">

            item {i}

          </div>

        ))}

      </div>

      <div className="rightPane">

        RightPane

        {new Array(100).fill(0).map((_, i) => {

          if (i % 2 == 0) {

             return (

               <div key={i} class="rightPaneItem">

                  item {i} with a way longer text so you should be able to scroll

            horizontally

              </div>);

          } else {

             return (

               <div key={i} class="rightPaneItem">

                  item {i} with a way longer text so you should be able to scroll

            horizontally.                   item {i} with a way longer text so you should be able to scroll

            horizontally.                   item {i} with a way longer text so you should be able to scroll

            horizontally

              </div>);

          }

        })}

      </div>

    </div>

  );

}



ReactDOM.render(<App />, document.getElementById("root"));

.App {

  font-family: sans-serif;

  text-align: center;

  max-height: 300px;

  max-width: 300px;

  display: flex;

  border: 3px dashed green;

  overflow: auto;

  padding: 5px;

}


.leftPane {

  display: flex;

  flex-direction: column;

  height: 100%;

  flex: 1;

  border: 2px solid red;

  padding: 5px;

}


.rightPane {

  display: flex;

  flex-direction: column;

  height: 100%;

  flex: 2;

  border: 2px solid blue;

  padding: 5px;

  overflow: auto;

}


.leftPaneItem {

  height: 20px;

}


.rightPaneItem {

  height: 20px;

  position: relative;

  white-space: nowrap;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.13.1/umd/react.production.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.13.1/umd/react-dom.production.min.js"></script>


<div id="root"></div>

我還在 codesandbox 上創(chuàng)建了一個(gè)演示,它類似于您問(wèn)題中發(fā)布的演示,并使用與第二個(gè)代碼片段中使用的相同的 CSS。



查看完整回答
反對(duì) 回復(fù) 2022-11-27
  • 1 回答
  • 0 關(guān)注
  • 261 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)