2013-03-21 89 views
1

我有一个菜单,使用jquery顺利滚动到锚我已安装哪个工程很好。jquery滚动,然后突出显示div与锚

例子:http://jsfiddle.net/23VeR/

$(document).ready(function(){ 
$('a[href^="#"]').bind('click.smoothscroll',function (e) { 
    e.preventDefault(); 

    var target = this.hash, 
    $target = $(target); 

    $('html, body').stop().animate({ 
     'scrollTop': $target.offset().top 
    }, 500, 'swing', function() { 
     window.location.hash = target; 
    }); 
}); 
}); 

希望这会帮助别人寻找一个解决方案。

我一直在寻找一种方式来突出显示(然后慢慢淡出)的div后滚动完成,但无法找到一个简单的解决方案,因为我是一个完整的jquery noob。

+0

正在使用jQuery插件确定与您? – 2013-03-21 12:05:26

+1

@ahren - 问题在代码文本中。 – Niklas 2013-03-21 12:06:25

+1

@monsterboy看看jQuery UI。他们有一个名为“突出”,这是接近你想要的效果:http://docs.jquery.com/UI/Effects/Highlight – 2013-03-21 12:07:39

回答

2

现在只要使用你的设备,我已经设法通过在背景中放置一个临时元素来'闪光' - 然后将其删除。

$('<div />') 
    .css({ 
     'width':'100%', 
     'height':'100%', 
     'position':'absolute', 
     'display':'none', 
     'background':'red', 
     'top':'0', 
     'left':'0' 
    }) 
    .prependTo($target) 
    .fadeIn('fast', function(){ 
     $(this).fadeOut('fast', function(){ 
      $(this).remove(); 
     }); 
    }); 

http://jsfiddle.net/23VeR/1/

遗憾的是其显示盈文的,所以我加了一些<div> S到HTML并设置了一些position CSS属性。因此,检查这一个:

http://jsfiddle.net/23VeR/2/

可能仍然是值得看我的评论链接 - 或有一些其他的插件各地,这将让你的动画的CSS属性background-color

此外,如果你不向后兼容,那么你可以使用CSS3转换。看到这个问题的更多信息:Transition of background-color

+0

谢谢你的伴侣,真的很感谢你的时间,我会和你一起玩,看看我能想出什么。我刚刚注意到我需要首先排序的代码存在另一个问题。就在你认为自己已经解决了另一个问题的时候,并不总是这样:) – monsterboy 2013-03-21 12:49:09

0

我做了一个插件,解决这个确切的问题。

https://github.com/cloudratha/active-scroll-js

它使用自定义数据属性链接到目标ID。点击锚点将平滑滚动到目标元素。它确定哪个锚点最接近当前滚动位置,并使用自定义类强调锚点。