javascript - 锚定在两列行中的可滚动 DIV 内

标签 javascript css scroll anchor

我有一个两列的行,其中第二列可以滚动。我怎样才能单击第一列中的链接并让第二列滚动到相关内容。

目前代码如下:

  <style>
    .row {width:100%;}
    .col1 {} 
    .col2{ width:425px; float:left; height:450px; overflow-x:hidden; overflow-y: scroll; margin-bottom: 5px; margin-top: 5px; background: #3b435f; }
  </style>

 <div class='row'>
   <div class='col1 '>
   <a href = '#1'> link 1 </a><br>
   <a href = '#2'> link 2 </a><br>
   <a href = '#3'> link 3 </a><br>
   <a href = '#4'> link 4 </a><br>
   <a href = '#5'> link 5 </a><br>
   <a href = '#6'> link 6 </a><br>
   </div>
   <div class= 'col2'>
       <div id='1'> some words</div>
       <div id='2'> some words</div>
       <div id='3'> some words</div>
       <div id='4'> some words</div>
       <div id='5'> some words</div>
       <div id='6'> some words</div>
       <div id='7'> some words</div>
       <div id='8'> some words</div>
   </div>

最佳答案

找到我自己的解决方案。希望这可以帮助其他人在手机、平板电脑和 IE、FireFox、Safari 和 Chrome 上工作:

<div class="MyDiv" onclick="ScrollToCard()">Find Me</div>

 function ScrollToCard(CardIndex)
 {
 var myDiv            = document.getElementById('col2');
 var myDivrect        = myDiv.getBoundingClientRect();

 var szCardId         = CardIndex.toString(10); 
 var Card             = document.getElementById(szCardId);
 var Cardrect         = Card.getBoundingClientRect();
 var CardHeight       = Cardrect.height;
 var CardWidth        = Cardrect.width;
 var DefaultTopSpace  = 25;
 var MarginLeft       = 10;
 var MarginRight      = 10;

 var CardsPerRow      = Math.round(myDivrect.width / (CardWidth + MarginLeft       + MarginRight ));
 var Distance         = (DefaultTopSpace + ((CardHeight + DefaultTopSpace ) * (CardIndex-1)/CardsPerRow)) ;
 var Offset           = 0;
 if(CardsPerRow== 2)
    Offset = CardHeight;
 if(CardsPerRow== 3)
    Offset = CardHeight;   

 Distance = Distance - Offset;

  myDiv.scrollTo({
  top: Distance,
  left: 0,
  behavior: 'smooth'
 });

关于javascript - 锚定在两列行中的可滚动 DIV 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55978094/

相关文章:

javascript - 使用 pg-promise 的条件任务

html - 仅在文本中更改 UL LI 元素符号点 - Wordpress - CSS

html - 本地背景附件 - 如何让子元素具有背景颜色并仍然看到滚动效果?

android - RecyclerView 中的 EditText 值在第 5 个位置后给出相同的值

html - html表格内的自动滚动文本

javascript - 如何在桌面和移动 safari 上滚动页面加载

javascript - AngularJS 绑定(bind)数据

javascript - 如何将Greensock集成到pixi js中

javascript - 在 pjax 请求上显示加载文本

CSS 单元格高度