我有以下功能:

var jump=function(e)
{
   if (e){
       e.preventDefault();
       var target = $(this).attr("href");
   }else{
       var target = location.hash;
   }

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

}

$('html, body').hide();

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

    if (location.hash){
        setTimeout(function(){
            $('html, body').scrollTop(0).show();
            jump();
        }, 0);
    }else{
        $('html, body').show();
    }
});


允许滚动到特定的div元素

<div id="anchor_element">blabla</div>


如果我点击链接:

<a href="#anchor_element">Scroll here</a>


我只希望在html链接中包含特定的rel属性(例如“ myscroll”)时,才能实现上述功能:

<a href="#anchor_element" rel="myscroll">Scroll here</a>


如何修改此模式下的工作功能?
谢谢

最佳答案

尝试Attribute Equals Selector [name="value"]

$('a[href^=#][rel="myscroll"]').bind("click", jump);



Has Attribute Selector [name]

如果希望它与具有rel属性的所有元素一起使用

$('a[href^=#][rel]').bind("click", jump);



更新资料

$('a[href^=#],a[rel="myscroll"]').bind("click", jump);
           //^ works for both a start with # and with rel="myscroll"

关于javascript - jQuery只滚动与rel属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21887451/

10-11 14:40