Vue.js实现按钮的动态绑定效果及实现代码

发布时间 - 2026-01-11 02:53:40    点击率:

实现效果:

实现代码以及注释:

<!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="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="home" v-on:click="makeActive('home')">Home</a>
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="projects" v-on:click="makeActive('projects')">Projects</a>
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="services" v-on:click="makeActive('services')">Services</a>
    <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" 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>


# vue.js  # 实现按钮动态绑定  # Vue中使用element-ui给按钮绑定一个单击事件实现点击按钮就弹出dialog对话框  # Vue表单绑定的实例代码(单选按钮  # 选择框(单选时  # 多选时  # 用 v-for 渲染的动态选项)  # vue 表单之通过v-model绑定单选按钮radio  # vue中的按钮绑定事件小案例  # 自动更新  # 将会  # 将被  # 作为一个  # 可选  # 当我们  # 跳转  # 它将  # 绑定  # 创建一个  # 为了防止  # 菜单中  # color  # sans  # serif  # hover  # visited  # outline  # radius  # border 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Python自然语言搜索引擎项目教程_倒排索引查询优化案例  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  网易LOFTER官网链接 老福特网页版登录地址  Python数据仓库与ETL构建实战_Airflow调度流程详解  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何批量查询域名的建站时间记录?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  如何在云主机上快速搭建多站点网站?  深入理解Android中的xmlns:tools属性  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  ,怎么在广州志愿者网站注册?  Laravel如何实现用户密码重置功能?(完整流程代码)  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  在线教育网站制作平台,山西立德教育官网?  js实现点击每个li节点,都弹出其文本值及修改  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Android自定义listview布局实现上拉加载下拉刷新功能  如何在搬瓦工VPS快速搭建网站?  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  jQuery validate插件功能与用法详解  如何用低价快速搭建高质量网站?  Laravel如何记录自定义日志?(Log频道配置)  JavaScript如何实现音频处理_Web Audio API如何工作?  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  北京专业网站制作设计师招聘,北京白云观官方网站?  如何在建站之星网店版论坛获取技术支持?  青岛网站建设如何选择本地服务器?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel如何处理异常和错误?(Handler示例)  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  如何制作一个表白网站视频,关于勇敢表白的小标题?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  nginx修改上传文件大小限制的方法  微信h5制作网站有哪些,免费微信H5页面制作工具?  高防服务器租用如何选择配置与防御等级?  Python正则表达式进阶教程_复杂匹配与分组替换解析  Laravel Session怎么存储_Laravel Session驱动配置详解  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】