You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							28 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							28 lines
						
					
					
						
							1.2 KiB
						
					
					
				
								// 引入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
							 | 
						|
								                }]
							 | 
						|
								            })
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								}
							 |