提问人:Alexander Farber 提问时间:12/23/2010 更新时间:12/23/2010 访问量:248
JavaScript:点击的链接应该以一种壮观的方式消失
JavaScript: clicked link should disappear in a spectacular way
问:
我已经编写了一个 PHP/PostgreSQL/Oracle 脚本供我工作内部使用,其中链接显示为浅蓝色的“标签”,也可以通过单击它们附近的“x”来隐藏:
到目前为止,这效果很好,我的同事们已经印象深刻了。
我从 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,因为我还没有学会它。
谢谢你,我希望你的创造力:-) 亚历克斯
答:
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 似乎是一个不错的工具
评论