【前端】vue.js实现按钮的动态绑定

vue.js实现按钮的动态绑定

实现效果:

实现代码以及注释:

<!DOCTYPE html>
<html>
<head>
	<title>按钮绑定</title>
	<meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<style type="text/css">
		*{
			margin: 0;
			padding: 0;
		}
		body{
			font: 15px/1.3 ‘Open Sans‘, sans-serif;
			color: #5e5b64;
			text-align: center;
		}
		a, a:visited{
			outline: none;
			color: #3b9dc1;
		}
		a:hover{
			text-decoration: none;
		}
		section, footer, header, aside, nav{
			display: block;
		}

		/* 菜单栏 */
		nav{
			display: inline-block;
			margin: 60px auto 45px;
			background-color: #5597b4;
			box-shadow: 0 1px 1px #ccc;
			border-radius: 2px;
		}
		nav a{
			display: inline-block;
			padding: 18px 30px;
			color: #fff !important;
			font-weight: bold;
			font-size: 16px;
			text-decoration: none !important;
			line-height: 1;
			text-transform: uppercase;
			background-color: transparent;

			-webkit-transition:background-color 0.25s;
			z-index: moz-transition:background-color 0.25s;
			transition:background-color 0.25s;
		}
		nav a:first-child{
			border-radius:2px 0 0 2px;
		}

		nav a:last-child{
			border-radius:0 2px 2px 0;
		}

		nav.home .home,
		nav.projects .projects,
		nav.services .services,
		nav.contact .contact{
			background-color:#e35885;
		}

		p{
			font-size:22px;
			font-weight:bold;
			color:#7d9098;
		}

		p b{
			color:#ffffff;
			display:inline-block;
			padding:5px 10px;
			background-color:#c4d7e0;
			border-radius:2px;
			text-transform:uppercase;
			font-size:18px;
		}
	</style>
</head>
<body>
<div id="main">
	<!--导航栏菜单会得到处于active的变量的值作为一个class  -->
	<!-- 为了防止当我们点击链接时页面发生跳转,我们使用prevent优化 -->
	<nav v-bind:class="active" v-on:click.prevent>

		<!-- 当一个菜单中的链接被点击,我们调用定义在javaScript vue中的makeActive方法 -->

		<a href="#" class="home" v-on:click="makeActive(‘home‘)">Home</a>
		<a href="#" class="projects" v-on:click="makeActive(‘projects‘)">Projects</a>
		<a href="#" class="services" v-on:click="makeActive(‘services‘)">Services</a>
		<a href="#" class="contact" v-on:click="makeActive(‘contact‘)">Contact</a>
	</nav>

	<!-- mustache表达式将被active的值替换,它将发生任何变化它都将会自动更新-->
	<p>YOU SELECTED <b>{{active}}</b></p>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.0.5/vue.min.js"></script>
<script type="text/javascript">
	// 创建一个Vue示例,并且传递一个可选对象
	var demo = new Vue({
		// 一个DOM元素表示我们的view模型
		el: ‘#main‘,
		// 定义属性值,给定初始化值
		data: {
			active: ‘home‘
		},
		// 我们需要使用到的函数
		methods: {
			makeActive: function(item){
				// 当一个model发生变化,view会自动更新
				this.active = item;
			}
		}
	});
</script>
</body>
</html>

  

时间: 2024-10-03 04:38:46

【前端】vue.js实现按钮的动态绑定的相关文章

Web前端-Vue.js必备框架(一)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Vue js</title> </head> <body> <div id="app"> <h1>{{ message }}</h1> <input type="

Vue.js:轻量高效的前端组件化方案(转载)

摘要:Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在GitHub上已经有5000+的star.本文将从各方面对Vue.js做一个深入的介绍. Vue.js 是我在2014年2月开源的一个前端开发库,通过简洁的 API 提供高效的数据绑定和灵活的组件系统.在前端纷繁复杂的生态中,Vue.js有幸受到一定程度的关注,目前在 GitHub上已经有5000+的star.本文将从各方面对Vue.js做一个深入的介绍. 开发

【前端】Vue.js经典开源项目汇总

Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vju?/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过

一款简单而不失强大的前端框架——【Vue.js的详细入门教程①】

↓— Vue.js框架魅力 —↓ 前言   Vue.js 是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.Vue 只关注视图层并且采用自底向上增量开发的设计. Vue.js作为一个后起的前端框架,借鉴了Angular .React等现代前端框架/库的诸多特点,取得了相当不错的成绩.Vue.js 自身不是一个全能框架——它只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.另一方面,在与相关工具和支

前端框架Vue.js——vue-i18n ,vue项目中如何实现国际化

每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 一.前言 趁着10月的最后一天,来写一篇关于前端国际化的实践型博客.国际化应该都不陌生,就是一个网站.应用可以实现语言的切换. 在这就不谈原理,只说说如何实现中英文的切换.做技术的总得先把 demo 做出来嘛. 二.demo 场景需求分析 需求很简单,左上角 ''网易云音乐''就是一个中英文切换的按钮,点击弹出提示框,确认切换语言后,实现英文版本. 切换成英文版本: 三.实现国际化

【前端vue进阶实战】:从零打造一个流程图、拓扑图项目【Nuxt.js + Element + Vuex】 (一)

本系列教程是用Vue.js + Nuxt.js + Element + Vuex + 开源js绘图库,打造一个属于自己的在线绘图软件,最终效果:topology.le5le.com .如果你觉得好,欢迎给文章和开源库点赞,让我们更有动力去做好! 本系列教程源码地址:Github 一.创建项目框架 1. 使用Nuxt.js向导创建项目 yarn create nuxt-app topology-vue // 注意在后面提示中,上移下移,按空格选中 Element 复制代码 选择Element后,在

从Vue.js窥探前端行业

近年来前端开发趋势 1.旧浏览器逐渐淘汰,移动端需求增加: 旧浏览器主要指的是IE6-IE8,它是不支持ES5特性的:IE9+.chrome.sarafi.firefox对ES5是完全支持的,移动端大部分浏览器是基于webkit内核,所以ES5在移动端也是全面支持的,因此vue可以在移动端以及现代浏览器中大显身手. 2.前端交互越来越多,功能越来越复杂: 现在的前端可谓是包罗万象,比如高大上的技术库和框架.酷炫的运营活动页面.H5小游戏,当然前端技术的应用在更多具有商业价值的应用上,比如下图.

前端开发之走进Vue.js

Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式.本文旨在帮助大家认识Vue.js,了解Vue.js的开发流程,并进一步理解如何通过Vue.js来构建一个中大型的前端项目,同时做好相应的部署与优化工作. 文章将以PPT图片附加文字介绍的形式展开,不会涉及知识点的具体代码,点到为止.有兴趣的同学可以查看相应的文档进行了解. Vue.js简介 从上图的介绍中我们不难发现Vue.js是一款轻量级的以数据驱动的前端JS框架,其和jQuery最大的

前端开发工具vue.js开发实践总结

最近有很长时间没有更新博客了,换了公司,全部的心思都放在项目上了.通过这次项目的上线,让我感受最深的是前后端分离后,前端页面的模块化管理,以及前端页面的数据邦定.在接触vue.js之前,我之前端要用到的dom结构,都是通过拼接字符串的方式进行输出的.这种方式最大的痛点是拼接很麻烦,也不是很直观,几乎无法复用,和数据紧密的偶合在一起,维护不方便,太多太多的问题.在同事的推荐下,开始接触vue.js这个开源项目.如果你不知道什么是vue,那么请看这里的介绍http://vuejs.org/. vue