html - 我怎样才能使我的转换保持在事件链接上?

标签 html css

我想在我的菜单中的“li”上添加线条动画,我已经做到了,但是我想让动画保持在事件链接上。

我的代码:

.menu ul li:before {
  content: "";
  display: block;
  width: 0%;
  color: #f7f7f7;
  border-top: 1px solid transparent;
  border-image-slice: 1;
  transition: width .5s ease-in-out 0s;
  margin-bottom: 5px;
}
.menu ul li:focus:before,
.menu ul li:hover:before {
  color: #f7f7f7;
  border-top: 1px solid transparent;
  border-image: linear-gradient(to right, #529ecc , #9CF5A6);
  border-image-slice: 1;
  width: 100%;

编辑:我添加了 .active,但我认为我必须在其中使用 javascript,因为我不想在事件的链接上制作动画 --> 然后我有两个,在事件时加上动画我将鼠标悬停在事件链接上。

有效代码:

.menu ul li.active {
  color: #f7f7f7;
  border-top: 1px solid transparent;
  border-image: linear-gradient(to right, #529ecc , #9CF5A6);
  border-image-slice: 1;
  margin-bottom: 5px;

最佳答案

这是一个答案...这可能会帮助您完成您真正想做的事情。这会将一个类应用于您单击的任何链接,让您可以根据自己的喜好设置样式。它使用 jQuery,但如果需要,它可以用纯 javascript 编写。也可以使用 PHP 或其他一些服务器端脚本语言来完成。

CSS psudo-class :active 将无法与您尝试执行的操作一起使用。

编辑:将 :not(.active) 添加到 css 规则,这样它就不会应用于 active 链接。在我的编辑中更改了代码。

$(document).on("click", ".menu li a", function(e) {
  //This removes the `active` class from all `a`
  $(".menu li a").removeClass("active");

  //This adds the `active` class to the `a` that was clicked on
  $(this).addClass("active");
});
.active {
  background: #ffbf00;
}

.menu ul li a:not(.active):before {
  content: "";
  display: block;
  width: 0%;
  color: #f7f7f7;
  border-top: 1px solid transparent;
  border-image-slice: 1;
  transition: width .5s ease-in-out 0s;
  margin-bottom: 5px;
}
.menu ul li a:not(.active):focus:before,
.menu ul li a:not(.active):hover:before {
  color: #f7f7f7;
  border-top: 1px solid transparent;
  border-image: linear-gradient(to right, #529ecc , #9CF5A6);
  border-image-slice: 1;
  width: 100%;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='menu'>
  <ul>
    <li><a href='#'>Page 1</a></li>
    <li><a href='#'>Page 2</a></li>
    <li><a href='#'>Page 3</a></li>
    <li><a href='#'>Page 4</a></li>
  </ul>
</div>

关于html - 我怎样才能使我的转换保持在事件链接上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43525693/

相关文章:

html - 在 HTML + CSS 中对齐 Div

JavaScript 菜单下拉 onClick 不起作用

javascript - 如何使某些东西以特定速度向光标或组件移动?

html - 无法点击 Firefox 上的 Bootstrap 模式

html - 无法将一行分成两列

javascript - 我在 IOS 中遇到了 UIWebview 对象的奇怪问题

html - JSF 2.0 图形图像 : set background-image by css

javascript - Internet Explorer 复古兼容性

jquery - jQuery分别用类计算div的长度

video - HTML 5 <video> 标签和网络摄像头集成的状态如何?