2017-02-05 113 views
1

我做了一個頁面的網站,它滾動時點擊導航欄的各個部分上,我已經爲應用腳本,如何在同一選項卡或新選項卡中打開項目的新子頁面?

//平滑滾動到href的值

jQuery(".tabs-btn ul li a, .navbar-nav li a, .navbar-brand").click(function(event){ 
       event.preventDefault(); 
       //calculate destination place 
       var dest=0; 
       if($(this.hash).offset().top > $(document).height()-$(window).height()){ 
         dest=$(document).height()-$(window).height(); 
       }else{ 
         dest=$(this.hash).offset().top; 
       } 
       //go to destination 
       jQuery('html,body').animate({scrollTop:dest}, 1000,'swing'); 
      }); 

和我的導航好比,

<ul class="nav navbar-nav"> 
        <li class="active"><a href="#home">HOME</a></li> 
        <li><a href="#services">services</a></li> 
        <li><a href="#experience">skills</a></li> 
        <li><a href="#team">our team</a></li> 
        <li><a href="#portfolio">About Us</a></li> 
        <li><a href="#contact-us">contact us</a></li> 
        <li><a href="career.html" target="_self">career</a></li> 

        </ul> 

現在,因爲腳本是不是通過點擊「事業」去下一個頁面, 我能做些什麼通過點擊它來打開在同一選項卡或新career.html。

對不起,我的英語。

+0

您是否在career.html鏈接上嘗試了target =「_ blank」? @RohitPatne –

+0

是的,我做了,它沒有工作,根據用戶2896976回答下面它的工作,但通過滾動動畫停止工作 – Rohit

回答

0
jQuery(".tabs-btn ul li a, .navbar-nav li a, .navbar-brand").click(function(event) { 
    event.preventDefault(); 
    var dest = 0; 
    if ($(this.hash).offset().top > $(document).height() - $(window).height()) { 
     dest = $(document).height() - $(window).height(); 
    } else { 
     dest = $(this.hash).offset().top; 
    } 
    jQuery('html,body').animate({ 
     scrollTop: dest 
    }, 1000, 'swing'); 
}); 

您打電話給event.preventDefault();這是導致鏈接操作被忽略。如果您想在#anchor鏈接上平滑滾動,但讓普通鏈接正常工作,則可以檢查href的第一個字符是否爲#

$(event).target.attr("href").startsWith("#")

+0

它正在工作,但jQuery('html,body')。animate({scrollTop:dest} '搖擺');不起作用,點擊後只需轉到不帶滾動效果的目標部分 – Rohit

+0

新代碼的外觀如何? ([post here](https://jsfiddle.net)並保存) – user2896976

+0

我嘗試了2種方式,通過應用條件和這一個,jQuery(「。tabs -btn ul li a,.navbar-nav li a,.navbar 「startsWith。 - 牌」,$(事件).target.attr(」 HREF)( 「#」))點擊(函數(事件){ \t \t \t \t event.preventDefault(); \t \t \t \t//計算目的地 \t \t \t \t變種DEST = 0; \t \t \t \t如果($(this.hash).offset()頂部> $(文件).height() - $(窗口).height(。 )){ \t \t \t \t \t dest = $(document).height() - $(window).height(); \t \t \t \t}否則{ \t \t \t \t \t DEST = $(this.hash).offset()頂部。 \t \t \t \t} \t \t \t \t \t \t \t \t //去目的地 \t \t \t \t jQuery的( 'HTML,身體')動畫({scrollTop的:DEST},1000, '擺動'); \t \t \t});我知道我做錯了。 – Rohit

相關問題