javascript - 如何高亮:active element using javascript?

标签 javascript jquery html css

<分区>


想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post .

关闭 6 年前

当你点击 stackoverflow 上的帖子时,它会直接转到特定的线程并跳转到页面的正确位置。我明白了。

但是如何做高亮部分呢?你知道整个 div 变成浅橙色并淡出颜色。如何为特定帖子着色并淡出颜色? 这里附上截图

[1]: https://s3.postimg.org/h69jgu58z/2016_09_12_14_30_07.jpg

最佳答案

这基本上是在 hashChange 事件上执行的 css transition。因此,每当浏览器 url 的 hash 发生变化时,就会触发一个 event。然后你可以执行任何你想执行的操作。

在您的问题中,您想要开始 background-colortransition。在我的示例中,我使用两个 css 类和一个 setTimeout 来执行此操作。

我们需要一个类,.transitionStart,在事件开始时立即将背景更改为橙色。在 0.5 秒超时 之后(您可以随意更改),我将类替换为 .transitionEnd , 让 css 将颜色淡化回白色。

就是这样!

您可以将相同的函数绑定(bind)到 window.onload 以在页面加载时立即突出显示该元素。

function highlightHash() {
    var id = document.location.hash.substr(1);
    var element = document.getElementById(id);

    if( element ) {
        element.className = "transitionStart";
  
        setTimeout(function() {
            element.className = "transitionEnd";
        }, 500);
    }
};

window.onhashchange = highlightHash;

// this execute the highlighting on inital load too
window.onload = highlightHash;
.transitionStart {
  background: orange;
}
.transitionEnd {
  -webkit-transition: background-color 1s;
  -moz-transition: background-color 1s;
  transition: background-color 1s;
  background: white;
}
<a href="#one">highlight #one</a> - <a href="#two">highlight #two</a>
<br /><br />

<div id="one">#one</div>
<div id="two">#two</div>

关于javascript - 如何高亮:active element using javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39446702/

上一篇:html - 行高不影响我的应用程序中的任何内容

下一篇:javascript - CSS/JavaScript。为同一属性赋值

相关文章:

javascript - Cypress E2E 测试未在 gitlab.com 上以 CI 模式运行

javascript - 在 jQuery 中创建元素;创建、包装、追加

html - Bootstrap navbar + purecss 菜单错位

javascript - 每 x 秒递增一次进度条

jquery - 动画菜单淡入并下降到位置

javascript - 更改表行的 css?

css - DIV显示为 block 时重叠

javascript - 如何在 django 1.6.5 中执行 JavaScript

javascript - jquery三元条件运算符中的多个条件

javascript - 3d 透视效果只能在 chrome 中正常工作?