# ScrollBar 1.0.0+

The ScrollBar component is to unify the style of the browser scroll bar and solve the ugly style of the built-in scroll bar.
ScrollBar is to monitor the built-in scroll bar and use Promise to change its position information in the scroll task, which not only solves the real-time problem, but also optimizes the performance ofScrollBar.

# Basic usage

The basic usage is described below. In most cases, you don't need what happens inside the relationship.

  • 00+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 10+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 20+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 30+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 40+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 50+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 60+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 70+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 80+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 90+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 100+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 110+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 120+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 130+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 140+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 150+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 160+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 170+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 180+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 190+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 200+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 210+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 220+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 230+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 240+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 250+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 260+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 270+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 280+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 290+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 300+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 310+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 320+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 330+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 340+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 350+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 360+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 370+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 380+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 390+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 400+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 410+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 420+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 430+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 440+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 450+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 460+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 470+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 480+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 490+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 500+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 510+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 520+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 530+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 540+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 550+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 560+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 570+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 580+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 590+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 600+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 610+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 620+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 630+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 640+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 650+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 660+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 670+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 680+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 690+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 700+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 710+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 720+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 730+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 740+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 750+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 760+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 770+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 780+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 790+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 800+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 810+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 820+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 830+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 840+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 850+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 860+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 870+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 880+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 890+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 900+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 910+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 920+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 930+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 940+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 950+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 960+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 970+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 980+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
  • 990+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0
You only need to place the element that takes over the scroll bar under the ScrollBar component, and give it a width and height. The latter will be left to it. Note: There can only be one root element in ScrollBar
<template>
    <div style="width: 300px;margin: 0 auto">
        <ve-scroll>
            <ul style="height: 300px">
                <li v-for="item in array" :key="item" >
                    {{ item + str }}
                </li>
            </ul>
        </ve-scroll>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                array: Array(100).fill(null).map((o, i) => i),
                str: Array(20).fill(0).join('+')
            }
        },
    }
</script>

# Bar Style

In some scenarios, it may be necessary to always display the scroll bar, or control the size of the scroll bar.

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
If you want to control the size of the scroll bar, you can pass in size, which supports strings or numbers. If you want to display the scroll bar all the time, you can pass in always, which accepts a value of type Boolean
<template>
    <div style="width: 300px;margin: 0 auto">
        <ve-scroll size="8" always>
            <ul style="height: 300px">
                <li v-for="item in array" :key="item" >
                    {{ item }}
                </li>
            </ul>
        </ve-scroll>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                array: Array(100).fill(null).map((o, i) => i)
            }
        },
    }
</script>

# ScrollBar Attributes

Parameter Description Type Optional value Defaults
size Scroll bar size string / number - 6
always Whether to keep displaying scroll bars boolean true / false false