JavaScript:点击的链接应该以一种壮观的方式消失

JavaScript: clicked link should disappear in a spectacular way

提问人:Alexander Farber 提问时间:12/23/2010 更新时间:12/23/2010 访问量:248

问:

我已经编写了一个 PHP/PostgreSQL/Oracle 脚本供我工作内部使用,其中链接显示为浅蓝色的“标签”,也可以通过单击它们附近的“x”来隐藏:

alt text

到目前为止,这效果很好,我的同事们已经印象深刻了。

我从 Stackoverflow 中窃取的“标签”的 CSS 外观(因为我自己的 CSS/JS 技能非常有限,而且模仿是最真诚的奉承形式):

a.hide {
        color:#3E6D8E;
        background-color: #E0EAF1;
        border-bottom: 1px solid #3E6D8E;
        border-right: 1px solid #7F9FB6;
        padding: 3px 4px 3px 4px;
        margin: 2px 2px 2px 0;
        text-decoration: none;
        font-size: 90%;
        line-height: 2.4;
        white-space: nowrap;
}

a.hide:hover {
        background-color: #e7540c;
        color: #E0EAF1;
        border-bottom: 1px solid #A33B08;
        border-right: 1px solid #A33B08;
        text-decoration: none;
}

a.tag {
        color:#3E6D8E;
        background-color: #E0EAF1;
        border-bottom: 1px solid #3E6D8E;
        border-right: 1px solid #7F9FB6;
        padding: 3px 4px 3px 4px;
        margin: 2px 2px 2px 0;
        text-decoration: none;
        font-size: 90%;
        line-height: 2.4;
        white-space: nowrap;
}

a.tag:hover {
        background-color: #3E6D8E;
        color: #E0EAF1;
        border-bottom: 1px solid #37607D;
        border-right: 1px solid #37607D;
        text-decoration: none;
}

现在,我想通过几行 JavaScript 来增强我的脚本,并以一种有趣的方式使“标签”消失,当用户单击它们附近的“x”时(当然,链接应该仍然有效)。也许让它们飞起来,甚至可能爆炸?有人在这里有想法或可以分享一个好技巧吗?

我不想使用jQuery,因为我还没有学会它。

谢谢你,我希望你的创造力:-) 亚历克斯

javascript css 不显眼-javascript

评论

0赞 Emmett 12/23/2010
这可能会进一步给你的同事留下深刻印象 docs.jquery.com/UI/Effects/Explode
0赞 Alexander Farber 12/23/2010
那个很酷,谢谢!我希望能有更多答案......(因为我仍然为仅为了 1 个效果而包含 jQuery 感到难过)。
2赞 jball 12/23/2010
你的两个陈述是不一致的 - 因为我自己的 CSS/JS 技能非常有限,我宁愿不使用 jQuery,因为我还没有学会它。 - 如果你还在学习JS,jQuery的学习曲线较浅,可以帮助你避免很多常见的JS问题。如果您已经精通或专家 JS 编码员,那么 jQuery 可能对这项任务没有用。如果我是你,我会更喜欢jQuery解决方案。
0赞 Alexander Farber 12/23/2010
而且我想知道我的链接是否仍然适用于jQuery爆炸效果,以及如何将其应用于“标签”,当单击“x”(即不是相同的元素)时?

答:

0赞 Mark Baijens 12/23/2010 #1

使用 jQuery 效果。简单,看起来很酷

评论

0赞 Babiker 12/23/2010
他特别提到他不想使用jQuery。
1赞 capdragon 12/23/2010
但 JQuery 是要走的路。我投票支持与时俱进并使用它!
0赞 Babiker 12/23/2010 #2

我建议不要在你的应用程序中使用华丽的“爆炸性”效果,归根结底,用户正在使用你的应用程序,因为它解决了一个不被展示的问题。如果必须有效果,请使用简单效果。如果您必须使用此类效果,请使用其他技术,例如闪光灯。

评论

0赞 Alexander Farber 12/23/2010
好的,这里很好。淡出效果会很好且不显眼。我“不得”使用任何效果,但我的脚本已经具有“web 2.0”外观,因为我将链接显示为“标签”。所以我认为在这里添加一个小效果是合适的。
0赞 Babiker 12/23/2010
“如果你必须有效果,那就使用简单的效果”,这将包括淡入/淡出等......
2赞 Gabriele Petrioli 12/23/2010 #3

纯粹的 javascript 淡出效果是(目前对于非 IE 浏览器。)

var hides = document.getElementsByClassName('hide');

for (var i = 0 ; i < hides.length; i++)
{
    hides[i].onclick = function(evt){
        var el = this.parentNode;
        el.style.opacity=1;
        var el_timeout = setInterval(function(){
            el.style.opacity -= 0.05;
            console.log(el.style.opacity);
          if (el.style.opacity <= 0.05)
          {
              el.parentNode.removeChild(el);
              clearInterval(el_timeout);
          }
        },20);
    }
}

演示http://jsfiddle.net/gaby/AkA5C/

我已将标签和按钮包装在一个中,以便您可以轻松地定位两者。<span></span>

评论

0赞 Alexander Farber 12/23/2010
很棒的答案,jsfiddle.net 似乎是一个不错的工具