5

<li>でそれぞれを画面の上部に移動しようとしていますがonClick()、それを使用して動作していますscrollIntoView();が、ヘッダーが固定されているため、ヘッダーの下に小さな部分が表示され<li>ます。<li>ヘッダーのすぐ下までスクロールするにはどうすればよいですか。

HTML

    <header></header>
<div id="wrapper">
   <ul>
       <li id='li1' onClick="moveup(1)"> blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
       </li>
         <li id='li2' onClick='moveUp(2)'> blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
       </li>
       <li id='li3' onClick='moveUp(3)'> blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
       </li>
        <li id='li4' onClick='moveUp(4)'> blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
       </li>
        <li id='li1' onClick='moveUp(1)'> blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
       </li>
       <li id='li5' onClick='moveUp(5)'> blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
           blah blah blah blah blah <br/>
       </li>
       </ul>   
</div> <!--end wrapper-->

CSS

header {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 50px;
    background-color: red;
}

#wrapper {
    width: 1000px;
    background-color: blue;
    height: 100%;
    margin: 0 auto;
}

#col1 {
 background-color: green;
    height: 100%;
    width: 80%;
    margin: 0 auto;
}

ul {                    
    margin: 0 auto;
    width: 500px;
    display: block;
}

li {
     display: block;
    background-color: yellow;
    height: 500px;
    width: 500px;  
    margin-bottom: 5px;
}

ジャバスクリプト

function moveup(x){
   document.getElementById('li'+x).scrollIntoView();
}

http://jsfiddle.net/Jn74M/2/

ありがとう。

4

3 に答える 3

0

代わりにonClick使用onclick。また、関数をmoveupbut callingとして定義しましたmoveUp

jQuery を使用すると、必要な機能を簡単に実現できます。これをチェックしてくださいhttp://jsfiddle.net/alekperos/Jn74M/3/

HTML

<header></header>

  <div id="wrapper">
     <ul>
         <li id='li1'> blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
         </li>
           <li id='li2'> blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
         </li>
         <li id='li3'> blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
         </li>
          <li id='li4'> blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
         </li>
         <li id='li5'> blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
             blah blah blah blah blah <br/>
         </li>
         </ul>   
  </div> <!--end wrapper-->

JS

// on click of list element
$('li').click(function(){
   // scroll the window in the amount of position of current clicked list element
   // minus 
   // the amount that corresponds to the height of the header
   $(window).scrollTop($(this).position().top - $('header').height())
})
于 2013-06-20T17:36:57.477 に答える