2011-12-29 59 views
4

我正在嘗試使用基於http://www.queness.com/post/923/create-a-simple-infinite-carousel-with-jquery的JQuery實現輪播。 它最好的作品。只有當我左右滑動時,我纔回到我的初始位置。通過調試我發現左邊的集合沒有在我的ul元素中設置。代碼:無法用CSS + jQuery左鍵設置

的Javascript

var container = $('#calendarContainer ul'); 
var moveWidth = container[0].clientWidth/3; 
var currentIndent = container.position().left; 


if (event.type == "swipeleft") { 
    $('#calendarContainer ul').css('left', currentIndent - moveWidth); 
} 
if (event.type == "swiperight") { 
    $('#calendarContainer ul').css('left', currentIndent + moveWidth); 
} 

的Html

<div id="calendarContainer" > 
    <ul> 
     <li id ="calendarDivLeft"> 
      <fieldset id="calendarWeekGridLeft" class="ui-grid-a"></fieldset> 
     </li> 
     <li id ="calendarDiv" > 
      <fieldset id="calendarWeekGrid" class="ui-grid-a"></fieldset> 
     </li> 
     <li id="calendarDivRight">    
      <fieldset id="calendarWeekGridRight" class="ui-grid-a"></fieldset> 
     </li> 
    </ul> 
</div> 

CSS

#calendarContainer ul 
{ 
    width : 300%; 
    list-style: none; 
    padding:0px; 
    left : 0%; 
    position:relative; 
    margin: 0px; 
    padding: 0px; 
} 

#calendarContainer ul li 
{ 
    width: 33.333%; 
    float:left; 
    position:relative; 
    margin: 0px; 
    padding: 0px; 
} 

例如,如果當前左邊是5,我向左移動594px,我期望有-589的左邊。 相反,我得到一個585的左側!如果我向右移動595,左邊變爲605而不是600.

這怎麼可能?

+2

指向'localhost'的鏈接不會幫助我們。 – Dutchie432 2011-12-29 10:43:44

+0

您嘗試更新的元素上是否有填充,邊距或邊框? – Purag 2011-12-29 10:44:00

+1

嘗試'$('#calendarContainer ul').css('left',(currentIndent-moveWidth)+'px');' – Dutchie432 2011-12-29 10:44:29

回答

4

試試這個:

$('#calendarContainer ul').css('left', function(index, oldValue){ 
    var newValue = oldValue - moveWidth; 
    return newValue; 
}); 

css()功能可以採取其參數是該組中的元素,這是引用的屬性的當前值的指數函數。這只是在這個函數中做數學並返回新值的問題。

+0

這將如何產生一個不同的結果比發佈? – Dutchie432 2011-12-29 10:54:14

+0

我試過了(用這個替換我的css行),現在由li完全不動。我可能不明白這個... – Gluip 2011-12-29 11:08:10

0

CSS喜歡有單位進行測量。嘗試指定px

$('#calendarContainer ul').css('left', (currentIndent - moveWidth) + 'px'); 
+1

加入px似乎沒有幫助 – Gluip 2011-12-29 11:01:24