单击 link 时显示 div 边框

show div border when link is clicked

我想弄清楚如何在页脚上显示顶部边框,一旦在提到的页脚中单击 link(它在网站上显示模式,而不是 jsfiddle)。当再次单击 link 时,它也应该消失。一旦我应用 display:none; 会触发 js 显示边框,一切都无法正常运行。任何帮助表示赞赏,谢谢。

jsfiddle: https://jsfiddle.net/0gtk60gz/

HTML

<footer class="border">
  <h1 id="linkone">
    <a href="http://www.google.com">
      test
    </a>
  </h1>
    <h1 id="linktwo">
    <a href="http://www.google.com">
      test
    </a>
  </h1>
</footer>

CSS

footer {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    color:black;
    background-color:blue;
    padding:15px;
}

.border {
  border-top:4px solid red;
  /**display:none:**/
}

h1,a {
  color:white;
}

JS

$('h1.linkone')
.on('click', function (event) {
    $('.border').fadeIn(100);

})
.on('click', function (event) {
    $('.border').fadeOut(100);
});


$('h1.linktwo')
.on('click', function (event) {
    $('.border').fadeIn(100);

})
.on('click', function (event) {
    $('.border').fadeOut(100);
});

您已将 class .border 分配给页脚。所以如果你把 display: none 放到页脚,.border 也不会显示...... 要解决此问题,请将 div 包裹在页脚周围,然后将 class .border 添加到 div.

如果您准备像下面的代码那样稍微更改 html,它将帮助您满足您的要求。

HTML

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1  /jquery.min.js"></script>
<footer class="border">
 <h1 id="linkone">
   <a href="http://www.google.com">
  test
 </a>
 </h1>
   <h1 id="linktwo">
   <a href="http://www.google.com">
     test
   </a>
  </h1>
</footer>

CSS

<style type="text/css">
footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
color:black;
background-color:blue;
padding:15px;
}

 .border {
  border-top:4px solid red;
 /**display:none:**/
 }

h1,a {
color:white;
}
</style>

JS

<script>
  $( document ).ready(function() {
  $( "h1" ).click(function() {
  console.log('ok');
  $('footer').toggleClass( 'border');
  });
  });

</script>

你可以看到演示Here

您需要将现有的 JS 代码更改为此代码。

$('h1').click(function(event) {
  $('footer').toggleClass('border');
});

点击link时显示和隐藏边框。

另外不要忘记从 footer 标签中删除 class="border",如果您需要仅在单击 link 时而不是默认情况下显示边框。

您还可以从您评论的 .border 中删除 display: none。因为它会隐藏整个页脚,当然,如果您尝试使用此 CSS 属性 来显示和隐藏 border.

这是工作codepen

UPD如果想在不对现有代码进行大量改动的情况下保持动画效果,需要:

  1. Return class="border"footer
  2. .toggle-border { border-top: 4px solid red;} 添加到 CSS 样式
  3. 更新JS代码到这个

    $('h1').click(function(event) { $('footer').toggleClass('toggle-border', 600, 'linear'); });

查看codepen,我已经更新了。我还向外部 JS 添加了 jquery-ui 脚本。