单击图像以显示数组中的下一个图像-使用模态的vue博客

vhipe2zx  于 2022-12-14  发布在  Vue.js
关注(0)|答案(1)|浏览(481)

我想添加一个功能到我的博客,我可以点击一个图像,它会自动跳转到下一个图像和文本。
我已经做了一个简单的版本,没有博客的结构,这工作.像这样:https://i.gyazo.com/81c5baa0348518fd3327c303dac07dfc.mp4
但是当我尝试修改它到我的博客的(Vue)结构,它不会再工作了,我做错了什么?我甚至尝试了一些代码,我发现在堆栈。
注解掉的代码是我自己的原始代码。
后续问题,如何循环文本?同样的方式?乍一看,我想不出如何循环。
HTML语言

<div id="app">
  <h1>Test pics</h1>
  <div> 
    <!--<img v-bind:src="images[hovered]" v-on:click="changePicture()" width="100px">-->
    <img v-if="image" :key="image" @click="changePicture" class="image" :src="image" alt="image">
  </div>
</div>

维/日

new Vue({
  el: "#app",
  data() {
    return {
    image:null,
    posts: [
      {
        id:1,
        hovered: 0,
        images: ['https://via.placeholder.com/150/0000FF/FFFFFF?text=1','https://via.placeholder.com/150/0000FF/FFFFFF?text=2','https://via.placeholder.com/150/0000FF/FFFFFF?text=3'],
        text: ['text=1','text=2','text=3']
      },
      {
        id:2,
        hovered: 0,
        images: ['https://dummyimage.com/600x400/f00/fff','https://dummyimage.com/600x400/00f/fff','https://dummyimage.com/600x400/fbh/fff'],
        text: ['dummy=1','dummy=2','dummy=3']
      }]
  };
  },
  mounted(){
    this.changePicture();
  },
  methods: {
    changePicture() {
      this.post.hovered = this.post.images[this.post.hovered];
      this.post.hovered = (this.post.hovered + 1) % this.post.images.length;

      /*this.post.hovered = (++this.post.hovered)%(this.post.images.length);
      console.log(this.post.hovered+1);*/
    }
  }
})

编辑:
有效的代码:https://codepen.io/TCGPlaza/collab/QWxJXbp/01272374f7f79eb5efdd4bfcb2bb93f3
我希望工作代码基本上是复制多个单独的职位。假设我做了一个新的职位,我添加了6张图片,然后我所要做的就是点击图片6次,使其回到第一张图片。其他职位可能只有2张图片等...

dwbf0jvd

dwbf0jvd1#

如果我理解正确,请尝试以下代码片段:
首先在挂载的钩子中用包含图像、文本和图像索引号的对象填充图像数组(对于posts.images数组的每个元素)
在方法changePicture中,通过索引,检查nr是否小于图像数组长度,然后检查是否递增,或者是否不从索引0开始。
最后更新图像数组。
第一个

相关问题