2009-02-28 54 views
0

这里一些帮助:)再次如何使用锚链接并同时滚动?

我有这个网站:sharemyplaylists.com使用此插件,滚动顺畅带给用户点击时锚

,这里是代码:

// Smooth anchor link script 
$(document).ready(function() 
{ 
    $('a[href*=#]').click(function() 
    { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
     && location.hostname == this.hostname) 
     { 
     var $target = $(this.hash); 
     $target = $target.length && $target 
      || $('[name=' + this.hash.slice(1) +']'); 

     if ($target.length) 
     { 
      var targetOffset = $target.offset().top; 
      $('html,body') 
       .animate({scrollTop: targetOffset}, 1000); 
      return false; 
     } 
     } 
    }); 
}); 

// open panel on click script 
$(".btn-slide").click(function() 
{ 
    $("#panel").slideToggle("slow"); 
    $(this).toggleClass("active"); return false; 
}); 

无论如何,我还有一个按钮“提交您的播放列表”,打开顶部面板以显示侧边栏中的一个窗体,当我点击它时,它只是打开面板(意思是我没有提到顶部锚也)。这就像2位代码有冲突,只有一个脚本可以工作。关于如何点击侧边栏中的“提交您的播放列表”的任何想法,将用户带到顶部标题定位点,并一次点击打开面板?

干杯, 基思

回答

2

你应该插入滚动到您的功能上按一下按钮,这样的:

// open panel on click script 
$(".btn-slide").click(function()     
{ 
    // here insert scrolling 
    targetOffset = 0; // to scroll 
    $('html,body').animate({scrollTop: targetOffset}, 1000); 
    // toggle 
    $("#panel").slideToggle("slow"); 
    $(this).toggleClass("active"); return false; 
}); 
+0

Genuis! - 这就是为什么我喜欢Stack Overflow,像你这样的人sergei,非常感谢你! – 2009-02-28 07:15:06

0

也许你应该以某种方式停止的事件。 ('.btn-slide')。observe('click',function(e){$('#panel')。slide(); Event.stop() e);})