2013-04-09 46 views
0

jsfiddle這是工作良好,但我實際上只想滾動一個div而不是全身。 這是我嘗試過的jsfiddle,但它給不想要的結果。 將offset()更改爲position(),但結果相同。動畫scrollleft與('HTML,身體')工作良好,但給與('#div')

HTML代碼:

<ul id="banner"> 
     <li> <a href="#1">1</a> 
     </li> 
     <li> <a href="#2">2</a> 
     </li> 
     <li> <a href="#3">3</a> 
     </li> 
     <li> <a href="#4">4</a> 
     </li> 
    </ul> 
    <div id="wrapper"> 
    <div id="container"> 
      <div id="1" class="panel">1</div> 
      <div id="2" class="panel">2</div> 
      <div id="3" class="panel">3</div> 
      <div id="4" class="panel">4</div> 
    </div> 
    </div> 
</body> 

CSS代碼:

body { 

    margin: 0 0 0 0; 
} 
.panel { 
    width: 25%; 
    height:100%; 
    float:left; 
    margin-top: 45px; 

} 
ul#banner { 
    position: fixed; 
    line-height: 45px; 
    margin: 0 30px; 
    padding: 0; 
    z-index: 9; 
} 
ul#banner li { 
    display: inline; 
    z-index: 10; 
} 

#container { 

    width: 400%; 

} 

#wrapper { width: 100%; overflow-x:hidden; } 

jQuery代碼:

$(document).ready(function() { 
    $("#banner a").bind("click", function (event) { 
     event.preventDefault(); 
     var target = $(this).attr("href"); 
     $(" #wrapper").stop().animate({ 
      scrollLeft: $(target).offset().left, 
      scrollTop: $(target).offset().top 
     }, 1000); 
    }); 
}); 

在此先感謝。 :)

回答

1

將近有

您需要不是動畫的容器包裝器,並且包裝需要有position:relative在CSS

#wrapper { width: 100%; overflow-x:hidden; position:relative;} 

而且

$(document).ready(function() { 
    $("#banner a").bind("click", function (event) { 
     event.preventDefault(); 
     var target = $(this).attr("href"); 
     $("#container").stop().animate({ 
      left: $(target).offset().left, 
      top: $(target).offset().top 
     }, 1000); 
    }); 
}); 

jsfiddle

+0

試過但它不工作。 :(那個小提琴爲你工作嗎? – SilverlighT 2013-04-09 07:32:11

+0

抱歉#container div需要'position:relative',更新[fiddle](http://jsfiddle.net/rEzEE/3/) – kevmc 2013-04-09 10:38:13

+0

謝謝你。工作。順便說一句,我找到了另一種方法,只需將'scrollLeft:$(target).offset()。left'更改爲'scrollLeft:$(target).position()。left - $(「#container」)即可。 position()。left'。這是更新的[fiddle](http://jsfiddle.net/KczeK/1/)。 – SilverlighT 2013-04-09 11:04:00