Jquery animate()不';不要第一次开火,然后它';他在工作 $(文档).ready(函数(){ $.cacheImage(['bilder/in_bearbeitong.png'])) 变量缓存={'':$('.startSite')}; $(窗口).bind('hashchange',函数(e){ var url=$.param.fragment(); 如果(url=(“telefonmeeting.html”)| url=(“vorteile.html”)| url=(“faq.html”)| url=(“flatrate.html”)| url=(“unternehmen.html”)| url=(“impressum.html”)| url=(“kontakt.html”)| url=(“agb.html”)| url=(“facebook.html”)| url=(“facebook.html”)| url=(“news.html”)| url=(“新闻链接”) { $('.inhalt container').fadeOut(); } 如果(缓存[url]) { 缓存[url].fadeIn(); } 如果(url=(“telefonmeeting.html”)| url=(“vorteile.html”)| url=(“faq.html”)| url=(“flatrate.html”)| url=(“unternehmen.html”)| url=(“impressum.html”)| url=(“kontakt.html”)| url=(“agb.html”)| url=(“facebook.html”)| url=(“facebook.html”)| url=(“news.html”)| url=(“新闻链接”) { $('html,body')。动画({scrollTop:0},'fast'); 缓存[url]=$('') .appendTo(“.inhalt容器”) $('.inhalt容器').load(url,函数(数据){ $(this).html(数据); $(this.fadeIn(); }); } else if(url==(“|1”)| url==(“|2”)) { $('.inhalt容器、.link、.sublink')。单击(函数(事件){ //阻止单击事件的默认操作 event.preventDefault(); //获取完整的url-如mysitecom/index.htm#home var full_url=this.href; //将url拆分为#,并在mysitecom/index.htm#home中获取锚定目标名称-home var parts=full_url.split(“#”); var trgt=零件[1]; //获取目标锚点的顶部偏移 var target_offset=$(“#”+trgt).offset(); var target_top=target_offset.top; //通过将主体滚动顶部设置为“锚定顶部”,转到该锚定 $('html,body')。动画({“scrollTop”:target_top},750); }); } }) //由于事件仅在哈希更改时触发,因此我们需要触发 //事件,以处理页面可能已加载的哈希。 $(window.trigger('hashchange'); });

Jquery animate()不';不要第一次开火,然后它';他在工作 $(文档).ready(函数(){ $.cacheImage(['bilder/in_bearbeitong.png'])) 变量缓存={'':$('.startSite')}; $(窗口).bind('hashchange',函数(e){ var url=$.param.fragment(); 如果(url=(“telefonmeeting.html”)| url=(“vorteile.html”)| url=(“faq.html”)| url=(“flatrate.html”)| url=(“unternehmen.html”)| url=(“impressum.html”)| url=(“kontakt.html”)| url=(“agb.html”)| url=(“facebook.html”)| url=(“facebook.html”)| url=(“news.html”)| url=(“新闻链接”) { $('.inhalt container').fadeOut(); } 如果(缓存[url]) { 缓存[url].fadeIn(); } 如果(url=(“telefonmeeting.html”)| url=(“vorteile.html”)| url=(“faq.html”)| url=(“flatrate.html”)| url=(“unternehmen.html”)| url=(“impressum.html”)| url=(“kontakt.html”)| url=(“agb.html”)| url=(“facebook.html”)| url=(“facebook.html”)| url=(“news.html”)| url=(“新闻链接”) { $('html,body')。动画({scrollTop:0},'fast'); 缓存[url]=$('') .appendTo(“.inhalt容器”) $('.inhalt容器').load(url,函数(数据){ $(this).html(数据); $(this.fadeIn(); }); } else if(url==(“|1”)| url==(“|2”)) { $('.inhalt容器、.link、.sublink')。单击(函数(事件){ //阻止单击事件的默认操作 event.preventDefault(); //获取完整的url-如mysitecom/index.htm#home var full_url=this.href; //将url拆分为#,并在mysitecom/index.htm#home中获取锚定目标名称-home var parts=full_url.split(“#”); var trgt=零件[1]; //获取目标锚点的顶部偏移 var target_offset=$(“#”+trgt).offset(); var target_top=target_offset.top; //通过将主体滚动顶部设置为“锚定顶部”,转到该锚定 $('html,body')。动画({“scrollTop”:target_top},750); }); } }) //由于事件仅在哈希更改时触发,因此我们需要触发 //事件,以处理页面可能已加载的哈希。 $(window.trigger('hashchange'); });,jquery,scroll,jquery-animate,anchor,Jquery,Scroll,Jquery Animate,Anchor,已修复,至少使用控制台 问题是,当animate想要按自己的方式使用时,锚定对象还不存在。由于某种原因,它第二次成功了 但是,解决方案如下:使用“live”方法而不是“click”。看起来是这样的: <script type="text/javascript"> $(document).ready(function(){ $.cacheImage(['bilder/in_bearbeitung.png']) var cache = {'': $('.st

已修复,至少使用控制台

问题是,当animate想要按自己的方式使用时,锚定对象还不存在。由于某种原因,它第二次成功了

但是,解决方案如下:使用“live”方法而不是“click”。看起来是这样的:

    <script type="text/javascript">

$(document).ready(function(){

    $.cacheImage(['bilder/in_bearbeitung.png'])

    var cache = {'': $('.startseite')};

  $(window).bind( 'hashchange', function(e) {

    var url = $.param.fragment();

    if (url == ("telefonmeeting.html") || url == ("vorteile.html") || url == ("faq.html") || url == ("flatrate.html") || url == ("unternehmen.html") || url == ("impressum.html") || url == ("kontakt.html") || url == ("agb.html") || url == ("facebook.html") || url == ("news.html") || url == ("links.html")) 

    {
    $( '.inhalt-container' ).fadeOut();

    }

    if ( cache[ url ] ) 

    {

    cache[ url ].fadeIn();      

    }

     if (url == ("telefonmeeting.html") || url == ("vorteile.html") || url == ("faq.html") || url == ("flatrate.html") || url == ("unternehmen.html") || url == ("impressum.html") || url == ("kontakt.html") || url == ("agb.html") || url == ("facebook.html") || url == ("news.html") || url == ("links.html"))

     {

        $('html, body').animate({scrollTop:0}, 'fast');

        cache[ url ] = $( '<div class="inhalt-"/>' )

            .appendTo( '.inhalt-container' )

        $( '.inhalt-container' ).load( url , function( data ){

        $(this).html( data );
        $(this).fadeIn();

        });

    }

    else if (url == ("_1") || url == ("_2"))

    {

        $('.inhalt-container, .link , .sublink').click(function(event){
            //prevent the default action for the click event
            event.preventDefault();

            //get the full url - like mysitecom/index.htm#home
            var full_url = this.href;

            //split the url by # and get the anchor target name - home in mysitecom/index.htm#home
            var parts = full_url.split("#");
            var trgt = parts[1];

            //get the top offset of the target anchor
            var target_offset = $("#"+trgt).offset();
            var target_top = target_offset.top;                          

            //goto that anchor by setting the body scroll top to anchor top
            $('html, body').animate({"scrollTop":target_top}, 750);

        });

    }

   })

  // Since the event is only triggered when the hash changes, we need to trigger
  // the event now, to handle the hash the page may have loaded with.
  $(window).trigger( 'hashchange' );

});

</script>
当我把它粘贴到控制台上时,它对我起了作用,所以我希望它也对你起作用

顺便说一下,还要解决你的褪色问题。使用回调方法进行淡入,如下所示:

$('.link , .sublink').live('click', function(event){
        //prevent the default action for the click event

        event.preventDefault();

        //get the full url - like mysitecom/index.htm#home

        var full_url = this.href;

        //split the url by # and get the anchor target name - home in mysitecom/index.htm#home

        var parts = full_url.split("#");

        var trgt = parts[1];

        //get the top offset of the target anchor

        var target_offset = $("#"+trgt).offset();

        var target_top = target_offset.top;

        //goto that anchor by setting the body scroll top to anchor top

        $('html, body').animate({"scrollTop":target_top}, 750);

    });
这样,只有当淡出停止时,淡出才会开始


玩得开心

您是否调试并查看了target_top的价值?您是否有一个可用的演示,也许是一个JSFIDLE?对我来说很有用:是否有任何其他代码或HTML标记可能会对此产生干扰?你在测试什么浏览器?我在Firefox 4.0上测试网站。你可以在上看到开发页面。第三个链接“Fragen and Antworten”打开了锚。你想让我做一个JSFIDLE吗?
$('.something').fadeOut('slow', function(){ $('.otherthing').fadeIn('slow'); });