Javascript发光/脉动效果停止点击
Javascript glow/pulsate effect to stop on click
我有下面的Javascript使一个文本链接发光/脉动连续。这个链接显示了同一页面的另一部分,所以我希望它在用户点击后停止。
<script type="text/javascript">
$(document).ready(function() {
function pulsate() {
$(".pulsate").animate({opacity: 0.2}, 1200, 'linear')
.animate({opacity: 1}, 1200, 'linear', pulsate);
}
pulsate();
});
</script>
基本上,我只需要知道我需要在这里添加什么以便在点击后效果停止
如果再次点击相同的链接,页面的显示部分将隐藏-是不是太麻烦了,使效果再次开始后,第二次点击?
我期待着你们这些好人的回答。
Scott。只需绑定到click事件并调用stop()。您还应该确保不透明度已恢复为1:
$(document).ready(function() {
function pulsate() {
$(".pulsate").animate({ opacity: 0.2 }, 1200, 'linear')
.animate({ opacity: 1 }, 1200, 'linear', pulsate)
.click(function() {
//Restore opacity to 1
$(this).animate({ opacity: 1 }, 1200, 'linear');
//Stop all animations
$(this).stop();
});
}
pulsate();
});
解决方案非常简单。让你的pulsate()
函数确保.pulsate
在做它的事情之前没有stop
类。如果它确实有这个类,那么pulsate()
函数将简单地将链接动画回完全不透明度,但不继续脉动。
James的例子同样有效,但我更喜欢我的方法,因为他的方法将click
事件一次又一次地绑定到.pulsate
。这种事情可能会导致问题,这取决于页面的其余部分正在做什么。
实例:http://jsfiddle.net/2f9ZU/
function pulsate() {
var pulser = $(".pulsate");
if(!pulser.hasClass('stop')){
pulser.animate({opacity: 0.2}, 1200, 'linear')
.animate({opacity: 1}, 1200, 'linear', pulsate);
}else{
pulser.animate({opacity:1},1200)
.removeClass('stop');
}
}
$(document).ready(function() {
pulsate();
$('a').click(function(){
$('.pulsate').addClass('stop');
});
});
相关文章:
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 删除对HTML元素的拖动
- 下拉菜单在菜单按钮的边缘闪闪发光
- jQuery UI可排序-多连接列表拖动
- 禁用SVG拖动
- 旋转后拖动对象
- 使用Jquery使图像发光
- JQuery UI可拖动潜水与滚动棒到鼠标
- 在Raphael JS中创建脉动(循环)背景的最简单方法
- JVector地图脉动标记
- 在jQuery UI中,如何防止连续调用时运行数百万次的“脉动”效应
- 延迟 jQuery 脉动与计时器相结合
- jQuery脉动代码与滚动图像jQuery代码冲突
- .png徽标上的脉动发光效果
- 只有脉动文本CSS3
- 圆脉动增量
- Javascript发光/脉动效果停止点击
- 脉动效应不起作用
- Jquery从不同的颜色脉动
- Jquery脉动改变颜色或图像