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.
103 lines
2.2 KiB
103 lines
2.2 KiB
<template> |
|
<view class="tui-divider" :style="{ height: height + 'rpx' }"> |
|
<view class="tui-divider-line" :style="{ width: width, background: getBgColor(gradual, gradualColor, dividerColor) }"></view> |
|
<view |
|
class="tui-divider-text" |
|
:style="{ color: color, fontSize: size + 'rpx', lineHeight: size + 'rpx', backgroundColor: backgroundColor, fontWeight: bold ? 'bold' : 'normal' }" |
|
> |
|
<slot></slot> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
export default { |
|
name: 'tuiDivider', |
|
props: { |
|
//divider占据高度 |
|
height: { |
|
type: Number, |
|
default: 100 |
|
}, |
|
//divider宽度,可填写具体长度,如400rpx |
|
width: { |
|
type: String, |
|
default: '100%' |
|
}, |
|
//divider颜色,如果为渐变线条,此属性失效 |
|
dividerColor: { |
|
type: String, |
|
default: '#e5e5e5' |
|
}, |
|
//文字颜色 |
|
color: { |
|
type: String, |
|
default: '#999' |
|
}, |
|
//文字大小 rpx |
|
size: { |
|
type: Number, |
|
default: 24 |
|
}, |
|
bold: { |
|
type: Boolean, |
|
default: false |
|
}, |
|
//背景颜色,和当前页面背景色保持一致 |
|
backgroundColor: { |
|
type: String, |
|
default: '#fafafa' |
|
}, |
|
//是否为渐变线条,为true,divideColor失效 |
|
gradual: { |
|
type: Boolean, |
|
default: false |
|
}, |
|
//渐变色值,to right ,提供两个色值即可,由浅至深 |
|
gradualColor: { |
|
type: Array, |
|
default: function() { |
|
return ['#eee', '#ccc']; |
|
} |
|
} |
|
}, |
|
methods: { |
|
getBgColor: function(gradual, gradualColor, dividerColor) { |
|
let bgColor = dividerColor; |
|
if (gradual) { |
|
bgColor = 'linear-gradient(to right,' + gradualColor[0] + ',' + gradualColor[1] + ',' + gradualColor[1] + ',' + gradualColor[0] + ')'; |
|
} |
|
return bgColor; |
|
} |
|
} |
|
}; |
|
</script> |
|
|
|
<style scoped> |
|
.tui-divider { |
|
width: 100%; |
|
position: relative; |
|
text-align: center; |
|
display: flex; |
|
justify-content: center; |
|
align-items: center; |
|
box-sizing: border-box; |
|
overflow: hidden; |
|
} |
|
|
|
.tui-divider-line { |
|
position: absolute; |
|
height: 1rpx; |
|
top: 50%; |
|
left: 50%; |
|
-webkit-transform: scaleY(0.5) translateX(-50%) translateZ(0); |
|
transform: scaleY(0.5) translateX(-50%) translateZ(0); |
|
} |
|
|
|
.tui-divider-text { |
|
position: relative; |
|
text-align: center; |
|
padding: 0 18rpx; |
|
z-index: 1; |
|
} |
|
</style>
|
|
|