【前端】掌握按钮的显示与隐藏

目录

  • 一、前言
  • 二、实现显示与隐藏的四种方式
    • 1、CSS属性控制
    • 2、JavaScript控制
    • 3、Vue.js响应式控制
  • 三、需求背景
  • 四、代码实现
    • 1、定义变量
    • 2、绑定事件
    • 3、监听选中的学生
    • 4、返回return
  • 五、整体效果
    • 1、没有勾选学生
    • 2、已勾选学生
  • 六、设置按钮显示与隐藏的优势利弊
    • 1、优势
    • 2、劣势
  • 七、CSS属性控制、JavaScript控制、Vue.js响应式控制三者的区别
    • 1、CSS属性控制
    • 2、JavaScript控制
    • 3、Vue.js响应式控制
  • 八、总结

一、前言

在前端开发中,按钮的显示与隐藏效果是常见且重要的交互.有时候我们需要通过一些逻辑来控制按钮的显示或隐藏。下面就来介绍一些实现方式。

二、实现显示与隐藏的四种方式

1、CSS属性控制

通过设置按钮的CSS属性,我们可以轻松地控制按钮的显示与隐藏。具体方式是使用display属性,将按钮的display值设置为none或block。

/* 隐藏按钮 */
.hidden-button {display: none;
}/* 显示按钮 */
.visible-button {display: block;
}

需要注意的是,使用CSS隐藏按钮并不会从HTML文档中移除该元素,只是让其不显示而已。

2、JavaScript控制

除了使用CSS,我们还可以使用JS来控制按钮的显示或隐藏。我们可以在JS中通过 style 属性来更改按钮的样式。

// 隐藏按钮
document.getElementById('hide-button').addEventListener('click', function() {document.getElementById('my-button').style.display = 'none';
});// 显示按钮
document.getElementById('show-button').addEventListener('click', function() {document.getElementById('my-button').style.display = 'block';
});

3、Vue.js响应式控制

在Vue.js中,我们可以通过 v-if 或 v-show 来控制按钮的显示或隐藏。使用Vue.js会更加便捷和灵活,特别是在复杂的网站中。

v-if:如果条件满足,则渲染元素,否则不渲染。
v-show:如果条件满足,则显示元素,否则隐藏

<template><div><button v-if="showButton" @click="toggleButton">点击</button><button v-show="showButton">点击我</button></div>
</template><script>
export default {data() {return {showButton: true};},methods: {toggleButton() {this.showButton = !this.showButton;}}
};
</script>

以上就是几种实现前端按钮的显示与隐藏的方式,CSS、JavaScript和Vue.js,不同的情况下可以选择不同的方式,根据具体的需要来实现。
接下来我们使用方法三Vue.js响应式控制的方式来实现项目中的案例

三、需求背景

现有需求:当用户勾选多选框时,开启和关闭的按钮将会显示出来;当用户取消勾选多选框时,开启和关闭的按钮将会隐藏。

四、代码实现

1、定义变量

//是否显示删除按钮
const buttonShow = ref(true); 

2、绑定事件

使用v-show=“!buttonShow” 进行控制

<el-button v-show="!buttonShow" type="primary" round @click="handlerBatchSet()">开启点读功能</el-button>
<el-button v-show="!buttonShow" type="primary" round @click="handlerBatchCancel()">关闭点读功能</el-button

3、监听选中的学生

/*监听选中的学生*/watch(selectedStudentName, (val) => {val.length > 0 ? (buttonShow.value = false) : (buttonShow.value = true);});

4、返回return

return {buttonShow,}

五、整体效果

1、没有勾选学生

在这里插入图片描述

2、已勾选学生

在这里插入图片描述

六、设置按钮显示与隐藏的优势利弊

1、优势

  1. 界面简洁:通过隐藏不必要的按钮,可以使界面更加简洁,从而避免让用户感到混乱或压力。

  2. 提高易用性:隐藏一些复杂或高级的功能按钮,可以使初学者更容易理解和使用应用程序。

  3. 节省空间:隐藏一些不常用的功能按钮可以节省界面空间,使得更多的信息可以被展示在屏幕上。

2、劣势

  1. 难以找到:如果隐藏的按钮没有被标记或放置在合适的位置,用户可能会很难找到需要的按钮,从而降低使用应用程序的效率。

  2. 隐藏过多:如果隐藏了过多的按钮,用户可能会感到迷失或困惑,从而使得他们不知道如何使用应用程序。

  3. 次要功能不重要:隐藏一些次要的功能按钮可能会导致用户无法找到需要的功能,从而使得应用程序更难使用。

七、CSS属性控制、JavaScript控制、Vue.js响应式控制三者的区别

1、CSS属性控制

使用CSS属性控制按钮的显示与隐藏,可以通过设置display属性为noneblock来实现。该方法简单易用,适用于一些简单的场景,例如在响应式设计中隐藏某些元素。

2、JavaScript控制

使用JavaScript控制按钮的显示与隐藏,通常需要通过事件监听器和DOM操作来实现。该方法灵活性强,可以根据具体的业务逻辑来动态控制按钮的显示与隐藏,例如在表单验证中,根据用户的输入来判断是否需要显示提交按钮。

3、Vue.js响应式控制

使用Vue.js响应式控制按钮的显示与隐藏,可以通过绑定v-ifv-show指令来实现。该方法具有优秀的响应式能力,能够自动监控数据的变化,根据数据变化的情况来控制按钮的显示与隐藏,例如在Vue.js单页面应用中,根据路由的切换来显示不同的按钮。

总体来说,CSS属性控制适用于一些简单的场景,JavaScript控制适用于动态控制按钮的显示与隐藏,Vue.js响应式控制适用于高度响应式的单页面应用。根据具体的业务需求和技术栈选择不同的方法来控制按钮的显示与隐藏。

八、总结

通过CSS属性、JavaScript、前端框架等方法,我们可以实现按钮的显示与隐藏,提升用户界面的交互性和用户体验。根据项目需求和技术栈的不同,选择合适的方法来实现按钮的控制,使用户界面更加灵活和友好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/1732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络面试问题

文章目录 1.DHCP协议:动态分配IP地址2.SNMP协议3.HTTP协议4.DNS协议1.DHCP协议:动态分配IP地址 (1)作用: DHCP服务器动态地将IP池里的IP地址分配给新加入网络的主机。基于4次UDP广播。 (2)DHCP的四种报文: 报文名源IP地址目的IP地址①DHCP发现报文 Discover0.0.0.0255.25…

MySQL慢查询怎么办?需要关注Explain的哪些关键字?

目录 1-引言&#xff1a;什么是慢查询1-1 慢查询定义1-2 为什么排查慢查询 2-核心&#xff1a;慢查询排查2-1 慢查询定位2-2 慢查询解决2-2-1 Explain 排查慢查询2-2-2 Explain 重点关键字 3-总结&#xff1a;慢查询知识点小结 1-引言&#xff1a;什么是慢查询 1-1 慢查询定义…

C# 字面量null对于引用类型变量✓和值类型变量×

编译器让相同的字符串字面量共享堆中的同一内存位置以节约内存。 在C#中&#xff0c;字面量&#xff08;literal&#xff09;是指直接表示固定值的符号&#xff0c;比如数字、字符串或者布尔值。而关键字&#xff08;keyword&#xff09;则是由编程语言定义的具有特殊含义的标…

微信小程序实现腾讯地图

1、// map.js Page({ data: { latitude: 0, // 初始纬度值 longitude: 0, // 初始经度值 markers: [] }, onReady: function (e) { this.getLocation(); // 主动获取用户地理位置信息 }, getLocation: function () { wx.getLocation({ type: gcj02, success: (res) > { thi…

羊大师解读,春季羊奶VS夏季羊奶

羊大师解读&#xff0c;春季羊奶VS夏季羊奶 夏季的羊奶和春季的羊奶在营养成分上并没有本质的区别&#xff0c;都含有丰富的蛋白质、矿物质和维生素等。然而&#xff0c;由于季节和气候的变化&#xff0c;人们饮用羊奶的需求和效果可能会有所不同。 在夏季&#xff0c;天气炎热…

C语言 | Leetcode C语言题解之第35题搜索插入位置

题目&#xff1a; 题解&#xff1a; int searchInsert(int* nums, int numsSize, int target) {int left 0, right numsSize - 1, ans numsSize;while (left < right) {int mid ((right - left) >> 1) left;if (target < nums[mid]) {ans mid;right mid - …

R语言 数据的整理与清洗(第一篇)

《Cookbook for R》 Manipulating Data ~ General Sorting 排序 1、vectors 向量 # 先随机生成一组向量 v <- sample(101:110)# 排序sort() sort(v) #> [1] 101 102 103 104 105 106 107 108 109 110# 反向排序 sort(v, decreasingTRUE) #> [1] 110 109 108 107 1…

Docker容器的使用与操作

1、什么是容器 镜像和容器的关系&#xff0c;就像是面向对象程序设计中的类和实例一样&#xff0c;镜像是静态的定义&#xff0c;容器是镜像运行时的实体&#xff0c;基于同一镜像可以创建若干个不同的容器。 每个容器都有一个软件镜像。可以将容器看作一个将应用程序及其依赖环…

使用vue3+ts+vite从零开始搭建bolg(二)

二、全局变量 2.1element-ui集成 pnpm i element-plus pnpm i element-plus element-plus/icons-vue main.ts配置文件 import ElementPlus from element-plus import element-plus/dist/index.css //ts-ignore import zhCn from element-plus/dist/locale/zh-cn.mjsapp.use…

浅说深度优先搜索(中)——回溯

写在最前 相信在你们不懈的努力之下&#xff0c;基本的递归一定可以写出来了&#xff0c;那么我们现在就来看看递归的升级版——回溯怎么写吧&#xff01; 简说回溯 递归是一种特别重要的解题策略。大部分题目需要找到最优解&#xff0c;而这个求解过程可能存在一定的规律性…

用单片机的矩阵键盘选择显示什么图像

注意行数据不能二进制 #include "reg51.h"typedef unsigned int u16; //对系统默认数据类型进行重定义 typedef unsigned char u8;//定义74HC595控制管脚 sbit SRCLKP3^6; //移位寄存器时钟输入 sbit RCLKP3^5; //存储寄存器时钟输入 sbit SERP3^4; //串行数据输入…

UE5(基础动作)多人游戏制作蹲伏

1.创建输入操作&#xff0c;IA_Crouch 在输入映射中添加 IA_Crouch,在触发器中创建两个索引&#xff0c;已按下已松开来创建蹲伏输入。 蹲伏操作必须要勾选角色-角色移动-crouch勾选可蹲伏否则你的人物无法真正蹲下。 为蹲伏创建函数&#xff0c;创建布尔来判断是否蹲伏。 通过…

CodeGemma初探

什么是 CodeGemma CodeGemma是一系列强大而轻量级的模型的集合&#xff0c;可以执行各种编码任务&#xff0c;包括填充中间代码补全、代码生成、自然语言理解、数学推理和指令跟随。 版本&#xff1a; instruct&#xff1a;7B, 这个版本专门针对自然语言到代码聊天和指令跟随…

day83 AJAX

1什么是AJAX AJAX语法 AJAX Asynchronous JavaScript and XML 异步js和XML 实现页面某一部份更新&#xff0c;无需服务器转发或重定向 1 $.ajax() 语法: $.ajax( { "url" : "url&qu…

数据库主从复制

一、主从复制概述 1、介绍&#xff1a; 主从复制是指将主数据库的 DDL 和 DML 操作写入到二进制日志中&#xff0c;将二进制日志传送到从库服务器&#xff0c;然后在从库上对这些日志重新执行&#xff08;重做&#xff09;&#xff0c;从而使得从库和主库的数据保持同步。 M…

百面算法工程师 | 分类网络总结

欢迎大家订阅我的专栏一起学习共同进步&#xff0c;主要针对25届应届毕业生 祝大家早日拿到offer&#xff01; lets go http://t.csdnimg.cn/dfcH3 目录 4. 经典分类网络与发展 4.1 AlexNet 4.2 VGGNet 4.3 GoogLeNet Inception 4.4 ResNet 4.5 DenseNet 4.6 MobileN…

C#中的浅拷贝(Shallow Copy)和深拷贝(Deep Copy),深拷贝的集中实现方式,浅拷贝深拷贝的案例

C#中的浅拷贝&#xff08;Shallow Copy&#xff09;和深拷贝&#xff08;Deep Copy&#xff09; 拷贝就是创建一个对象&#xff0c;这个对象有着原始对象数据&#xff08;属性和字段&#xff09;的一份精确拷贝&#xff08;只针对Object和Array这样的引用数据类型&#xff09;…

mysql面试题七(集群)

目录 1.mySQL 中有哪些常见日志 错误日志&#xff08;Error Log&#xff09; 二进制日志&#xff08;Binary Log, Binlog&#xff09; 重做日志&#xff08;Redo Log&#xff09; 回滚日志&#xff08;Undo Log&#xff09; 慢查询日志&#xff08;Slow Query Log&#xf…

截断堆积柱状图

本教程原文链接&#xff1a;截断堆积柱状图绘制教程 欢迎大家转载&#xff01;&#xff01;&#xff01;&#xff01; 本期教程 写在前面 堆积柱状图是柱状图的常见类型之一&#xff0c;也是平时使用概率较高的图形之一。我们前期发布了很多个柱状图的绘制教程&#xff0c;若你…