dcloudio / dcloudio/uni-app

scroll-view组件获取scrollLeft失效

Open
#2,960 1 comment 0 reactions 1 assignee Claimed by @ArrayDC View on GitHub
app doubleCheck
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

**问题描述**
app端-纯nvue项目
需要做到当前项居中的效果(例:https://segmentfault.com/a/1190000021318472)

所以每次点击时需要获取scroll-view的left值,之前在小程序端可以正常获取,但是现在新项目在app端获取的值一直为0

导致当点击到后面几个item时,scroll-view组件会后移非常多 在后面出现非常多的留白

ps: 也试过`const dom = uni.requireNativePlugin('dom');`的方式获取节点信息,获取到的值同样为0

**复现步骤**
```html


{{item.title}}

```
```js
this.getElementData('#tabbar', (info)=> {
let list = info
// 这里list获取到的left始终为0
console.log(list)
this.getElementData(`#tab_item_${this.currentIndex}`, (el)=> {
// 活动item的宽度
// let tabWidth = el.width;
// // 活动item的左边到tabs组件左边的距离,用item的left减去tabs的left
// let offsetLeft = el.left - list.left;
// // 将活动的tabs-item移动到屏幕正中间,实际上是对scroll-view的移动
// let scrollLeft = offsetLeft - (list.width - tabWidth) / 2;
// this.tabsScrollLeft = scrollLeft < 0 ? 0 : scrollLeft;
})
})

getElementData(el, callback){
uni.createSelectorQuery().in(this).selectAll(el).boundingClientRect().exec((data) => {
callback(data[0]);
});
}
```

**预期结果**
跟小程序一样正常获取到left值

**系统信息:**
- 发行平台: app
- 操作系统 ios 13.6
- HBuilderX版本 3.2.9
- 设备信息 iPhone11

**补充信息**
无法获取left值

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.