vue制作3*3拼图

自从上次发布了vue制作抓娃娃机经验之后,好多朋友来私信我让我多分享一些小游戏的经验。(看来友友们对这种小游戏还是挺感兴趣哦捂脸笑
好了,回归正题。今天给大家带来一个比较简单的小游戏——拼图。想必大家平时或多或少都玩过拼图游戏吧,我记得小时候经常偷偷用我爸爸的手机玩上面的拼图小游戏,简单的有2×2,3×3甚至有4×4、5×5等等复杂的难关。作为玩者我们是在研究如何过关,而对于我们程序猿来说,我们是不是应该研究研究这些游戏怎么做出来的呢。今天它来啦~~
老样子,先看效果图。
gif1.gif
首先介绍规则:3×3的方格中,有一处是空白,点击空白周围的卡片,使其移动,直至拼成最终效果图(页面下方有成品图,这里录gif的时候没带上)。
第一步,上样式:

      <div class="game">
        <ul class="puzzle-wrap">
          <li
            v-for="(puzzle, index) in puzzles"
            :key="puzzle.id"
            :class="{'puzzle': true, 'puzzle-empty': !puzzle}"
            @click="move(puzzle,index)"
          >
  
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是用Vue制作一个3*3的图片区域的基本步骤: 1. 创建Vue组件。在Vue中,我们可以使用组件来封装我们的UI元素。首先,我们需要创建一个名为“ImageGrid”的Vue组件。可以在Vue实例中注册该组件,如下所示: ``` Vue.component('ImageGrid', { template: ` <div class="image-grid"> <div class="image-row" v-for="row in rows" :key="row"> <div class="image-cell" v-for="image in row" :key="image.id"> <img :src="image.src" :alt="image.alt" /> </div> </div> </div> `, props: { images: { type: Array, required: true } }, computed: { rows() { const rows = [] for (let i = 0; i < this.images.length; i += 3) { rows.push(this.images.slice(i, i + 3)) } return rows } } }) ``` 2. 添加样式。为了让我们的图片区域看起来更漂亮,我们需要为它添加一些CSS样式。可以在Vue组件中添加样式,如下所示: ``` <style> .image-grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; } .image-row { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; } .image-cell { width: 200px; height: 200px; margin: 10px; border-radius: 10px; overflow: hidden; } .image-cell img { width: 100%; height: 100%; object-fit: cover; } </style> ``` 3. 使用组件。现在,我们可以在我们的HTML文件中使用我们的ImageGrid组件了。可以在Vue实例中渲染该组件,如下所示: ``` <div id="app"> <ImageGrid :images="imageList" /> </div> <script> new Vue({ el: '#app', data: { imageList: [ { id: 1, src: 'image1.jpg', alt: 'Image 1' }, { id: 2, src: 'image2.jpg', alt: 'Image 2' }, { id: 3, src: 'image3.jpg', alt: 'Image 3' }, { id: 4, src: 'image4.jpg', alt: 'Image 4' }, { id: 5, src: 'image5.jpg', alt: 'Image 5' }, { id: 6, src: 'image6.jpg', alt: 'Image 6' }, { id: 7, src: 'image7.jpg', alt: 'Image 7' }, { id: 8, src: 'image8.jpg', alt: 'Image 8' }, { id: 9, src: 'image9.jpg', alt: 'Image 9' } ] } }) </script> ``` 这样,我们就制作了一个简单的3*3的图片区域。您可以根据需要修改图片列表中的图片信息,来展示不同的图片。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值