// 引入bindingx,此库类似于微信小程序wxs,目的是让js运行在视图层,减少视图层和逻辑层的通信折损  
 | 
const BindingX = uni.requireNativePlugin('bindingx')  
 | 
  
 | 
export default {  
 | 
    methods: {  
 | 
        // 此处不写注释,请自行体会  
 | 
        nvueScrollHandler(e) {  
 | 
            const anchor = this.$refs['u-scroll-list__scroll-view'].ref  
 | 
            const element = this.$refs['u-scroll-list__indicator__line__bar'].ref  
 | 
            const scrollLeft = e.contentOffset.x  
 | 
            const contentSize = e.contentSize.width  
 | 
            const { scrollWidth } = this  
 | 
            const barAllMoveWidth = this.indicatorWidth - this.indicatorBarWidth 
 | 
            // 在安卓和iOS上,需要除的倍数不一样,iOS需要除以2 
 | 
            const actionNum = uni.$u.os() === 'ios' ? 2 : 1  
 | 
            const expression = `(x / ${actionNum}) / ${contentSize - scrollWidth} * ${barAllMoveWidth}`  
 | 
            BindingX.bind({  
 | 
                anchor,  
 | 
                eventType: 'scroll',  
 | 
                props: [{  
 | 
                    element,  
 | 
                    property: 'transform.translateX',  
 | 
                    expression  
 | 
                }]  
 | 
            })  
 | 
        }  
 | 
    }  
 | 
}  
 |