js聊天页面加载或刷新自动跳转到页面底部

问题

在开发过程中,我接到这样一个功能,写一个聊天页面,要求页面加载或刷新后页面跳转到底部。在经过一系列百度以后,发现一个看似比较简单且靠谱的方法,即加上下面的代码块:

<script>
    window.onload = function () {
      window.scrollTo(0, document.body.scrollHeight)
    }
</script>

因为我是写了两个页面,一个移动端,一个pc端(整体页面都差不多,基本上就底部输入框的区别),相似度99%的代码,移动端的加上可以了,但是pc端的就是不行,于是我又各种百度,有说给scrollTop赋值的,但是这个好像有兼容问题,不管怎么赋值,结果都是0,也看见过情况跟我差不多的,用了他们的解决办法还是没用,最后我把移动端的代码复制一遍,一段一段排查,发现是底部的输入框有问题,
这是pc端的输入框:
在这里插入图片描述
这是移动端的输入框:
在这里插入图片描述

解决

最后发现是自动获取焦点的问题,在百度的时候其实也遇到过说是可以通过自动获取焦点来实现跳转,但是我试过了,并不可以,后来一遍一遍尝试才发现需要加上上面的代码一起作用才行,当然,这个方法解决了我的问题,不知道遇到类似问题的朋友能不能解决,写出来给大家参考一下

总结

为了防止上面说的不清楚,我再把解决办法总结一下
1、给底部的输入框加上autofocus属性(true)
在这里插入图片描述
2、在js代码中添加以下代码

<script>
    window.onload = function () {
      window.scrollTo(0, document.body.scrollHeight)
    }
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值