2018-01-29 18:47:26 +11:00
|
|
|
<template>
|
|
|
|
<div class='still-image' :class='{ animated: animated }' >
|
|
|
|
<canvas ref="canvas" v-if="animated"></canvas>
|
2019-02-06 02:17:50 +11:00
|
|
|
<img ref="src" :src="src" :referrerpolicy="referrerpolicy" v-on:load="onLoad" @error="onError"/>
|
2018-01-29 18:47:26 +11:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script src="./still-image.js"></script>
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
@import '../../_variables.scss';
|
|
|
|
.still-image {
|
2018-04-08 04:58:29 +10:00
|
|
|
position: relative;
|
|
|
|
line-height: 0;
|
|
|
|
overflow: hidden;
|
|
|
|
width: 100%;
|
2018-04-09 09:10:04 +10:00
|
|
|
height: 100%;
|
2018-03-12 10:31:33 +11:00
|
|
|
|
2018-04-08 21:46:36 +10:00
|
|
|
&:hover canvas {
|
2018-04-08 04:58:29 +10:00
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
img {
|
|
|
|
width: 100%;
|
2018-04-09 09:10:04 +10:00
|
|
|
height: 100%;
|
2018-09-04 05:49:46 +10:00
|
|
|
object-fit: contain;
|
2018-04-08 04:58:29 +10:00
|
|
|
}
|
2018-03-12 10:31:33 +11:00
|
|
|
|
2018-04-08 04:58:29 +10:00
|
|
|
&.animated {
|
|
|
|
&:hover::before,
|
2018-03-12 10:31:33 +11:00
|
|
|
img {
|
2018-04-08 04:58:29 +10:00
|
|
|
visibility: hidden;
|
2018-03-12 10:31:33 +11:00
|
|
|
}
|
|
|
|
|
2018-04-08 04:58:29 +10:00
|
|
|
&:hover img {
|
|
|
|
visibility: visible
|
2018-01-29 18:47:26 +11:00
|
|
|
}
|
|
|
|
|
2018-04-08 04:58:29 +10:00
|
|
|
&::before {
|
|
|
|
content: 'gif';
|
|
|
|
position: absolute;
|
|
|
|
line-height: 10px;
|
|
|
|
font-size: 10px;
|
|
|
|
top: 5px;
|
|
|
|
left: 5px;
|
|
|
|
background: rgba(127,127,127,.5);
|
|
|
|
color: #FFF;
|
|
|
|
display: block;
|
|
|
|
padding: 2px 4px;
|
2018-04-08 21:45:12 +10:00
|
|
|
border-radius: $fallback--tooltipRadius;
|
|
|
|
border-radius: var(--tooltipRadius, $fallback--tooltipRadius);
|
2018-04-08 04:58:29 +10:00
|
|
|
z-index: 2;
|
2018-01-29 18:47:26 +11:00
|
|
|
}
|
2018-04-08 04:58:29 +10:00
|
|
|
}
|
|
|
|
|
|
|
|
canvas {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
bottom: 0;
|
|
|
|
left: 0;
|
|
|
|
right: 0;
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
2018-08-28 05:40:30 +10:00
|
|
|
object-fit: contain;
|
2018-04-08 04:58:29 +10:00
|
|
|
}
|
2018-01-29 18:47:26 +11:00
|
|
|
}
|
|
|
|
</style>
|