mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 04:08:43 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			29 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// 引入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
 | 
						||
                }]
 | 
						||
            })
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 |