首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何通过Div ID更改Div样式

如何通过Div ID更改Div样式
EN

Stack Overflow用户
提问于 2018-08-31 07:41:56
回答 2查看 1.9K关注 0票数 -1

编辑:在下面添加了JS,每个用户的评论。我正在尝试实现的:

在一个单一的博客页面上,我想有两个按钮,“音频”(div视频“音频”)和“视频”(div id=“视频”)。

默认情况下,Video将被启用,并在div中显示视频播放器。如果用户单击Audio,浏览器会将URL的末尾更改为#audio,这会触发div样式更改。这将导致视频播放器被隐藏,而音频播放器变为可见。同样,如果用户再次单击Video,URL的末尾将更改为#video,这将触发div样式更改,并且音频播放器将变为隐藏状态,而视频播放器将变为可见状态。

相当多的研究使我能够切换单个div,但我不知道如何完成上面列出的内容。

当URL以#video结尾时

代码语言:javascript
复制
<div id="video" style="position: static; visibility: visible; overflow: visible; display: block;">MY VIDEO PLAYER</div>

<div id="audio" style="position: absolute; visibility: hidden; overflow: hidden; display: block;">MY AUDIO PLAYER</div>

代码语言:javascript
复制
<div id="video" style="position: absolute; visibility: hidden; overflow: hidden; display: block;">MY VIDEO PLAYER</div>

<div id="audio" style="position: static; visibility: visible; overflow: visible; display: block;">MY AUDIO PLAYER</div>

我甚至不打算为此发布我的javascript。它只在打开和关闭单个div时起作用。值得一提的是,我不是一个程序员,但在我的旅程中,这个网站一直是我的goto。

非常感谢这个优秀的网站所能提供的任何帮助。

Edit:下面是我使用的js,它只允许切换单个div

代码语言:javascript
复制
<script>
function myFunction() {
    var x = document.getElementById("video");
    if (x.style.display === "none") {
        x.style.display = "block";
    } else {
        x.style.display = "none";
    }
</script>
EN

回答 2

Stack Overflow用户

发布于 2018-08-31 08:06:53

这是一个简单的js方法。我在这里做了一些假设(关于你的标记)。

代码语言:javascript
复制
function doMagic() {

    let urlType = window.location.href,
        audio =  document.getElementById('audio'),
        video =  document.getElementById('video');

    if (urlType.split('#')[1] === 'audio'{ //turn it into an array of two, split at the hash
        audio.style.display = 'block';
        video.style.display = 'none';
    }

    if (urlType.split('#')[1] === 'video'{
        audio.style.display = 'none';
        video.style.display = 'block';
    }

}

// assuming you have a button element for this

let videoBtn = document.getElementById('vidBtn'),
    audBtn = document.getElementById('audBtn');

vidBtn.addEventListener('click', function() { doMagic(); }); 
audBtn.addEventListener('click', function() { doMagic(); });

两个事件侦听器调用相同的函数。如果您的按钮具有相同的类,那么您可以将其简化为一个事件侦听器。

代码语言:javascript
复制
// assuming your buttons have the class name "myBtn"
let theBtn = document.getElementByClass('myBtn');

theBtn.addEventListener('click', function() { doMagic(); }); 
票数 0
EN

Stack Overflow用户

发布于 2018-08-31 08:09:17

我找到的答案不是用普通的javascript完成的,而是一个叫做jquery的框架。您可以从他们的websitew3schools了解更多关于jquery的信息。下面是代码。

代码语言:javascript
复制
$("#audio").click(function(){
		$("#audio").toggleClass("active");
		$("#video").toggleClass("active");

	});
	$("#video").click(function(){
		$("#video").toggleClass("active");
		$("#audio").toggleClass("active");
	});
代码语言:javascript
复制
.active{
			background-color: blue;
		}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
</head>
<body>
<div id="video" class = "active" style="position: static; visibility: visible; overflow: visible; display: block;">MY VIDEO PLAYER</div>
<br>
<div id="audio" style="position: static; overflow: hidden; display: block;">MY AUDIO PLAYER</div>

首先,我们检查id为audio的元素何时被点击,然后在视频id和音频id的active和inactive类之间切换。类似地,当我们检查要点击的id video时,我们在video id和audio id之间切换活动类。我希望这能有所帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52106732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档