2016-01-20 49 views
2

我試圖獲得它,以便當您點擊旋轉木馬時,頁面將調整爲在中心有旋轉木馬。這個網站(http://studionewwork.com/)顯示了這一點,當你點擊他們的旋轉木馬。我仍然在學習Jquery,所以我還沒有熟練掌握命令。如何調整頁面滾動到中心點擊旋轉木馬?

http://jsfiddle.net/8bJUc/614/

$(document).ready(function() { 
    $("#owl-demo").owlCarousel({ 
     navigation: true, 
     pagination: true, 
     lazyLoad: true 
    }); 
}); 


$('.owl-demo').on('click', function(e) { 
    var el = $(e.target.getAttribute('href')); 
    var elOffset = el.offset().top; 
    var elHeight = el.height(); 
    var windowHeight = $(window).height(); 
    var offset; 

    if (elHeight < windowHeight) { 
    offset = elOffset - ((windowHeight/2) - (elHeight/2)); 
    } 
    else { 
    offset = elOffset; 
    } 
    var speed = 700; 
    $('html, body').animate({scrollTop:offset}, speed); 
}); 
+0

sry對我來說不是很清楚http://owlgraphic.com/owlcarousel/demos/one.html – Osgux

+0

@Osgux我試圖讓每個轉盤調整到視口的中間,當你點擊/與它互動時,就像我發佈的示例網站一樣... – user2252219

回答

2

嘿,我更新了小提琴,使其工作:http://jsfiddle.net/8bJUc/649/

基本上你正在使用$(".owl-demo"),就好像它是一個類,但它是一個ID。然後,onClick函數嘗試獲取點擊元素,但是沒有這樣做。

var el = $(e.target.getAttribute('href'));

此行基本上說:

獲取從點擊的元素中的href屬性和使用jQuery來定位匹配的href屬性的任何元素。我刪除了這個,因爲你沒有在任何地方指定href屬性。

$('.owl-carousel').on('click', function(e) { 

    var el = $(".lazyOwl", this); 
    var elOffset = el.offset().top; 
    var elHeight = el.height(); 
    var windowHeight = $(window).height(); 
    var offset; 

    if (elHeight < windowHeight) { 
    offset = elOffset - ((windowHeight/2) - (elHeight/2)); 
    } 
    else { 
    offset = elOffset; 
    } 
    var speed = 700; 
    $('html, body').animate({scrollTop:offset}, speed); 
}); 

請注意,您發佈的示例輪播無法按預期在我的Macbook Air 11上運行。無論何時點擊它,轉盤都會跳轉。

+0

單擊前一個和下一個按鈕時,會導致傳送帶跳得太高。 http://jsfiddle.net/8bJUc/650/我試着將它添加到類選擇器,但它沒有工作。 – user2252219

+0

在我的堆棧溢出答案中使用javascript。它只在您點擊旋轉木馬項目時才滾動 –

+0

我希望它在按prev或next按鈕時也能做到這一點。 – user2252219