Vue实现点击打破沙袋


实现页面具体内容为点击按钮,沙袋下面的血条会逐渐减少,当血条减少为0的时候,沙袋图片更替为破损的沙袋,此外还有一个复原按钮,当点击复原按钮时,沙袋血条回复满格且破损的沙袋恢复成原本的沙袋。

一、技术要点

1.v-if&v-show函数

v-if="show"
//v-show="show"

此时,被添加此属性的标签会显示(v-show相同)

v-if="!show"
//v-show="!show"

此时,被添加此属性的标签会隐藏(v-show相同)

(1)两个标签的区别

v-if=“!show” 在运行的时候会将被隐藏的标签在代码中直接去除,显示的时候会再次出现。v-show=“!show” 则通过style中的display来控制隐藏和显示。

2.血条减少功能

血条减少需要实现这条关键代码:

style="{width:hlos+"%"}"

(1)由于需要通过CSS控制血条颜色的增加,则需要控制需求的divwidth属性以百分比的形式增减。
(2)在数据渲染部分对hlos进行赋值。
(3)methods中,按钮点击触发konck函数,函数体中有一个基本的if-else语句。
1>判断依旧为血条是否为0,当血条不为0,则hlos减少20,意为width减少20%
2>当血条归零则控制show为true,此时便可以实现切换两个图片。

二、实现代码

注:如果需要了解代码结构,请参考上一篇文章。

<template>
  <div class="app">
    <img src="../src/assets/1.png" v-if="!shows" class="img01" >
    <img src="../src/assets/2.png" v-if="shows" class="img02">
    <div class="div01">
      <div class="div02" :style="{width:hlos + '%'}">
      </div>
    </div>
    <button class="btn01" @click="knock">使劲敲</button>
    <button class="btn02" @click="restart">重新开始</button>
  </div>
</template>
<script>
  export default({
    data(){
      return{
        shows:false,
        hlos:100
      }
    },
    methods:{ 
      knock(){
        if(this.hlos != 0){
          this.hlos -= 20
        }else{
          this.shows = true
        }
      },
      restart(){
        this.hlos=100;
        this.shows = false
      }
    }
  })
</script>
<style scoped>
.img01,.img02{
  margin-left: 700px;
  width:15%;
}
.div01{
  width: 500px;
  height: 30px;
  border: 2px solid black;
  margin-top: 100px;
  margin-left: 600px;
}
.div02{
  width: 500px;
  height: 30px;
  background-color: red;
}
.btn01,.btn02{
  width: 160px;
  height: 30px;

}
</style>

三、运行结果

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值