搜尋
首頁web前端js教程jQuery循環動畫與取得元件尺寸的方法_jquery

本文實例講述了jQuery循環動畫與取得組件尺寸的方法。分享給大家供大家參考。具體分析如下:

一、前言

1、jQuery中的animate()方法可讓您建立自訂的動畫。

animate() 方法幾乎可以操作所有CSS 屬性,不過當使用animate() 時,必須使用Camel標記法書寫所有的屬性名,例如,必須使用paddingLeft而不是padding-left,使用marginRight而不是margin- right,等等。同時,色彩動畫並不包含在核心 jQuery 函式庫中。如果需要產生顏色動畫,您需要從 jquery.com 下載 Color Animations 外掛程式。

2、透過jQuery,很容易處理元素和瀏覽器視窗的尺寸。
jQuery提供以下屬性取得元素和瀏覽器視窗的尺寸。

二、基本目標

如下圖:

在網頁中建立兩個按鈕,一個按鈕能夠使元件的尺寸在顯示與隱藏狀態中切換,一個按鈕能夠使循環動畫在開始與停止狀態中切換

單純的JQ沒有暫停與開始動畫播放的功能,必須下載jQuery Pause插件完成。這個例子而僅僅透過JavaScript去控制循環動畫,所以每次暫停僅能在其完成一次循環體才能夠打斷,並不能做到在隨意位置暫停開始的功能。

三、製作過程

以下是網頁所有程式碼,之後再一部分一部分解釋:

複製程式碼 程式碼如下:
 
 
     
         
        JQ動畫標題> 
         
         
變數間隔; 
變數我 = 0; 
變數 j = 0; 
函數 divanimate() { 
    $(".d_class").animate( {left : " =100px"}, 500); 
    $(".d_class").animate( {top : " =100px" }, 500); 
    $(".d_class").animate( {left : "-=100px"}, 500); 
    $(".d_class").animate( {top : "-=100px" }, 500); 

函數循環() { 
    divanimate(); 
    間隔 = setInterval("divanimate()", 2000); 

$(文檔).ready(function() { 
    $("#stop").click(function() { 
        我 ; 
        if (i % 2 != 0) 
            循環(); 
        否則
            清除間隔(間隔); 
    }); 
    $("#show").click(function() { 
        j ; 
        if (j % 2 != 0) { 
            var txt = ""; 
            txt = "高: " $("#d_id").height() "px"; 
            txt = "寬: " $("#d_id").width() "px"; 
            $("#d_id").html(txt); 
        } 其他 { 
            var txt = ""; 
            $("#d_id").html(txt); 
        } 
    }); 
}) 
    腳本> 
    頭> 
 
     
         
            顯示/隱藏塊尺寸
        按鈕> 
         
            開始/停止動畫的循環
        按鈕> 
       
            樣式=「寬度:100px;高度:100px;背景顏色:#000;位置:絕對;上:50px;顏色:#FFF;左:50px;」>
 
 
    正文> 

1、部分
沒有什麼特別的,就是定義兩個按鈕在與一個圖層。值得注意的是,在圖層的style參數值中必須加入position:absolute一項,否則此圖層無法在網頁中隨意移動

background-color是圖層的背景顏色。 color是圖層中的字型顏色。

要定義id與class兩個參數,因為JQ動畫需要用class來控制,而JQ取得組件尺寸則需要透過id來控制。

同時,擺放圖層的位置需要注意,是用left與top來放置,而不是margin-left與margin-top去放置,因為JQ動畫控制代碼是用left與top去控制的。如果使用margin-left與margin-top去放置在動畫開始的瞬間會有小幅度的失真。

2、部分

也就是核心程式碼部分:

複製程式碼 程式碼如下:
 
     
         
        JQ動畫 
         
        <script>  <br /> /*這相當於記錄循環狀態的指針,為下方清除clearInterval()所用*/          <br /> var interval;  <br /> /*i是用來記錄點擊「開始/停止動畫的循環」按鈕的次數,如果此按鈕點擊奇數次就開始循環,偶數次就終止循環*/  <br /> var i = 0;  <br /> /*j是用來記錄點選「顯示/隱藏方塊尺寸」按鈕的次數,若此按鈕點選奇數次就顯示尺寸,偶數次就隱藏尺寸*/  <br /> var j = 0;  <br /> /*由於沒有封裝好的toggle()方法,我們需要這麼做*/  <br /> function divanimate() {  <br />     /*這裡只能透過圖層的class值來控制圖層,取得class值的前面的符號是.,而不是#*/  <br /> <!--要求class為d_class的圖層,先向右偏移100px,再向下偏移100px,之後向左偏移100px,最後向上偏移100px回到原位,每個動作500毫秒以內完成,也就是0.5秒-->  <br /> <!--這裡注意的是left的意義是x軸的正方向,螢幕最左為0px,越往右數值越大,top是y軸的負方向,螢幕最上為0px,越往下數值越大-->  <br />     $(".d_class").animate( {left : " =100px"}, 500);  <br />     $(".d_class").animate( {top : " =100px" }, 500);  <br />     $(".d_class").animate( {left : "-=100px"}, 500);  <br />     $(".d_class").animate( {top : "-=100px" }, 500);  <br /> }  <br /> function cycle() {  <br />     /*此函數是先執行divanimate()函數,之後,每2000毫秒,也就是每2秒執行divanimate()一次。這個間隔剛好是一次動畫所完成時間,如果不打斷此循環的話,剛好能夠無間隔地無縫完美執行循環動畫。 */  <br />     /*第一行必須存在,否則每次點選開始按鈕,都要等2秒,才開始動畫*/  <br />     divanimate();  <br />     interval = setInterval("divanimate()", 2000);  <br /> }  <br /> /*$(document).ready(function(){})意為一載入網頁就載入的函數,所有按鈕的動作類,必須放在其中*/  <br /> $(document).ready(function() {  <br />     $("#stop").click(function() {  <br />         i ;  <br />         if (i % 2 != 0)  <br />             cycle();  <br />         else  <br />         /*終止循環與上面的開始循環是javascript的函數,都說了jquery只是javascript的擴充。 */  <br />             clearInterval(interval);  <br />     });  <br />     $("#show").click(function() {  <br />         j ;  <br />         if (j % 2 != 0) {  <br />             var txt = "";  <br />             txt = "<p align="center">高: " $("#d_id").height() "px";  <br />             txt = "寬: " $("#d_id").width() "px";  <br />             /*此方法能夠在對應的組件標籤中輸出文字*/  <br />             $("#d_id").html(txt);  <br />         } else {  <br />             var txt = "";  <br />             $("#d_id").html(txt);  <br />         }  <br />     });  <br /> })  <br /> </script> 

希望本文所述對大家的jQuery程式設計有所幫助。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
jquery实现多少秒后隐藏图片jquery实现多少秒后隐藏图片Apr 20, 2022 pm 05:33 PM

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

axios与jquery的区别是什么axios与jquery的区别是什么Apr 20, 2022 pm 06:18 PM

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

jquery怎么修改min-height样式jquery怎么修改min-height样式Apr 20, 2022 pm 12:19 PM

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

jquery怎么在body中增加元素jquery怎么在body中增加元素Apr 22, 2022 am 11:13 AM

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

jquery中apply()方法怎么用jquery中apply()方法怎么用Apr 24, 2022 pm 05:35 PM

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

jquery怎么删除div内所有子元素jquery怎么删除div内所有子元素Apr 21, 2022 pm 07:08 PM

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

jquery on()有几个参数jquery on()有几个参数Apr 21, 2022 am 11:29 AM

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

jquery怎么去掉只读属性jquery怎么去掉只读属性Apr 20, 2022 pm 07:55 PM

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具