123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <template>
- <a href="#" @click.prevent="open">
- <img :src="img" :alt="title" style="border-radius: 6px;">
- </a>
- </template>
- <script>
- export default {
- props: {
- title: {
- type: String,
- default: "Play Vuex Explained Visually Video"
- },
- img: {
- type: String,
- default: "/vuex-explained-visually.png"
- },
- url: {
- type: String,
- default: "https://player.vimeo.com/video/297515936?autoplay=1"
- }
- },
- methods: {
- open() {
- // dropped v-if/v-else way to fix autoplay issue on Chrome
- // https://github.com/vuejs/vuex/pull/1453#issuecomment-441507095
- const { $el, url } = this;
- if (!$el || !$el.parentNode) {
- return;
- }
- const attrs = {
- width: 640,
- height: 360,
- frameborder: 0,
- src: url,
- webkitallowfullscreen: true,
- mozallowfullscreen: true,
- allowfullscreen: true
- };
- const video = document.createElement('iframe');
- for (const name in attrs) {
- video.setAttribute(name, attrs[name]);
- }
- $el.parentNode.replaceChild(video, $el);
- }
- }
- }
- </script>
|