Javascript jQuery scrollTop偏移量未滚动到移动设备上的目标元素
我一直在尝试为表单编写jQuery代码,这样当用户选择一个单选按钮时,页面会自动滚动到下一个问题,该问题由Javascript jQuery scrollTop偏移量未滚动到移动设备上的目标元素,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我一直在尝试为表单编写jQuery代码,这样当用户选择一个单选按钮时,页面会自动滚动到下一个问题,该问题由frm\u opt\u容器类包装 这是我的页面的HTML结构: <div class="frm_opt_container"> <div class="frm_radio"> <label> <input type="radio"> </label
frm\u opt\u容器类包装
这是我的页面的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>
问题:该代码在桌面上运行良好,但在移动设备上,当一个问题有两个多选项时,它只会滚动一点(我在移动设备上将它们显示为块)
这里有一个链接到只包含表单的页面。您可以使用第一个问题和单选按钮在手机上进行测试
谢谢
$(".frm_radio input").on('change', function() {
var selector = $(this).closest('div').next();
$('html, body').animate({
scrollTop: $(selector).offset().top
}, 2000);
});
试试这个jQuery代码这就是你想要做的吗
更改/单击单选按钮后,通过指向$(this).parents(“.frm\u form\u fields”)。next()
:找到输入的.frm\u form\u fields
父对象,并在DOM上选择下一个
$(“.frm\u无线电输入”).更改(功能(){
const$target=$(this).parents(“.frm_form_fields”).next();
如果($target.length<1){
返回;
}
$(“html,body”).animate(
{
scrollTop:$target.offset().top
},
1000
);
});代码>
.container{
垫底:600px;
}
.frm_收音机{
填充:20px;
利润率:10px;
背景:卡德蓝;
颜色:白色;
}
你是怎么听说我们的?
谷歌/Youtube
Facebook/Instagram
你是怎么听说我们的?
雅虎/必应
电子邮件
你是怎么听说我们的?
自动取款机
另一个客户
自动取款机
你是怎么听说我们的?
广告牌
朋友/家人
我是过去的客户
感谢您将代码缩短了很多。不幸的是,这个问题仍然没有在手机上解决。我开始怀疑scrollTop允许滚动的数量是否有一些限制。编辑:您的代码已成功滚动到问题,但问题的所有选项都在折叠下面。有办法解决这个问题吗?恐怕没有。您的代码意味着滚动到最近的“.frm_radio”类,它只是另一个单选按钮类。我打算让页面滚动到下一个问题,该问题的类为“.frm_opt_container”。啊,我不理解预期的行为。几小时后我回到电脑前,我当然可以帮你编写代码。非常可行!为您想要的行为定制代码。这就是你要找的吗?不,这好像不管用。
$(".frm_radio input").on('change', function() {
var selector = $(this).closest('div').next();
$('html, body').animate({
scrollTop: $(selector).offset().top
}, 2000);
});