input获取焦点时底部菜单被顶上来问题的解决办法

发布时间 - 2026-01-10 22:46:52    点击率:

代码如下所示:

<div class="search-box">
  <input class="search-input" type="text" placeholder="请输入名称">
</div>
<!--底部-->
<div id="mini_nav" class="nav bt-nav">
  <div>
    <ul>
      <li><a href="#"><span class="ico-home"></span>
          主页
        </a>
      </li>
      <li><a class="selected-menu" href="#"><span class="ico-shop"></span>
          商城
        </a>
      </li>
      <li><a href="#"><span class="ico-service"></span>
          服务
        </a>
      </li>
      <li><a href="#"><span class="ico-me"></span>
          我的
        </a>
      </li>
    </ul>
  </div>
</div>

当input获取焦点时底部菜单被顶上来问题解决方案:

1.如果是短页面,比如登录页,上部的登录表单div与底部的菜单div不会重合(两个div是同级的),可以通过设置登录表单div的z-index比底部菜单div的z-index大,这样在页面加载完成后,两个div不会重叠,其层级设置也不会受影响。而在input获取焦点之后,软键盘弹出,两个div发生重叠,因为设置了上部登录表单div的z-index比底部菜单div的z-index大,所以底部菜单div会被挡住,也就是看不到被顶上来的底部菜单,问题自然就迎刃而解了。

注意:z-index在position属性值为默认值static时不生效。

2.如果是长页面,比如商品展示页,上部的商品展示div肯定会与底部菜单div发生重叠,那么设置层级(z-index)肯定是行不通的,于是,可以使用js来控制底部菜单div的position的值来解决:

 $('.search-input').bind('focus',function(){
   $('#mini_nav').css('position','static');
 }).bind('blur',function(){
$('#mini_nav').css({'position':'fixed','bottom':'0'});
});

说明:在input获取焦点时,改变底部菜单div的position值为static(默认值,不会脱离文档流),会被放置到document的最后,不会出现在软键盘上面,而当input失去焦点时,再把底部菜单div的position改回fixed,底部菜单div再次回到视口底部,这样问题就解决了。

到这里,我们又有一个疑问了,若软键盘是点击收起键收起的,input不会失去焦点,所以blur事件不会触发,底部菜单div的position也不会改回fixed,于是,我们可以通过捕捉键盘收起事件去改变底部菜单div的position。

那么如何捕捉到软键盘收起事件呢?在网上搜索了很久,终于找到了一个解决方案:根据视口的大小变化判断。

js代码如下:

var wHeight = window.innerHeight; //获取初始可视窗口高度 
window.addEventListener('resize', function(){ //监测窗口大小的变化事件 
  var hh = window.innerHeight; //当前可视窗口高度 
  var viewTop = $(window).scrollTop(); //可视窗口高度顶部距离网页顶部的距离 
  if(wHeight > hh){ //可以作为虚拟键盘弹出事件 
    $(".content").animate({scrollTop:viewTop+100}); //调整可视页面的位置 
    //do something... 
  }else{ //可以作为虚拟键盘关闭事件 
    //$("content").animate({scrollTop:viewTop-100}); 
    $('#mini_nav').css({'position':'fixed','bottom':'0'});//软键盘关闭时改变底部菜单div的position
  } 
  wHeight = hh; 
});

OK,完成。

其实在用户滚动页面时会使input失去焦点触发blur事件,如果要求不是特别严格,这个小问题可以忽略。

以上所述是小编给大家介绍的input获取焦点时底部菜单被顶上来问题的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# input  # 获取焦点  # 火狐下input焦点无法重复获取问题的解决方法  # 文本框(input)获取焦点(onfocus)时样式改变的示例代码  # 表单  # 弹出  # 小编  # 值为  # 默认值  # 在此  # 出现在  # 又有  # 而在  # 很久  # 我们可以  # 可以通过  # 迎刃而解  # 给大家  # 请输入  # 可以使用  # 所示  # 再把  # 解决办法  # 所述 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何处理表单验证?(Requests代码示例)  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  教你用AI将一段旋律扩展成一首完整的曲子  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何挑选优质建站一级代理提升网站排名?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何快速搭建高效服务器建站系统?  如何在IIS管理器中快速创建并配置网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  深圳网站制作培训,深圳哪些招聘网站比较好?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  WordPress 子目录安装中正确处理脚本路径的完整指南  linux写shell需要注意的问题(必看)  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  香港服务器建站指南:免备案优势与SEO优化技巧全解析  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Python结构化数据采集_字段抽取解析【教程】  ,南京靠谱的征婚网站?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Android利用动画实现背景逐渐变暗  北京网站制作公司哪家好一点,北京租房网站有哪些?  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  网站页面设计需要考虑到这些问题  Laravel Session怎么存储_Laravel Session驱动配置详解  韩国服务器如何优化跨境访问实现高效连接?  如何在IIS中配置站点IP、端口及主机头?  百度浏览器如何管理插件 百度浏览器插件管理方法  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何自定义建站之星模板颜色并下载新样式?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  JavaScript数据类型有哪些_如何准确判断一个变量的类型  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  深入理解Android中的xmlns:tools属性  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  HTML 中动态设置元素 name 属性的正确语法详解  北京专业网站制作设计师招聘,北京白云观官方网站?