我想要做的是当用户点击某些内容时:
<div id="FormContainer">
<form>
...
</form>
</div>
<a href="#" onClick="FlashElement()">Make it flash</a>
它在FormContainer
内的表单周围短暂闪烁一个矩形。有什么方法可以实现这个目标吗?
答案 0 :(得分:1)
一种快速而简单的方法是绘制彩色边框,然后在短时间后将其删除:
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);
答案 1 :(得分:1)
将animate
功能与“color”插件结合使用。示例: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);
});
});
注意:
答案 2 :(得分:1)
使用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);
});
});