当我调用slideDown时,为什么这行会"跳转"?

Nat*_*man 10 jquery animation slide

由于代码很多,我不会在这里发布.相反,你可以在这里找到它.这样你就可以玩它并运行它:

function P_Expand(item_id) {
  $('#p_' + item_id).slideToggle();
}
Run Code Online (Sandbox Code Playgroud)
.data_table {
  width: 650px;
  margin-left: auto;
  margin-right: auto;
  border-collapse: collapse;
}
.data_table tbody th {
  border-bottom: 1px solid #555;
  text-align: left;
}
.data_table tbody tr td a {
  color: #8b9cb0;
  text-decoration: none;
}
.hidden_data {
  display: none;
  padding: 10px;
  font-style: italic;
  color: #777;
}
Run Code Online (Sandbox Code Playgroud)
<table class='data_table'>
  <tbody>
    <tr>
      <td>
        <a href='javascript:void(0)' onclick='P_Expand(9)'>Drop me down!</a>
      </td>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td colspan='3' style='background-color: #eee'>
        <div id='p_9' class='hidden_data'>
          <p style="margin: 0px;">Donec dolor urna, vehicula in elementum eget, auctor dignissim nibh. Morbi et augue et nisi.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td>Line number 2...</td>
      <td>...</td>
      <td>...</td>
    </tr>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

问题发生在'让我失望!' 单击链接.DIV按预期滑落,但在最后突然"跳".

为什么会这样做,我怎么能让它消失?

小智 23

其实你不需要这些.只需给你的隐藏元素一个宽度:

.hidden_data {
    display: none;
    padding: 10px;
    font-style: italic;
    color: #777;
    width: 300px;
}
Run Code Online (Sandbox Code Playgroud)

它会起作用!

PS:我整个周末都在这...

  • 也为我工作=)简单!甚至`宽度:100%`也适用 (2认同)
  • 简单方案!我需要设置溢出:隐藏; 还有,tnx! (2认同)

Rei*_*gel 12

演示

代码链接

.hidden_data {
    overflow: hidden;
    display:none; /* <--- remove this */
    padding: 10px;
    font-style: italic;
    color: #777;
}?
Run Code Online (Sandbox Code Playgroud)

类似的问题回答