横向衔接滚动
<!-- -->
<template>
<div id=''>
<div class="leaveWordCon">
<div class="leaveWordInner"
:style="'animation: userPanelsCarousel ' +(((scroll.scrollNumber)*scroll.scrollItemWidth)/2*0.02)+'s linear infinite;'">
<div class="leave-word-pannels-row">
<div class="leave-word-pannel"
v-for='(item,index) in cardList1'
:key='index'>
<div class="leave-word-panel-cnt">
<div class='leave-word-panel-cnt-inner'>
{{item.content}}
</div>
</div>
<div class="leave-word-panel-ft">
<a>
</a>
<h3 class='leave-word-panel-name'>
{{item.name}}
</h3>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
components: {},
data () {
return {
scroll: {
scrollNumber: 6,
scrollItemWidth: 356,
},
cardList1: [
{
name: '111111',
content: '22222222'
}, {
name: '111111',
content: '22222222'
}, {
name: '111111',
content: '22222222'
}, {
name: '111111',
content: '22222222'
}, {
name: '111111',
content: '22222222'
}, {
name: '111111',
content: '333'
}
],
};
},
computed: {},
watch: {},
methods: {
writeSty () {
let style = document.createElement('style');
style.setAttribute('type', 'text/css');
document.head.appendChild(style);
let sheet = style.sheet;
let scrollItemWidth = this.scroll.scrollItemWidth
let scrollNumber = this.scroll.scrollNumber
let nu = ((scrollNumber) * scrollItemWidth) / 2
sheet.insertRule(
`@keyframes userPanelsCarousel {
0% {
transform: translate3d(0px, 0, 0);
}
100% {
// transform: translate3d(-12104px, 0, 0);
transform: translate3d(-`+ nu + `px, 0, 0);
// transform: translate3d(-100px, 0, 0);
}
}`, 0
);
},
},
created () {
},
mounted () {
setTimeout(() => {
this.writeSty()
}, 1000)
},
beforeCreate () { },
beforeMount () { },
beforeUpdate () { },
updated () { },
beforeDestroy () { },
destroyed () { },
activated () { },
}
</script>
<style lang='less' scoped>
.leaveWordCon {
box-sizing: border-box;
margin: 0 auto;
max-width: 1920px;
padding: 0 10px;
overflow: hidden;
white-space: nowrap;
position: relative;
.leaveWordInner {
.leave-word-pannels-row {
margin-bottom: 32px;
.leave-word-pannel {
display: inline-block;
vertical-align: top;
margin-right: 70px;
width: 286px;
white-space: normal;
.leave-word-panel-cnt {
margin-bottom: 20px;
padding: 16px 25px;
background-color: #2f0765;
border-radius: 2px 2px 2px 0;
position: relative;
color: rgba(255, 255, 255, 0.8);
.leave-word-panel-cnt-inner {
font-size: 14px;
line-height: 20px;
height: 80px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
overflow: hidden;
white-space: normal;
word-break: break-all;
}
&:before {
content: "";
position: absolute;
left: 0;
top: 100%;
width: 0;
height: 0;
border-style: solid;
border-width: 8px 10px;
border-color: #2f0765 transparent transparent #2f0765;
pointer-events: none;
}
}
.leave-word-panel-ft {
.leave-word-panel-name {
display: inline-block;
vertical-align: middle;
max-width: 8em;
font-size: 16px;
line-height: 22px;
font-weight: 600;
color: #bb9e57;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
}
}
</style>