【问题标题】:on focus of every input and every time scroll top关注每个输入和每次滚动顶部
【发布时间】:2017-01-25 11:36:30
【问题描述】:
<div class="gdbox">
   <input id="one" type="text"><br><br>
   <input id="two" type="text"><br><br>
   <input id="one" type="text"><br><br><input type="text">
</div>
  <script>
  $('input').on('focus',function(){
     var inputHeight=$('.gdbox input').height();
      $("html, body").animate({ scrollTop: inputHeight}, 600);
      return false;
   });
  </script>

现在,当我专注于输入正文时,它会滚动到顶部,它只在第一次和一次聚焦时工作,但我想要“在每个输入和每次正文的焦点上,html 应该滚动顶部一些 see in fiddle”

【问题讨论】:

标签: javascript jquery css jquery-mobile


【解决方案1】:

您可以使用 .offset().top 获取每个元素的顶部位置,然后将其滚动到顶部。

$('input').on('focus',function(){
    var inputHeight=$(this).offset().top;
    $("html, body").animate({ scrollTop: inputHeight}, 600);
    return false;
 });

$('input').on('focus',function(){
		var inputHeight=$(this).offset().top;
    $("html, body").animate({ scrollTop: inputHeight}, 600);
    return false;
 });
input{
  height:40px;
}

.gdbox
{
  height:600px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="gdbox">
    <div id="gdb1" class="gdbutton fontwhitenshadow">Q</div>
    <input id="one" type="text"><br><br>
    <input id="two" type="text"><br><br>
    <input id="one" type="text"><br><br><input type="text">
</div>


<div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Veniam beatae quas esse explicabo modi odio nesciunt vero error obcaecati ea sequi alias quam facilis delectus odit aperiam repellat similique corrupti.</div>

小提琴:https://jsfiddle.net/78ukreut/

【讨论】:

  • Deep, (jsfiddle.net/78ukreut ) 这很好,但是当我删除段落时它不会起作用
  • @DVYogesh 因为一旦你删除段落,页面上就没有滚动了。
  • 在手机中,当我专注于输入时,键盘会出现用户无法访问下一个输入键盘隐藏输入
  • @DVYogesh 让我看看它在移动设备上的表现。
  • @DVYogesh 我认为移动设备的行为只会是这样。检查移动设备上的谷歌注册,它只是在移动屏幕上设置焦点元素位置,用户必须手动滚动到其他字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 2020-10-01
  • 2018-06-11
  • 2013-10-29
  • 2022-08-05
  • 2021-08-21
相关资源
最近更新 更多