|
@@ -79,6 +79,7 @@ export default create({
|
|
|
danmuList.value = dmList;
|
|
danmuList.value = dmList;
|
|
|
}
|
|
}
|
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
|
|
|
+ dmBody.value?.style.setProperty('--move-distance', `-${danmuCWidth.value}px`);
|
|
|
run();
|
|
run();
|
|
|
}, 300);
|
|
}, 300);
|
|
|
});
|
|
});
|
|
@@ -116,12 +117,12 @@ export default create({
|
|
|
const run = () => {
|
|
const run = () => {
|
|
|
clearInterval(timer);
|
|
clearInterval(timer);
|
|
|
timer = 0;
|
|
timer = 0;
|
|
|
- timer = setInterval(() => {
|
|
|
|
|
|
|
+ timer = setTimeout(() => {
|
|
|
play();
|
|
play();
|
|
|
run();
|
|
run();
|
|
|
}, props.frequency);
|
|
}, props.frequency);
|
|
|
};
|
|
};
|
|
|
- const distance = ref('0');
|
|
|
|
|
|
|
+ // const distance = ref('0');
|
|
|
const play = () => {
|
|
const play = () => {
|
|
|
if (!props.loop && index.value >= danmuList.value.length) {
|
|
if (!props.loop && index.value >= danmuList.value.length) {
|
|
|
return;
|
|
return;
|
|
@@ -131,12 +132,6 @@ export default create({
|
|
|
|
|
|
|
|
if (slotDefault && typeof danmuList.value[_index] == 'object') {
|
|
if (slotDefault && typeof danmuList.value[_index] == 'object') {
|
|
|
el = danmuList.value[_index];
|
|
el = danmuList.value[_index];
|
|
|
- if (el?.classList?.contains('nut-barrage__item')) {
|
|
|
|
|
- el.classList.remove('nut-barrage__item');
|
|
|
|
|
- }
|
|
|
|
|
- if (el?.classList?.contains('move')) {
|
|
|
|
|
- el.classList.remove('move');
|
|
|
|
|
- }
|
|
|
|
|
el?.classList?.add('nut-barrage__item');
|
|
el?.classList?.add('nut-barrage__item');
|
|
|
} else {
|
|
} else {
|
|
|
el.innerHTML = danmuList.value[_index] as string;
|
|
el.innerHTML = danmuList.value[_index] as string;
|
|
@@ -159,11 +154,16 @@ export default create({
|
|
|
el.style.width = width + 20 + 'px';
|
|
el.style.width = width + 20 + 'px';
|
|
|
}
|
|
}
|
|
|
// el.style.left = "-"+(_index % rows.value) + 'px';
|
|
// el.style.left = "-"+(_index % rows.value) + 'px';
|
|
|
- el.style.setProperty('--move-distance', `-${danmuCWidth.value}px`);
|
|
|
|
|
- distance.value = '-' + (speeds / 1000) * 150 + '%';
|
|
|
|
|
|
|
+ // el.style.setProperty('--move-distance', `-${danmuCWidth.value}px`);
|
|
|
|
|
+ // distance.value = '-' + (speeds / 1000) * 150 + '%';
|
|
|
el.dataset.index = `${_index}`;
|
|
el.dataset.index = `${_index}`;
|
|
|
if (slotDefault) {
|
|
if (slotDefault) {
|
|
|
index.value++;
|
|
index.value++;
|
|
|
|
|
+ el.addEventListener('animationend', () => {
|
|
|
|
|
+ if (el?.classList?.contains('move')) {
|
|
|
|
|
+ el.classList.remove('move');
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
el.addEventListener('animationend', () => {
|
|
el.addEventListener('animationend', () => {
|
|
|
dmContainer.value.removeChild(el);
|
|
dmContainer.value.removeChild(el);
|
|
@@ -172,26 +172,7 @@ export default create({
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
- return { classTime, classes, danmuList, dmBody, dmContainer, add, distance };
|
|
|
|
|
|
|
+ return { classTime, classes, danmuList, dmBody, dmContainer, add };
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
</script>
|
|
</script>
|
|
|
-
|
|
|
|
|
-<style lang="scss">
|
|
|
|
|
-@keyframes moving {
|
|
|
|
|
- from {
|
|
|
|
|
- transform: translateX(100%);
|
|
|
|
|
- }
|
|
|
|
|
- to {
|
|
|
|
|
- transform: translateX(v-bind('distance'));
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-@-webkit-keyframes moving {
|
|
|
|
|
- from {
|
|
|
|
|
- -webkit-transform: translateX(100%);
|
|
|
|
|
- }
|
|
|
|
|
- to {
|
|
|
|
|
- transform: translateX(v-bind('distance'));
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-</style>
|
|
|