我想要做的是,当用户点击的东西:我怎样才能简单地在表单上绕一个矩形?
<div id="FormContainer">
<form>
...
</form>
</div>
<a href="#" onClick="FlashElement()">Make it flash</a>
这短暂闪烁的FormContainer
内周围形成一个矩形。有什么办法可以做到这一点?
我想要做的是,当用户点击的东西:我怎样才能简单地在表单上绕一个矩形?
<div id="FormContainer">
<form>
...
</form>
</div>
<a href="#" onClick="FlashElement()">Make it flash</a>
这短暂闪烁的FormContainer
内周围形成一个矩形。有什么办法可以做到这一点?
一个快速和简单的方法是将绘制彩色边框,然后在短时间之后将其删除:
function FlashElement() {
var $el=$('#FormContainer'), oldBorder=$el.css('border');
$el.css({border:'4px solid yellow'});
setTimeout(function() { $el.css({border:oldBorder}); }, 500);
}
如果你想有一个重复的闪烁效果,那么你可以多次调用“的setTimeout”躲/显示在所希望的时间间隔的边界,例如:
// ...
var newBorder = '4px solid yellow';
$el.css({border:newBorder});
setTimeout(function() { $el.css({border:oldBorder}); }, 100);
setTimeout(function() { $el.css({border:newBorder}); }, 200);
setTimeout(function() { $el.css({border:oldBorder}); }, 300);
setTimeout(function() { $el.css({border:newBorder}); }, 400);
setTimeout(function() { $el.css({border:oldBorder}); }, 500);
使用animate
功能与“颜色”插件组合。例如:http://jsfiddle.net/mostthingsweb/wjDJm/4/
HTML:
<div>my content</div>
<br/>
<button id='button'>Click me</button>
CSS:
div {
padding: 3px;
border: 1px solid transparent;
}
JS:
function makeColors(color){
return {
borderTopColor: color,
borderBottomColor: color,
borderRightColor: color,
borderLeftColor: color
}
}
$("#button").click(function() {
$("div").stop().animate(makeColors("red"), 1000, function(){
$(this).animate(makeColors("transparent"), 500);
});
});
备注:
使用this plugin和下面的代码和here's the demo
$(function() {
$('div').on('click', function() {
$el = $(this);
$el.css({border:'1px solid #FFF'});
$el.animate({
'borderColor': '#F00'
});
setTimeout(function() {
$el.animate({
'borderColor': '#FFF'
});
}, 1000);
});
});
如果您正在使用jQuery只是用动画的方法,从一些色彩动画到其正常的颜色,所以它看起来像闪烁。 – Francisc 2012-03-26 21:26:51
你可以使用js/jquery在元素上放置边框 - vs透明或白色边框?有些插件可以让我知道如果你不得不淡化它的颜色。 – mikevoermans 2012-03-26 21:28:41
@Francisc:jQuery不会将框中的颜色动画化。他还需要jQueryUI才能完成这项工作。只是为了这个简单的任务,这完全是过度的,他会尽最大努力自己写一个有点动画的函数。 – jAndy 2012-03-26 21:31:22