javascript - 如何让屏幕跟随Slidetoggle

标签 javascript jquery slidetoggle slideup

我有一个问题/答案列表 div:当我通过单击问题打开答案时,所有其他答案都会关闭。

<div class="question">
  QUESTION 1
</div>

<div class="answer">
  ANSWER 1
</div>

<div class="question">
  QUESTION 2
</div>

<div class="answer">
  ANSWER 2
</div>

(etc.)

为此,我使用了 javascript 代码 found on Stackoverflow ,效果很好:

$(document).ready(function() {
  var $answers = $('.answer');
  $(".question").click(function() {
    var $ans = $(this).next(".answer").stop(true).slideToggle(500);
    $answers.not($ans).filter(':visible').stop(true).slideUp();
  })
});

我的问题:如果打开的答案之一(假设答案2)真的很长,高度很大,当我点击下一个问题(问题3)时,所有的 divs 将上升(跟随答案 2 的 SlideUp),并且屏幕不会跟随它们。而我想要的答案(答案3)将不可见,我必须向上滚动才能看到它。

这里是一个例子(问题 2 是长答案):https://jsfiddle.net/TB54/1dgchwyw/1/

有什么办法可以让屏幕向上滑动并显示刚刚关闭的答案吗? 或者至少让屏幕滚动到单击的问题?

最佳答案

如果您设置 minmax-height,并且只需将 overflow 设置为 auto,您的代码就可以正常工作。在最好的情况下,滚动浏览长答案可能会很痛苦,因此,如果答案很长,最好让它在 div 内滚动,这样它就不会立即显得那么长(并且可能令人生畏!)

看看 fiddle https://jsfiddle.net/769ohszw/

(我将最小高度设置为 20vh,最大高度设置为 30vh,溢出设置为自动)

关于javascript - 如何让屏幕跟随Slidetoggle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266905/

相关文章:

javascript - 如何返回对象中属性的命名空间路径?

jquery - 使用 Slidetoggle() 显示/隐藏我的 div

jquery - 一个简单的 jQuery Accordion 无法工作,需要帮​​助

Javascript 数学函数

javascript - 如何使用javascript在文本框上触发焦点事件?

javascript - Facebook Javascript SDK 中的好友列表总数

jquery - 动态改变元素 li 的颜色不会改变 bullet point 的颜色

javascript - 如何通过单击下一步按钮从列表中显示同一类的div?

jquery - 如何给 anchor 标签添加一定的值?

javascript - 如果以毫秒为单位,则忽略传递给 jQuery SlideToggle() 的速度变量