Inspired by Facebook content placeholder deconstruction
Here is DEMO.
You can check out the article above. The difference is that I use the property of flex instead of absolute in every row.
The boxes can be custom height and custom width, you can choose a fixed height with px, or just use Number to declare its flex-basis or use %, em ...
/* in xxx.vue */
<content-placeholder :rows="placeholderRows"></content-placeholder>
import ContentPlaceholder from 'vue-content-placeholder'
export default {
...
data () {
return {
placeholderRows: [
{
height: '25px',
boxes: [[0, '100px']]
},
{
height: '25px',
boxes:[[0, '100px'], ['10%', 1]]
},
{
height: '25px',
boxes: [[0, '100px']]
},
{
height: '25px',
boxes:[[0, '100px'], ['10%', 2]]
},
{ height: '2rem',
boxes: [[0, 0]]
},
{ height: '1rem',
boxes: [[0, 5]]
},
{ height: '1rem',
boxes: [[0, 0]]
},
{ height: '1rem',
boxes: [[0, '50%']]
},
{ height: '1rem',
boxes: [[0, 0]]
},
{ height: '1rem',
boxes: [[0, '10em']]
}
]
}
},
components: {
ContentPlaceholder
},
...
}| Options | type | discription |
|---|---|---|
| rows | Array | The property of the component |
| row | Object | The element of the rows |
| row.height | String | The height of the row, support px, rem, em, % |
| row.boxes | Array | The transition boxes of the row |
| box | Array | The box in the row.boxes |
| box[0] | String or Number | To declare the width of the left gutter |
| box[1] | String or Number | To declare the width of the box |
| size | String | Control the animation, such as 250% or 900px |
- Fork it
- PR
