javascript新手村(2)

筆記第二篇

document/window事件
load:載入所有檔案
resize:改變視窗大小引發
scroll
unload:關掉分頁或視窗引發

表單事件
submit
reset
change
focus
blur

鍵盤事件
keypress
keydown
keyup

但是等onload載完資料再開始js太慢
所以用這種方式
$(document).ready(function(){});

也可以縮寫
$(function(){

});


滑鼠移入移出元素
mouseover & mouseout
可以合併成hover

$('selector').hover(function1,function2)

停止事件行為

preventDefault()事件可以阻止瀏覽器事件的預設回應

EX:$('selector').click(function(event){

event.preventDefault();

});

移除事件

$('selector').off(''mouseover)

 

.off()則可以移除所有事件

on()

$('#selector').on('click',selector,'Data',Function)

第一個參數放事件,可以放多個以空白分隔

selector: Dom元素、.aaa、#bbb

Data:傳給函式的資料

Function:事件引發要執行的動作

<script>
       var linkvar = { msg: 'Hello from a link' };
       var pvar = { msg: 'hello from a paragraph' };
        
      $('#aa').on('mouseover',linkvar,function(evt){
           alert(evt.data.msg);
       });
       $('#aa').on('click', pvar, function (evt) {
           alert(evt.data.msg);
       });

   </script>

 

動畫跟特效

1.淡入淡出
$('element').fadeOut('slow') 淡出

$('element').fadeIn(1000) 淡入

fadeToggle()  淡入或淡出

fadeTo() 指定變淡到什麼程度

EX:$('element').fateTo('normal', .75)

裡面也可以放數字(毫秒)

速度的關鍵字對應

fast:200ms

normal:400ms

slow:600ms

2.

show()

hide()

toggle():反轉元素現在的狀況

 

3.滑動

slideDown():從上到下顯示

slideUp():從下到上隱藏

slideToggle():顯示或隱藏

※js不接受破折號的css
font-size是合法的css屬性,但不能當物件實字的key

除非改成fontSize

如果一定要用的話要加上引號'font-size'

 

4.動畫

animate()

第一個參數放帶有css的物件實字

第二個放動畫時間(以毫秒計)

$(function () {
            $('#test').click(function () {
                $('#area').animate({
                    left: '650px',
                    opacity: .5,
                    fontSize:'30px'
                }, 1500);


            });

        });

除了指定也可以用+=或-=的方式

 $('#area').animate({
     fontSize: '+=30px'
                }, 1000);

 

5.漸進

內建只有2個

swing:一開始較快,後來減速

linear:穩定動畫、每步都相同

放在jquery效果的第二個參數

animate的第3個參數

 $('#area').animate({
     fontSize: '+=30px'
                }, 1000,'linear');

或是

$('element').slideUp(1000,'linear')

 

6.如果是要在效果完成後執行動作

比方說圖片淡入完再顯示文字

函式後要再丟一個function進去

或是直接用chain連接函示