首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中使用#href约定

在javascript中使用#href约定
EN

Stack Overflow用户
提问于 2018-02-12 07:15:32
回答 3查看 119关注 0票数 4

代码语言:javascript
复制
document.getElementById('otherButton').addEventListener('click', function () {

document.getElementById("step-4").style.display = 'block'

}); 
代码语言:javascript
复制
<link href="https://www.mapbox.com/base/latest/base.css" rel="stylesheet"/>

<div class='col12 pad4 contain fill-navy dark clip'>
  <div class='center quiet'>Map Canvas</div>
  <div class='pin-right pad2'>
    <a href='#step-4' class='button'>Trigger</a>
  </div>
  <div id='step-4' class='col4 pad2 fill-darken1 pin-left offcanvas-left animate'>
    <a href='#' class='fill-darken2 pad1 icon close'></a>
  </div>
</div>
<div id='otherButton' class='button'>otherButton</div>

我使用这个例子 (如上文所示)作为我的网页上的html和css的指南。在这个示例中,我们看到单击其href=#step4将用id step-4显示div的按钮。

在javascript中,如果我想在单击时打开这个完全相同的div,我将如何做到这一点?对于您的参考,css页面是这里

代码语言:javascript
复制
document.getElementById('otherButton').addEventListener('click', function () {

document.getElementById("step-4").style.display = 'block'

}); 

不起作用。我在这里做错什么了?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-12 07:47:26

该示例使用的CSS技巧是查看:target伪类。

单击锚点时,片段标识符设置为页面的散列,然后step-4元素与此选择器匹配,激活transform: translateX(0)规则,这将使元素可见。

所以您想要的实际上是以编程方式触发:target伪类。

这可以通过操作location.hash属性来实现。

代码语言:javascript
复制
btn.onclick = e => {
  location.hash = "myDiv";
}
代码语言:javascript
复制
div:target{
  color: red;
}
代码语言:javascript
复制
<div id="myDiv">Hello</div>
<button id="btn">click me</button>

或者用你的例子:

代码语言:javascript
复制
document.getElementById('otherButton').addEventListener('click', function () {

location.hash = 'step-4';

}); 
代码语言:javascript
复制
<link href="https://www.mapbox.com/base/latest/base.css" rel="stylesheet"/>

<div class='col12 pad4 contain fill-navy dark clip'>
  <div class='center quiet'>Map Canvas</div>
  <div class='pin-right pad2'>
    <a href='#step-4' class='button'>Trigger</a>
  </div>
  <div id='step-4' class='col4 pad2 fill-darken1 pin-left offcanvas-left animate'>
    <a href='#' class='fill-darken2 pad1 icon close'></a>
  </div>
</div>
<div id='otherButton' class='button'>otherButton</div>

票数 3
EN

Stack Overflow用户

发布于 2018-02-12 07:49:25

问题不是显示为无,也不是可见性设置为隐藏。问题是div有一个名为“off画布-左”的类,它将其从画布上翻译出来(而画布的溢出设置为隐藏)。如果您想要向视图发送div信号,您可以向右翻译它,或者简单地删除类“离开画布-左”。

代码语言:javascript
复制
document.getElementById('otherButton').addEventListener('click', function () {

document.getElementById("step-4").classList.remove('offcanvas-left');

}); 
代码语言:javascript
复制
<link href="https://www.mapbox.com/base/latest/base.css" rel="stylesheet"/>

<div class='col12 pad4 contain fill-navy dark clip'>
  <div class='center quiet'>Map Canvas</div>
  <div class='pin-right pad2'>
    <a href='#step-4' class='button'>Trigger</a>
  </div>
  <div id='step-4' class='col4 pad2 fill-darken1 pin-left offcanvas-left animate'>
    <a href='#' class='fill-darken2 pad1 icon close'></a>
  </div>
</div>
<div id='otherButton' class='button'>otherButton</div>

票数 0
EN

Stack Overflow用户

发布于 2018-02-12 08:00:12

如果要访问html标记,则需要在html标记中具有类似样式的属性。

下面是一个例子:

代码语言:javascript
复制
document.getElementById('otherButton').addEventListener('click', function () {
alert(document.getElementById("step-4").style.display)
document.getElementById("step-4").style.display = 'none';

} , false);
代码语言:javascript
复制
<link href="https://www.mapbox.com/base/latest/base.css" rel="stylesheet"/>

<div class='col12 pad4 contain fill-navy dark clip'>
  <div class='center quiet'>Map Canvas</div>
  <div class='pin-right pad2'>
    <a href='#step-4' class='button'>Trigger</a>
  </div>
  <div id='step-4' class='col4 pad2 fill-darken1 pin-left offcanvas-left animate' style="display:block;">
    <a href='#' class='fill-darken2 pad1 icon close'></a>
  </div>
</div>
<div id='otherButton' class='button'>otherButton</div>

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

https://stackoverflow.com/questions/48741224

复制
相关文章

相似问题

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