jQuery事件與動畫

一. 事件綁定

on() 方法

在被選元素及子元素上添加一個或多個事件處理程序。

自 jQuery 版本 1.7 起,on() 方法是 bind()瞻惋、live() 和 delegate() 方法的新的替代品儡首。

.on 直接綁定

     $('.box li').on('click', function() {
                console.log(1)
                var str = $(this).text()
                $('#wrap').text(str)
            })

事件代理綁定


$('.box ul').on('click', 'li', function() {
            var str = $(this).text()
            $('#wrap').text(str)
        })

二. 實(shí)現(xiàn)動態(tài)效果方法

1. show()/ hide()

  • show()如果被選元素已被隱藏坑夯,則顯示這些元素
  • hide()如果被選的元素已被顯示,則隱藏該元素纽帖。
    hide與show同有兩個參數(shù):.hide(speed,callback)/.show(speed,callback)
    speed:規(guī)定元素從可見到隱藏的速度宠漩。默認(rèn)為 "0"举反。
    值:毫秒 (比如 1500)/"slow"/"normal"/"fast"
    在設(shè)置速度的情況下挂签,元素從可見到隱藏的過程中贪染,會逐漸地改變其高度、寬度、外邊距娃磺、內(nèi)邊距和透明度。
    callback: hide 函數(shù)執(zhí)行完之后迈勋,要執(zhí)行的函數(shù)勉耀。除非設(shè)置了 speed 參數(shù),否則不能設(shè)置該參數(shù)粗蔚。
<p>今天也要好好學(xué)習(xí)</p>
    <button class="abc">hide隱藏</button>
    <button class="ccb">show顯示</button>
    <script>
        $(document).ready(function() {
            $('.abc').click(function() {
                $('p').hide(2000)//設(shè)置毫秒為2000,產(chǎn)生動態(tài)效果
            })
            $('.ccb').click(function() {
                $('p').show(2000)
            })
        })
    </script>
Honeycam 2018-12-24 12-58-39.gif

2. slideUp 隱藏 /slideDown 顯示

slideUp()通過高度變化(向上減谐①恕)來動態(tài)地隱藏所有匹配的元素,在隱藏完成后可選地觸發(fā)一個回調(diào)函數(shù)鹏控。這個動畫效果只調(diào)整元素的高度致扯,可以使匹配的元素以“滑動”的方式隱藏起來。
slideDown()通過高度變化(向下增大)來動態(tài)地顯示所有匹配的元素当辐,在顯示完成后可選地觸發(fā)一個回調(diào)函數(shù)抖僵。這個動畫效果只調(diào)整元素的高度,可以使匹配的元素以“滑動”的方式顯示出來缘揪。
speed:規(guī)定元素從可見到隱藏的速度(或者相反)耍群。默認(rèn)為 "normal"。在設(shè)置速度的情況下找筝,元素從可見到隱藏的過程中蹈垢,會逐漸地改變其高度(這樣會創(chuàng)造滑動效果)。
callback: slideUp 函數(shù)執(zhí)行完之后袖裕,要執(zhí)行的函數(shù)耘婚。
通過使用滑動效果,隱藏被選元素陆赋。除非設(shè)置了 speed 參數(shù)沐祷,否則不能設(shè)置該參數(shù)。
注意:slideDown 顯示 適用于通過 jQuery 隱藏的元素攒岛,或在 CSS 中聲明 display:none 的元素(但不適用于 visibility:hidden 的元素)赖临。

<p>今天也要好好學(xué)習(xí)</p>
    <button class="abc">hide隱藏</button>
    <button class="ccb">show顯示</button>
    <button class="ab">slideUp隱藏</button>
    <button class="cc">slideDown顯示</button>
    <script>
        $(document).ready(function() {
            $('.abc').click(function() {
                $('p').hide()
            })
            $('.ccb').click(function() {
                $('p').show()
            })
        })
        $(document).ready(function() {
            $('.ab').click(function() {
                $('p').slideUp()
            })
            $('.cc').click(function() {
                $('p').slideDown()
            })
        })
    </script>

四個元素的區(qū)別:沒有設(shè)置毫秒數(shù)產(chǎn)生的效果

2.gif

3. slideToggle

slideToggle() 方法通過使用滑動效果(高度變化)來切換元素的可見狀態(tài)。
如果被選元素是可見的灾锯,則隱藏這些元素兢榨,如果被選元素是隱藏的,則顯示這些元素。

<p>今天也要好好學(xué)習(xí)</p>
    <button class="abc">hide隱藏</button>
    <button class="ccb">show顯示</button>
    <button class="ab">slideUp隱藏</button>
    <button class="cc">slideDown顯示</button>
    <button class="c">slideToggle狀態(tài)切換</button>
    <script>
        $(document).ready(function() {
            $('.abc').click(function() {
                $('p').hide()
            })
            $('.ccb').click(function() {
                $('p').show()
            })
            $('.ab').click(function() {
                $('p').slideUp()
            })
            $('.cc').click(function() {
                $('p').slideDown()
            })
            $('.c').click(function() {
                $('p').slideToggle()
            })
        })
    </script>
3.gif

4. fadeIn/fadeOut

fadeIn() 方法使用淡入效果來顯示被選元素
fadeOut() 方法使用淡出效果來隱藏被選元素
同意可添加毫秒值吵聪,與slideUp值相似凌那。

<p>今天也要好好學(xué)習(xí)</p>
    <button class="abc">fadeIn顯示</button>
    <button class="ccb">fadeOut隱藏</button>
    <button class="ab">fadeIn顯示2秒</button>
    <button class="cc">fadeOut隱藏2秒</button>
    <script>
        $(document).ready(function() {
            $('.abc').click(function() {
                $('p').fadeIn()
            })
            $('.ccb').click(function() {
                $('p').fadeOut()
            })
            $('.ab').click(function() {
                $('p').fadeIn(2000)
            })
            $('.cc').click(function() {
                $('p').fadeOut(2000)
            })
        })
    </script>
4.gif

三. animate動畫

animate() 方法執(zhí)行 CSS 屬性集的自定義動畫。

該方法通過CSS樣式將元素從一個狀態(tài)改變?yōu)榱硪粋€狀態(tài)吟逝。CSS屬性值是逐漸改變的帽蝶,這樣就可以創(chuàng)建動畫效果。
只有數(shù)字值可創(chuàng)建動畫(比如 "margin:30px")块攒。字符串值無法創(chuàng)建動畫(比如 "background-color:red")励稳。

語法:.animate( properties [, duration ] [, easing ] [, complete ] )

animate語法資料詳情

1. 使元素變大變小

<div></div>
    <button class="abc">animate變大</button>
    <button class="ccb">animate變小</button>
    <script>
        $(document).ready(function() {
            $('.abc').click(function() {
                $('div').animate({
                    width: '400px',
                    height: '300px'
                })
            })
            $('.ccb').click(function() {
                $('div').animate({
                    width: '100px',
                    height: '50px'
                })
            })

        })
    </script>
5.gif

2. 移動元素

<style>
        .fa {
            position: relative;
        }
        
        .box {
            position: absolute;
            width: 40px;
            height: 40px;
            background: red;
            margin-bottom: 10px;
        }
    </style>
body>
    <button class="left">左移動</button>
    <button class="left_1">左移動+50</button>
    <button class="left_2">左移動-50</button>
    <div class="fa">
        <div class="box"> </div>
    </div>
    <script>
        $('.left').on('click', function() {
            $('.box').animate({
                left: '40px'
            })
        })
        $('.left_1').on('click', function() {
            $('.box').animate({
                left: '+=40px'
            }, 2000)//2秒
        })
        $('.left_2').on('click', function() {
            $('.box').animate({
                left: '-=40'
            }, 1000)//1秒
        })
    </script>

我設(shè)置了三個不同狀態(tài),左移動只能移動一次囱井,+=可以往左移動疊加 -=往右移動驹尼,并且每個都設(shè)置了不同的移動速度。

11.gif

注意:移動狀態(tài)實(shí)現(xiàn)需要定位庞呕,如果沒有定位將無法實(shí)現(xiàn)新翎。

例如:

  .box {
            
            width: 40px;
            height: 40px;
            background: red;
            margin-bottom: 10px;
        }
    </style>
</head>

<body>
    <button class="left">左移動</button>
    <button class="left_1">左移動+50</button>
    <button class="left_2">左移動-50</button>
    <div class="fa">
        <div class="box"> </div>
    </div>
    <script>
        $('.left').on('click', function() {
            $('.box').animate({
                left: '40px'
            })
        })
        $('.left_1').on('click', function() {
            $('.box').animate({
                left: '+=40px'
            }, 2000)
        })
        $('.left_2').on('click', function() {
            $('.box').animate({
                left: '-=40'
            }, 1000)
        })
    </script>

我沒有設(shè)置絕對定位和相對定位。


22.gif

3. 設(shè)置一個動畫效果

<button class="left">動畫效果</button>

    <div class="fa">
        <div class="box"> </div>
    </div>
    <script>
        $('.left').on('click', function() {
            $('.box').animate({
                left: '100px'
            }, 1000)
            $('.box').animate({
                left: '100px',
                top: '100px'
            }, 1000)
            $('.box').animate({
                left: '0',
                top: '100px'
            }, 1000)
            $('.box').animate({
                left: '0',
                top: '0'
            }, 1000)
        })
    </script>
33.gif

4. stop()方法

有三種狀態(tài)住练,詳情看案例

<button class="left">動畫效果</button>
    <button class="left_1">stop()</button>
    <button class="left_2">.stop(true, false)</button>
    <button class="left_3">stop(true, true)</button>
    <div class="fa">
        <div class="box"> </div>
    </div>
    <script>
        $('.left').on('click', function() {
            $('.box').animate({
                left: '100px'
            }, 1000)
            $('.box').animate({
                left: '100px',
                top: '100px'
            }, 1000)
            $('.box').animate({
                left: '0',
                top: '100px'
            }, 1000)
            $('.box').animate({
                left: '0',
                top: '0'
            }, 1000)
        })
        $('.left_1').on('click', function() {
            //停止當(dāng)前正在運(yùn)行的動畫地啰,后面繼續(xù)運(yùn)行
            $('.box').stop()
        })
        $('.left_2').on('click', function() {
            //停止當(dāng)前動畫,后面的不再運(yùn)行
            $('.box').stop(true, false)
        })
        $('.left_3').on('click', function() {
            //停止當(dāng)前動畫并把當(dāng)前動畫完成澎羞,后面不再運(yùn)行
            $('.box').stop(true, true)
        })
    </script>
  • stop()沒有參數(shù)髓绽,默認(rèn)參數(shù)為stop(false,false)。
    會停止當(dāng)前正在運(yùn)行的動畫妆绞,后面繼續(xù)運(yùn)行
    解釋:按我設(shè)置的動畫為例:動畫分為四塊運(yùn)行顺呕,如果點(diǎn)擊stop()正好運(yùn)行的那塊動畫會停止,后面其他塊會繼續(xù)運(yùn)行括饶。
    44.gif
* stop(true, false)

會直接停止動畫株茶,后面的不再運(yùn)行。


46.gif
* stop(true, true)

點(diǎn)擊后會讓動畫停止图焰,后面不再運(yùn)行启盛,但是會讓所停止的那塊動畫運(yùn)行完后停止。

47.gif

5. finish

<button class="left">動畫效果</button>
    <button class="left_1">stop()</button>
    <button class="left_2">.stop(true, false)</button>
    <button class="left_3">stop(true, true)</button>
    <button class="left_4">finish</button>
    <div class="fa">
        <div class="box"> </div>
    </div>
  <script>
  $('.left_4').on('click', function() {
            //停止當(dāng)前動畫并把當(dāng)前動畫完成技羔,后面不再運(yùn)行僵闯,但會展示動畫最終效果
            $('.box').finish()
        })
    </script>

點(diǎn)擊后立即停止當(dāng)前動畫,后面不再運(yùn)行藤滥,但會展示動畫最終效果

55.gif

四. ajax

$ajax資料

1. $.ajax

ajax() 方法通過 HTTP 請求加載遠(yuǎn)程數(shù)據(jù)鳖粟。
語法: jQuery.ajax([settings])
最簡單的情況下,$.ajax() 可以不帶任何參數(shù)直接使用拙绊。

注意:所有的選項都可以通過 $.ajaxSetup() 函數(shù)來全局設(shè)置向图。

$.ajax({
  method: "POST",
  url: "some.php",
  data: { name: "John", location: "Boston" }
}).done(function( msg ) {
  alert( "Data Saved: " + msg );
});
2. $.get/post

這兩個方法專門用來處理get和post請求

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

dataType:從服務(wù)器返回的預(yù)期的數(shù)據(jù)類型泳秀。默認(rèn):智能猜測(xml, json, script, 或 html)

3. $.getJSON

使用一個HTTP GET請求從服務(wù)器加載JSON編碼的數(shù)據(jù),這是一個Ajax函數(shù)的縮寫榄攀,這相當(dāng)于:

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});







以下整理篇:

  1. jQuery選擇器
  2. jQueryDom與函數(shù)






    資料來源于網(wǎng)絡(luò)和W3C嗜傅,文章如果有錯誤的地方希望可以指出,謝謝檩赢。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吕嘀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子漠畜,更是在濱河造成了極大的恐慌币他,老刑警劉巖坞靶,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憔狞,死亡現(xiàn)場離奇詭異,居然都是意外死亡彰阴,警方通過查閱死者的電腦和手機(jī)瘾敢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尿这,“玉大人簇抵,你說我怎么就攤上這事∩渲冢” “怎么了碟摆?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長叨橱。 經(jīng)常有香客問我典蜕,道長,這世上最難降的妖魔是什么罗洗? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任愉舔,我火速辦了婚禮,結(jié)果婚禮上伙菜,老公的妹妹穿的比我還像新娘轩缤。我一直安慰自己,他們只是感情好贩绕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布火的。 她就那樣靜靜地躺著,像睡著了一般淑倾。 火紅的嫁衣襯著肌膚如雪馏鹤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天踊淳,我揣著相機(jī)與錄音假瞬,去河邊找鬼陕靠。 笑死,一個胖子當(dāng)著我的面吹牛脱茉,可吹牛的內(nèi)容都是我干的剪芥。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼琴许,長吁一口氣:“原來是場噩夢啊……” “哼税肪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起榜田,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤益兄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后箭券,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體净捅,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年辩块,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛔六。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡废亭,死狀恐怖国章,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豆村,我是刑警寧澤液兽,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站掌动,受9級特大地震影響四啰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坏匪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一拟逮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧适滓,春花似錦敦迄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗅绸,卻和暖如春脾猛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鱼鸠。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工猛拴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羹铅,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓愉昆,卻偏偏與公主長得像职员,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子跛溉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359