vue设置元素的scrollTop属性的值进行页面滚动,在安卓手机上不生效

试了vue和原生js的各种页面滚动的方法均不生效,最后引入了jquery插件,使用jquery的页面滚动方法就可以了,我想这可能归结与jquery的兼容性做的比较好吧

$("body,html").scrollTop(100);

欢迎关注「不出户」公众号 

在公众号回复「python」,获取全套python学习资源。

在公众号回复「vue」,领取vue核心教程

在公众号回复「react」,领取react全套教程

在公众号回复「angular」,领取angular学习资源

在公众号回复「算法」,领取算法学习教程

在公众号回复「nodejs」,领取nodejs学习教程,更有更多精品资源敬请期待

欢迎关注不出户,让你足不出户爱好学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 可能是因为你没有正确地设置scrolltop属性。你可以尝试以下几个步骤: 1. 确保你已经正确地引入了Vue.js库。 2. 在你的Vue组件中,使用ref属性来获取你想要设置scrolltop元素。 3. 在mounted钩子函数中,使用$refs来获取元素的实例,并设置scrolltop属性。 例如: ``` <template> <div ref="myDiv"> <!-- your content here --> </div> </template> <script> export default { mounted() { this.$refs.myDiv.scrollTop = ; } } </script> ``` 如果你仍然遇到问题,请提供更多的代码和错误信息,以便我们更好地帮助你解决问题。 ### 回答2: 在Vue设置scrollTop生效可能有几个原因: 1. 错误的元素引用:vue中的dom操作需要通过Vue的$ref来引用对应的dom元素,而不是直接使用document.getElementbyId或者其他原生js方式来获取dom。如果引用的dom元素不正确,scrollTop设置就无效。 解决方法:确保$ref是正确引用dom元素的。 2. 对应的元素还未渲染完毕:可能vue组件还未完全渲染完毕,此时对该组件中的dom元素位置进行设置scrollTop是无效的。 解决方法:在mounted生命周期函数中使用vue提供的nextTick,等待dom元素渲染完毕再进行scrollTop设置。 3. 父元素overflow属性问题:在vue组件中进行scrollTop设置时,如果存在继承滚动条的父元素,而该父元素的overflow属性为hidden,那么子元素scrollTop设置就无效了。 解决方法:将父元素的overflow属性设置为auto或scroll。 4. 非阻止默认事件导致的scrollTop生效:在vue中,通过@click等事件监听器中进行scrollTop设置时,如果没有通过event.preventDefault()阻止默认事件的触发,则scrollTop设置可能无效。 解决方法:在事件监听器中添加event.preventDefault()来阻止默认事件的触发。 综上所述,vue设置scrollTop生效可能有多种原因,需要仔细检查代码,确保代码没有问题后再寻找其他原因,以确保scrollTop设置生效。 ### 回答3: Vue设置scrollTop生效可能是因为以下几个原因: 1. Vue中dom的操作需要在页面渲染后才能生效,所以需要在mounted或者$nextTick中进行相关操作。 2. 必须将scrollTop给dom节点的scrollTop,而不是Vue中的data属性。 3. 如果是组件内部设置scrollTop,需要将ref属性绑定到对应的dom节点上,并通过this.$refs.xxx来获取dom节点并进行scrollTop的赋操作。 4. 如果是在Vue Router中进行页面跳转后再设置scrollTop,需要添加一个watch监听,等到页面渲染完毕后进行scrollTop的赋操作。 以下是一个设置scrollTop的示例代码: ```javascript mounted() { this.$nextTick(() => { let content = document.getElementById('content'); if (content) { content.scrollTop = 0; } }) } ``` 其中,content代表要设置scrollTop的dom节点,需要通过Vue Router进行页面跳转后再设置scrollTop的话,可以在watch中添加以下代码: ```javascript watch: { $route(to, from) { this.$nextTick(() => { let content = document.getElementById('content'); if (content) { content.scrollTop = 0; } }) } } ``` 通过以上方法来设置scrollTop应该可以解决VuescrollTop生效的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木豪末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值