使用vue完成图片点击效果

1,首先用ps把图片切割成10×10的效果,

 然后保存成wed所用格式

 完事成images文件夹备用。

2打开HBuilder新建一个完整的项目,将图片和vue.js加入到项目里面

3.代码实现部分:

首先做一个盒子,然后用<style><style>为盒子定义样式,

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			.content {
				width: 850px;
				border: 1px solid pink;
				margin: 0 auto;
				display: flex;
				justify-content: space-around;
				flex-wrap: wrap;
			}

			.item {
				width: 80px;
				height: 45px;
				margin: 2px 0px;
				background-color: pink;
			}

			img {
				width: 80px;
				height: 45px;
			}
		</style>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<div class="content">
				<test-div v-for="i in imgs" :im="i"></test-div>
			</div>
		</div>

4.JS部分。然后js部分创建组件和实例对象,

<script>
			Vue.component("test-div", {
				template: '#temp',
				props: ["im"],
				data: function() {
					return {
						show: true,
						img: "img/xiao_01.gif"
					}
				},
				methods: {
					change: function() {
						this.show = !this.show
					}
				}
			});
			var vm = new Vue({
				el: "#app",
				data: {
					imgs: ["img/xiao_01.gif", "img/xiao_02.gif", "img/xiao_03.gif",
					]

				}
			})
		</script>

5.嵌入模块。

<template id="temp">
			<div class="item" @click="change">
				<img :src="im" v-show="show" />
			</div>
		</template>

6.整体代码以及运行效果

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<style type="text/css">
			.content {
				width: 850px;
				border: 1px solid pink;
				margin: 0 auto;
				display: flex;
				justify-content: space-around;
				flex-wrap: wrap;
			}

			.item {
				width: 80px;
				height: 45px;
				margin: 2px 0px;
				background-color: pink;
			}

			img {
				width: 80px;
				height: 45px;
			}
		</style>
		<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app">
			<div class="content">
				<test-div v-for="i in imgs" :im="i"></test-div>
			</div>
		</div>
		<template id="temp">
			<div class="item" @click="change">
				<img :src="im" v-show="show" />
			</div>
		</template>
		<script>
			Vue.component("test-div", {
				template: '#temp',
				props: ["im"],
				data: function() {
					return {
						show: true,
						img: "img/xiao_01.gif"
					}
				},
				methods: {
					change: function() {
						this.show = !this.show
					}
				}
			});
			var vm = new Vue({
				el: "#app",
				data: {
					imgs: ["img/xiao_01.gif", "img/xiao_02.gif", "img/xiao_03.gif",
						"img/xiao_04.gif", "img/xiao_05.gif", "img/xiao_06.gif",
						"img/xiao_07.gif", "img/xiao_08.gif", "img/xiao_09.gif",
						"img/xiao_10.gif", "img/xiao_11.gif", "img/xiao_12.gif",
						"img/xiao_13.gif", "img/xiao_14.gif", "img/xiao_15.gif",
						"img/xiao_16.gif", "img/xiao_17.gif", "img/xiao_18.gif",
						"img/xiao_19.gif", "img/xiao_20.gif", "img/xiao_21.gif",
						"img/xiao_22.gif", "img/xiao_23.gif", "img/xiao_24.gif",
						"img/xiao_25.gif", "img/xiao_26.gif", "img/xiao_27.gif",
						"img/xiao_28.gif", "img/xiao_29.gif", "img/xiao_30.gif",
						"img/xiao_31.gif", "img/xiao_32.gif", "img/xiao_33.gif",
						"img/xiao_34.gif", "img/xiao_35.gif", "img/xiao_36.gif",
						"img/xiao_37.gif", "img/xiao_38.gif", "img/xiao_39.gif",
						"img/xiao_40.gif", "img/xiao_41.gif", "img/xiao_42.gif",
						"img/xiao_43.gif", "img/xiao_44.gif", "img/xiao_45.gif",
						"img/xiao_46.gif", "img/xiao_47.gif", "img/xiao_48.gif",
						"img/xiao_49.gif", "img/xiao_50.gif", "img/xiao_51.gif",
						"img/xiao_52.gif", "img/xiao_53.gif", "img/xiao_54.gif",
						"img/xiao_55.gif", "img/xiao_56.gif", "img/xiao_57.gif",
						"img/xiao_58.gif", "img/xiao_59.gif", "img/xiao_60.gif",
						"img/xiao_61.gif", "img/xiao_62.gif", "img/xiao_63.gif",
						"img/xiao_64.gif", "img/xiao_65.gif", "img/xiao_66.gif",
						"img/xiao_67.gif", "img/xiao_68.gif", "img/xiao_69.gif",
						"img/xiao_70.gif", "img/xiao_71.gif", "img/xiao_72.gif",
						"img/xiao_73.gif", "img/xiao_74.gif", "img/xiao_75.gif",
						"img/xiao_76.gif", "img/xiao_77.gif", "img/xiao_78.gif",
						"img/xiao_79.gif", "img/xiao_80.gif", "img/xiao_81.gif",
						"img/xiao_82.gif", "img/xiao_83.gif", "img/xiao_84.gif",
						"img/xiao_85.gif", "img/xiao_86.gif", "img/xiao_87.gif",
						"img/xiao_88.gif", "img/xiao_89.gif", "img/xiao_90.gif",
						"img/xiao_91.gif", "img/xiao_92.gif", "img/xiao_93.gif",
						"img/xiao_94.gif", "img/xiao_95.gif", "img/xiao_96.gif",
						"img/xiao_97.gif", "img/xiao_98.gif", "img/xiao_99.gif",
						"img/xiao_100.gif"
					]

				}
			})
		</script>

	</body>
</html>

效果图

 

 

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值