2012年10月31日 星期三

jQuery-scrollTop使頁面滑動的效果練習


今天稍微整理一下之前寫的筆記,關於jQuery滑動的特效,scrollTop,這個很有趣,但我瞬間找不到甚麼範例出來。不過,這只是一個實驗性的練習而已,之後會再回來改進。
剛剛把範例傳到這個網址 :http://winsystem.zymichost.com/scroll/ (空間已過期@20130305)
跑得有點卡卡的因為我圖檔太大><
我會將網路上類似效果的網站補上來,他們都是我學習的對象。
首先先在頁面建立好幾個展示的區塊,像我將範例分成五個div區塊,分別是#chapter1~5。
然後設計一的導覽用的連結列(左側黃色底的部分),位置(position)必須是fixed,不會隨著頁面改變位置。每個區塊的設計沒有特定的需求,重點在於jQuery的效果所帶來的互動感。

整個範例的檔案結構是這樣 :
  • img (影像資料夾,放圖片)
  • index.html (首頁)-->需匯入jQuery
  • scroll.js (寫滑動效果的js)
  • style.css (整個網站的css)


然後我記下了每一個區塊的高度,這個高度你可以利用瀏覽器的檢查元素(google)快速得知,或是自己算,這個高度後面的jquery會用到,計算按下某個連結後,會移動第幾px的位置作為定位。
以下是scroll.js 寫整個網站的js
其中scrollTop:_____px,這邊的px就是累加自上圖各div的高度
$('#to_C?'),利用$('')選取器,當你按下某個ch0?的link,會滑到多少px。
當然我不是用真的link,我只是用span標籤,再給他id,然後用jquery去選取。



檔名:scroll.js (呆呆寫法版)
'0px' 也可以直接寫成0就好,不需單引號跟px
$('#to_c1').click(function(){     
   
    $('html,body').animate({scrollTop: '0px'}, 400);    

});   
      
$('#to_c2').click(function(){        

    $('html,body').animate({scrollTop:'1241px'}, 400);    

});    

$('#to_c3').click(function(){        

    $('html,body').animate({scrollTop:'2291px'}, 500);    

});    

$('#to_c4').click(function(){        

    $('html,body').animate({scrollTop:'3710px'}, 500);    

});

$('#to_c5').click(function(){        

    $('html,body').animate({scrollTop:'4695px'}, 500);  
  
});

以下是我後來又寫了一版新的scroll.js (11/04),
效果同上面,只是是用function

function scrollMe(element,px_val){

    $('#'+element).click(function(){

        $('html,body').animate({scrollTop:px_val}, 500);

    });

    //console.log(element);
    //console.log(px_val);
}

/*--->不用迴圈的方法 效果同下方for
scrollMe("to_c1",0);
scrollMe("to_c2",1241);
scrollMe("to_c3",2291);
scrollMe("to_c4",3710);
scrollMe("to_c5",4695);
*/

for(i=0;i<=4;i++){

    var ary_height = [0,1241,2291,3710,4695];

    scrollMe('to_c'+(i+1),ary_height[i]);
}


2 則留言:

  1. get the position of a jquery element: http://api.jquery.com/offset/ or google "javascript offsetTop"

    回覆刪除

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...