💛作者主页:静Yu
🧡简介:CSDN全栈优质创作者、华为云享专家、阿里云社区博客专家,前端知识交流社区创建者
💛社区地址:前端知识交流社区
🧡多种源码领取:各种福利满满
什么是JavaScript?
一开始的网页就是单纯的静态网页,为了使用户能与网页交互,设计出了JavaScript语言。JavaScript语言就是一种可以用来给网页添加交互性的·语言。我们平时听到对JavaScript的描述一般是这是一门脚本语言。脚本语言就是在浏览器执行的一种语言,是一段程序并不是软件。脚本语言可以添加到使用html和css构建的网站中,在网页加载时会自动执行,并实现各种页面的动态效果,在页面交互起到重要的作用。
实现目标
最上方有一个按钮,点击按钮实现图片的显示和隐藏
实现方式
在JavaScript中,控制HTML元素的隐藏和展示(显示)有多种方法。以下是几种常用的方法:
使用style.display属性
你可以通过改变元素的display CSS属性来控制元素的可见性。将display设置为none可以隐藏元素,而将其设置为其他值(如block、inline、flex等)可以显示元素。
// 隐藏元素
element.style.display = 'none';
// 显示元素(假设它原本应该是块级元素)
element.style.display = 'block';
使用style.visibility属性
visibility属性也可以用来控制元素的可见性,但即使设置为hidden,元素仍然会占据页面上的空间。
// 隐藏元素但保留空间
element.style.visibility = 'hidden';
// 显示元素
element.style.visibility = 'visible';
使用classList和CSS类
你可以在CSS中定义一个隐藏或显示的类,然后在JavaScript中使用classList.add()和classList.remove()方法来添加或删除这些类。
CSS:
css
.hidden {
display: none;
}
.visible {
display: block; /* 或其他适当的值 */
}
JavaScript:
// 隐藏元素
element.classList.add('hidden');
element.classList.remove('visible');
// 显示元素
element.classList.add('visible');
element.classList.remove('hidden');
或者,你可以使用classList.toggle()方法来切换类的存在:
// 切换元素的可见性(使用hidden类)
element.classList.toggle('hidden');
使用HTML5的hidden属性
HTML5引入了一个hidden布尔属性,你可以通过JavaScript来设置它。但是请注意,这个属性只是将元素的display设置为none的一个快捷方式,而不是一个独立的CSS属性。
// 隐藏元素
element.setAttribute('hidden', '');
// 显示元素
element.removeAttribute('hidden');
使用opacity属性
虽然这不是真正的“隐藏”元素(因为它仍然占据空间并可以交互),但你可以通过将元素的opacity设置为0来使其变得透明。
// 使元素透明(但仍然可见和可交互)
element.style.opacity = 0;
// 使元素不透明(显示)
element.style.opacity = 1;
使用position和z-index属性
你也可以通过将元素移动到页面上的不可见区域或使用负的z-index值来“隐藏”它,但这通常不是最佳方法,因为它可能会导致布局问题和其他不可预见的副作用。
实现代码
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>显示隐藏效果</title>
</head>
<body>
<button id="btn" onclick="cik()">隐藏图片</button>
<br />
<img src="123.jpg">
<script type="text/javascript">
//先获取按钮
var btn = document.getElementById("btn");
//再获取图片是数组
var img = document.getElementsByTagName("img")[0];
//点击事件的方法
function cik(){
//如果按钮文字等于显示就执行里面的内容,如果不是显示就执行else里面的内容
if(btn.innerHTML==='隐藏图片'){
//图片设为不可见
img.style.display='none';
//同时按钮文字改为显示
btn.innerHTML="显示图片";
}else{
//另一种情况图片显示
img.style.display='block';
//文字按钮改为隐藏
btn.innerHTML="隐藏图片";
}
}
</script>
</body>
</html>
实现效果
实现方法
因为你是点击按钮实现图片的显示和消失,所以你一开始必须先获取按钮,getElementById()
方法可返回对拥有指定 ID 的第一个对象的引用,这里引用的就是按钮的IDbtn
,获取按钮之后开始获取图片,这里我们就可以不用获取ID了,可以直接通过getElementsByTagName
,
getElementsByTagName()
方法可返回带有指定标签名的对象的集合,这里我们直接获取图片标签<img>
.
onclick
事件会在元素被点击时发生,
innerHTML
属性设置或返回表格行的开始和结束标签之间的 HTML。
最后就是设置cik()
函数也是用到我们平时使用的if语句,如果按钮返回的是隐藏图片,就将图片的显示形式display修改为none,反之同理。