我想要做的是,當用戶點擊的東西:我怎樣才能簡單地在表單上繞一個矩形?
<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