javascript - jQuery scrollTop 偏移量不滚动到移动设备上的目标元素
问题描述
我一直在尝试为表单编写 jQuery 代码,以便当用户选择一个单选按钮时,页面会自动滚动到由一类包裹的下一个问题frm_opt_container
这是我页面的 HTML 结构:
<div class="frm_opt_container">
<div class="frm_radio">
<label>
<input type="radio">
</label>
</div>
<div class="frm_radio">
<label>
<input type="radio">
</label>
</div>
<div class="frm_radio">
<label>
<input type="radio">
</label>
</div>
</div>
这是我写的 jQuery:
//Scroll Function
var option = document.querySelectorAll('label');
for (var i = 0;; i++) {
option[i].addEventListener('click', function() {
var ele = $(this).parents('.frm_opt_container');
setTimeout(function() {
$("html, body").animate({
scrollTop: $(ele).offset().top
}, 1000);
}, 200);
});
}
问题:代码在桌面上运行良好,但是当一个问题有两个很多选项时,它在移动设备上滚动一点(我在移动设备上将它们显示为块)。
这是指向仅包含表单的页面的参考链接。您可以使用带有单选按钮的第一个问题在移动设备上进行测试。
谢谢!
解决方案
$(".frm_radio input").on('change', function() {
var selector = $(this).closest('div').next();
$('html, body').animate({
scrollTop: $(selector).offset().top
}, 2000);
});
试试这个 jQuery 代码
推荐阅读
- angular - 如何在不使用集中式错误处理的情况下使用小吃吧在 Angular 8 中添加错误处理
- java - Spring Autowire byName,属性名称与 bean xml id 的名称不匹配
- java - 带有 kafka-clients-2.6.0 的 listTopics 给出 TimeoutException
- python - '(slice(None, None, None), 0)' 是无效键
- c - 为什么不复制所有非空格而不是 * 符号?为什么 strcpy 会修改源代码?
- excel - 代码在使用 F8 时有效,但在完全运行时无效
- scala - 遍历 Seq[row] 直到使用 Scala 满足特定条件
- php - 内部请求计数超过限制。收到:X,限制:X
- react-native - 为什么我们应该在 React-Native 中使用 tsx 而不是简单的 .js?
- java - 毕加索图像缓存使用位图