Heim > Artikel > Web-Frontend > Können Vuejs einen Plattenspieler bauen?
vuejs kann einen Drehteller erstellen, und die Implementierungsmethode ist: 1. Erstellen Sie eine Lotterie-Schaltfläche. 2. Ermitteln Sie die Position, an der der Drehteller anhalten soll. 3. Interagieren Sie mit dem Hintergrund die Animation endet; 5. Eingabeaufforderungen festlegen Durch das Gewinnen von Preisen werden Funktionen freigeschaltet.
Die Betriebsumgebung dieses Artikels: Windows 7-System, Vue Version 2.9.6, Dell G3-Computer.
Können Vuejs Plattenspieler herstellen?
Konfigurierbare kreisförmige Lotteriekarussellkomponente in Vue
canBeRotated()
- ① Ob die aktuelle Anzahl der Ziehungen größer als 0 ist ② Ob es sich gerade dreht (gesperrt)), wenn übergeben, fahren Sie mit dem nächsten Schritt fort, andernfalls mit einer entsprechenden Eingabeaufforderung wird auftauchen. canBeRotated()
里--①当前拥有的抽奖次数是否大于0②现在是否正在转动着(被锁着)),判断通过则进行下一步, 否则弹出相应提示。turntableStyleOption
属性)turntable
)rotateCircle
属性)duringTime
属性)prizeData
),显示在每一格转盘的位置。(计算要根据圆心旋转的角度getRotateAngle()
方法)rotate
),结束动画后告诉父组件已停下。import roundTurntable from './components/roundTurntable';
components: { roundTurntable },
<round-turntable> <template> <p>{{ scope.item.prizeName }}</p> <p> <img alt="Können Vuejs einen Plattenspieler bauen?" > </p> </template> </round-turntable>
data() { return { // 转盘上的奖品数据 prizeData: [ { id: 1, prizeName: '2000元京东券', prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/1.png', }, { id: 2, prizeName: '300元京东券', prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/7.png', }, { id: 3, prizeName: '50个比特币', prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/3.png', }, { id: 4, prizeName: '50元话费券', prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/4.png', }, { id: 5, prizeName: '100元话费券', prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/5.png', }, { id: 6, prizeName: '100个比特币', prizeImg: 'http://demo.sc.chinaz.net/Files/DownLoad/webjs1/201803/jiaoben5789/images/6.png', } ], // 转动的圈数 rotateCircle: 6, // 转动需要持续的时间(s) duringTime: 4.5, // 转盘样式的选项 turntableStyleOption: { // 背景色 prizeBgColors: ['#AE3EFF', '#4D3FFF', '#FC262C', '#3A8BFF', '#EE7602', '#FE339F'], // 转盘的外边框颜色 borderColor: '#199301', }, } }, methods: { // 已经转动完转盘触发的函数 endRotation() { // 提示中奖 alert(`恭喜您获奖啦,您的奖品是:${this.prizeData[this.prizeIndex].prizeName}`); }, },
.turntable { position: absolute; left: calc(50% - 200px); top: calc(50% - 200px); width: 400px; height: 400px; } .turntable-name { /*background: pink;*/ position: absolute; left: 10px; top: 20px; width: calc(100% - 20px); font-size: 26px; text-align: center; color: #fff; } .turntable-img { position: absolute; /*要居中就要50% - 宽度 / 2*/ left: calc(50% - 80px / 2); top: 60px; width: 80px; height: 80px; img { display: inline-block; width: 100%; height: 100%; } }
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
ref | 获取这组件的dom节点,调用子组件的开始转动动画方法要用到this.$refs[refName].rotate(index)
|
string | — |
prizeData | 显示在转盘上的奖品数据 | array | — |
rotateCircle | 转盘要转过的圈数 | number | 6 |
duringTime | 转动需要持续的时间(单位为秒s ) |
number | 4.5 |
turntableStyleOption | 转盘的样式选项(背景色、外边框颜色) | object |
{ prizeBgColors: ['#AE3EFF', '#4D3FFF', '#FC262C', '#3A8BFF', '#EE7602', '#FE339F'], borderColor: '#199301' } Ermitteln Sie die Position, an der der Drehteller anhalten und mit dem Hintergrund interagieren soll. Dies dient jedoch nur zu Demonstrationszwecken und 0 bis 5 werden lokal zufällig ausgewählt. | Nachdem Sie erfolgreich mit dem Hintergrund interagiert haben, um die Stoppposition zu erreichen, verriegeln Sie den Drehteller und reduzieren Sie die Anzahl der Züge.
2. Was muss für die kreisförmige Lotterierad-Komponente getan werden? Sie können die Hintergrundfarbe und die äußere Randfarbe jedes Rads anpassen. (turntableStyleOption property) | Die Größe und Position des Plattentellers. (Fügen Sie beim Aufruf eine Klasse zur Komponente hinzu, die im Code Passen Sie die Anzahl der Umdrehungen an, die der Turntable ausführen muss, wenn er läuft. (rotateCircle -Attribut) | Sie können die Dauer der laufenden Animation anpassen. (Durch den Empfang der von der übergeordneten Komponente übergebenen Preisinformationen (prizeData ) werden diese an der Position jedes Rads angezeigt. (Berechnen Sie den zu drehenden Winkel entsprechend dem Kreismittelpunkt getRotateAngle() -Methode) | Methode, die nach dem Aufruf durch die übergeordnete Komponente mit der Drehung beginnt und an der angegebenen Position stoppt (rotate), nachdem Sie die Animation beendet haben, teilen Sie der übergeordneten Komponente mit, dass sie gestoppt wurde. Der Name und das Bild des Preises können individuell angepasst werden. | 3. Seitenvorschau
5. Attributbeschreibung der RoundTurntable-Komponente | Parameter | |
---|---|---|
Standardwert |
this.$refs[refName].rotate(index)
zu verwenden Auf dem Rad angezeigte Preisdaten 6
duringTime
🎜Die Dauer der Rotation (in Sekundens
) 🎜🎜number🎜🎜4.5
🎜🎜🎜🎜turntableStyleOption🎜🎜Style-Option für der Plattenspieler (Hintergrundfarbe, äußere Randfarbe)🎜🎜Objekt🎜🎜{ PrizeBgColors: ['#AE3EFF', '#4D3FFF', '#FC262C', '#3A8BFF', '#EE7602', '#FE339F '], borderColor ) Name🎜🎜Beschreibung🎜🎜Rückrufparameter🎜🎜🎜🎜🎜🎜endRotation🎜🎜Ereignisrückruf ausgelöst, nachdem die Drehscheibe stoppt🎜🎜—🎜🎜🎜🎜🎜 7. Vollständiger Projektcode🎜🎜https://github. com/LiaPig/ Die von vue-round-turntable🎜🎜 verwendeten Preisbilder und Zeigerbilder stammen von: 🎜🎜http://sc.chinaz.com/jiaobendemo.aspx?downloadid=12018113053246🎜
Das obige ist der detaillierte Inhalt vonKönnen Vuejs einen Plattenspieler bauen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!