jQuery脉冲问题

时间:2011-06-20 22:13:49

标签: jquery pulse

我正在使用James Padolsey精彩modified versionpulse plug-in。它提供了脉冲功能而无需链接到jQuery-UI,这对我来说非常棒,因为我已经连接了jQuery,如果我不需要那么就不想打扰另一套工具......

我的问题是,是否可能只有焦点边界脉冲,而不是整个元素。在当前实现中,整个元素都会发出脉冲,但是我只希望聚焦边框这样做,如果可能的话,只有当边框可见时(即用户已经选中了链接)。

提前致谢,

Aaron Chauvin

编辑:Here's一个测试页面,以展示我的困境

编辑编辑:好的,我想我应该以不同的方式提出这个问题...我当前的实现引用了带有“link”&类的元素。 “piclink”。是否可以专门引用焦点边界?

编辑编辑编辑:我发现了一些允许在样式表中处理CSS规则的JS functions ...我将尝试将这些与上面修改过的插件结合使用实现我的目标。我将根据我的发现进行更新。

1 个答案:

答案 0 :(得分:1)

虽然我没有看插件,但希望这个小片段对你自己的解决方案有所帮助:

鉴于此css:

.blinky {
    background-color:blue;
    color:white;
    outline-width:5px;
    outline-style:solid;
    outline-color:green;
}

你可以这样写:

// in on ready
$('.blinky').focus(function(){
   $(this).animate({
    'outline-width': '0px'
   }, 500, function() {
      animateBorder(this,5);
   });
});
// elsewhere
function animateBorder(context,px)
{
    $(context).animate({
        'outline-width': px+'px'
       }, 500, function() {
           // make sure its still focused before calling again
           if(this===document.activeElement){
               animateBorder(context,(px>0)?0:5);
           }
       }
    );
}

这是一个简单的jsfiddle example。单击按钮设置焦点,开始动画,然后单击页面上的其他位置,使其失去焦点并停止动画。

基本上,它只是将轮廓边框的大小从给定量设置为0,然后返回。

然后递归调用相同的animate函数,使其保持连续循环。但是,在每次递归调用之前,它会检查以确保该元素仍然是活动元素。

希望从这里你可以调整这个以适合你的需要,因为它没有直接回答你的问题(对不起!)。