日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

17前端学习之JQuery基础(一):jQ介绍,jQ基本使用,jQ选择器,jQ样式操作,jQ动画效果

發布時間:2024/3/12 HTML 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 17前端学习之JQuery基础(一):jQ介绍,jQ基本使用,jQ选择器,jQ样式操作,jQ动画效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、Jquery介紹:
    • 1. JavaScript 庫:
    • 2 jQuery的概念
    • 3. jQuery的優點
  • 二、jQuery 的基本使用:
    • 1. jQuery 的下載
    • 2. 體驗jQuery
    • 3. jQuery的入口函數
    • 4. jQuery中的頂級對象$
    • 5. jQuery 對象和 DOM 對象
    • 6. jQuery 對象和 DOM 對象轉換
  • 三、jQuery選擇器:
    • 1. 基礎選擇器
    • 2. 層級選擇器
    • 3. 篩選選擇器
    • 4. 其他:
    • 5. 案例:
      • 5.1 案例:新浪下拉菜單:
      • 5.2 案例:淘寶服飾精品案例:
  • 四、jQuery 樣式操作:
    • 1. 方法1: 操作 css 方法
    • 2. 方法2: 設置類樣式方法
    • 3. 案例:tab 欄切換:
  • 五、jQuery 效果:
    • 1. 顯示隱藏:
      • 1.1 show:
      • 1.2 hide:
      • 1.3 toggle:
      • 1.4 代碼演示:
    • 2. 滑入滑出
      • 2.1 下滑: slideDown
      • 2.2 上滑: slideUp
      • 2.3 滑動切換: slideToggle
      • 2.4 代碼演示:
    • 3.事件切換:
      • 3.1 語法:
      • 3.2 案例: hover事件和停止動畫排列:
    • 4.動畫隊列及其停止方法:
      • 4.1 動畫或效果隊列:
      • 4.2 停止排隊:
    • 5. 淡入淡出
      • 5.1 淡入:fadeIn
      • 5.2 淡出:fadeOut
      • 5.3 淡入淡出:fadeToggle
      • 5.3 漸進:fadeTo
      • 5.4 代碼演示:
      • 5.4 案例: 高亮選擇:
    • 6. 自定義動畫
      • 6.1 語法:
      • 6.2 參數:
    • 7. 案例:王者榮耀手風琴效果
    • 7.1 分析:
      • 7.2 實現:

一、Jquery介紹:

1. JavaScript 庫:

JavaScript庫: 即library, 是一個封裝好的特定的集合(方法和函數). 從封裝一大推函數角度理解庫, 就是在這個庫中,封裝了很多預先定義好的函數在里面,比如動畫animate、hide、show,比如獲取元素等.

簡單理解: 就是一個JS 文件,里面對原生js代碼進行了封裝,存放到里面. 這樣可以快速高效的使用這些封裝好的功能了;
比如 jQuery,就是為了快速方便的操作DOM,里面基本都是函數(方法);

常見庫:

  • juery;
  • Prototype;
  • YUI;
  • Dojo;
  • Ext JS;
  • 移動端的zepto;

2 jQuery的概念

jQuery總體概況如下 :

  • jQuery 是一個快速、簡潔的 JavaScript 庫,其設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情;
  • j 就是 JavaScript; Query 查詢; 意思就是查詢js,把js中的DOM操作做了封裝,可以快速的查詢使用里面的功能;
  • jQuery 封裝了 JavaScript 常用的功能代碼,優化了 DOM 操作、事件處理、動畫設計和 Ajax 交互;
  • 學習jQuery本質: 就是學習調用這些函數(方法);
  • jQuery 出現的目的是加快前端人員的開發速度,可以非常方便的調用和使用它,從而提高開發效率;

3. jQuery的優點

  • 輕量級. 核心文件才幾十kb,不會影響頁面加載速度;
  • 跨瀏覽器兼容,基本兼容了現在主流的瀏覽器;
  • 鏈式編程、隱式迭代;
  • 對事件、樣式、動畫支持,大大簡化了DOM操作;
  • 支持插件擴展開發. 有著豐富的第三方的插件,例如: 樹形菜單、日期控件、輪播圖等;
  • 免費、開源;

二、jQuery 的基本使用:

1. jQuery 的下載

jQuery的官網地址: https://jquery.com/,官網即可下載最新版本;

各個版本的下載:[https://code.jquery.com/](https://code.jquery.com/)

版本介紹:

  • 1x :兼容 IE 678 等低版本瀏覽器, 官網不再更新;
  • 2x :不兼容 IE 678 等低版本瀏覽器, 官網不再更新;
  • 3x :不兼容 IE 678 等低版本瀏覽器, 是官方主要更新維護的版本;

2. 體驗jQuery

步驟:

  • 引入jQuery文件;
  • 文檔最末尾插入 script 標簽,書寫體驗代碼;
  • (‘div’).hide() 可以隱藏盒子

3. jQuery的入口函數

jQuery中常見的兩種入口函數:

  • 第一種: 簡單易用;
$(function () { ... // 此處是頁面 DOM 加載完成的入口 }) ;
  • 第二種: 繁瑣,但是也可以實現
$(document).ready(function(){... // 此處是頁面DOM加載完成的入口 });

總結:

  • 等著 DOM 結構渲染完畢即可執行內部代碼,不必等到所有外部資源加載完成,jQuery 完成了封裝;
  • 相當于原生 js 中的 DOMContentLoaded;
  • 不同于原生 js 中的 load 事件是等頁面文檔、外部的 js 文件、css文件、圖片加載完畢才執行內部代碼;
  • 更推薦使用第一種方式;

4. jQuery中的頂級對象$

  • $ 是 jQuery 的別稱,在代碼中可以使用 jQuery 代替,但一般為了方便,通常都直接使用 $ ;
  • $ 是jQuery的頂級對象,相當于原生JavaScript中的 window.把元素利用$ 包裝成jQuery對象,就可以調用jQuery 的方法;

5. jQuery 對象和 DOM 對象

使用 jQuery 方法和原生JS獲取的元素是不一樣的,總結如下 :

  • 用原生 JS 獲取來的對象就是 DOM 對象
  • jQuery 方法獲取的元素就是 jQuery 對象;
  • jQuery 對象本質是: 利用$對DOM 對象包裝后產生的對象(偽數組形式存儲);

注意:

  • 只有 jQuery 對象才能使用 jQuery 方法, DOM 對象則使用原生的 JavaScirpt 方法.

6. jQuery 對象和 DOM 對象轉換

DOM 對象與 jQuery 對象之間是可以相互轉換的. 因為原生js 比 jQuery 更大,原生的一些屬性和方法 jQuery沒有封裝. 要想使用這些屬性和方法需要把jQuery對象轉換為DOM對象才能使用.

// 1.DOM對象轉換成jQuery對象,方法只有一種 var box = document.getElementById('box'); // 獲取DOM對象 var jQueryObject = $(box); // 把DOM對象轉換為 jQuery 對象// 2.jQuery 對象轉換為 DOM 對象有兩種方法: // 2.1 jQuery對象[索引值] var domObject1 = $('div')[0]// 2.2 jQuery對象.get(索引值) var domObject2 = $('div').get(0)

總結:實際開發比較常用的是把DOM對象轉換為jQuery對象, 這樣能夠調用功能更加強大的jQuery中的方法

三、jQuery選擇器:

原生 JS 獲取元素方式很多,很雜,而且兼容性情況不一致,因此 jQuery 做了封裝,使獲取元素統一標準;

隱式迭代就是把匹配到哦所有元素內部進行循環遍歷一遍;

1. 基礎選擇器

$("選擇器") // 里面選擇器直接寫 CSS 選擇器即可,但是要加引號 名稱用法描述
ID選擇器$("#id");獲取指定ID的元素
全選擇器$("*")匹配所有的元素
類選擇器$(“class”)獲取同一類class的元素
標簽選擇器$(“div”)獲取同一類標簽的所有元素
并集選擇器$(“div,p,li”)獲取多個元素
交集選擇器$(“li.current”)交集選擇器

2. 層級選擇器

?層級選擇器最常用的兩個分別為:后代選擇器和子代選擇器;

名稱用法描述
子代選擇器$(“ul>li”)使用>號, 獲取親子層級的元素; 注意, 并不會獲取孫子層級的元素
后代原則器$(“ul li”)使用空格, 代表后代選擇器, 獲取ul下所有li元素, 包括孫子等

基礎選擇器和層級選擇器案例代碼

<body><div>我是div</div><div class="nav">我是nav div</div><p>我是p</p><ul><li>我是ul 的</li><li>我是ul 的</li> <li>我是ul 的</li></ul><script>$(function() {console.log($(".nav"));console.log($("ul li"));})</script> </body>

3. 篩選選擇器

?篩選選擇器,顧名思義就是在所有的選項中選擇滿足條件的進行篩選選擇.常見如下 :

語法用法描述
:first$(“li:first”)獲取第一個li元素
:last$(“li:last”)獲取最后一個li元素
:eq(index$(“li:eq(2)”)獲取li元素中索引為2的li元素, 索引號從0開始
:odd$(“li:odd”)獲取li元素中索引號為奇數的元素
:even$(“li:even”)獲取li元素中索引號為偶數的元素

案例代碼:

<body><ul><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li></ul><ol><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li><li>多個里面篩選幾個</li></ol><script>$(function() {$("ul li:first").css("color", "red");$("ul li:eq(2)").css("color", "blue");$("ol li:odd").css("color", "skyblue");$("ol li:even").css("color", "pink");})</script> </body>

另: jQuery中還有一些篩選方法, 類似DOM中的通過一個節點找另外一個節點, 父、子、兄以外有所加強;

語法用法說明
parent()$(“li”).parent();查找父級
chileren(selector)$(“ul”).children(“li”);相當于$(“ul>li”), 最近一級(親兒子)
find(selector)$(“ul”).find(“li”);相當于$(“ul li”), 后代選擇器
siblings(selector)$(".first").siblings(“li”)查找兄弟節點, 不包括自己本身
nextAll([expr])$(".first").nextAll()查找當前元素之后所有的同輩元素
prevAll([expr])$(’.last’).prevAll()查找當前元素之前所有的同輩元素
hasClass(class)$(“div”).hasClass(“protected”)檢查當前元素是否含有某個特定的類,如果有,則返回true
eq(index)$(“li”).eq(2);相當于$(“li:eq(2)”); index從0開始

4. 其他:

  • jQuery 設置樣式
$('div').css('屬性', '值')
  • jQuery 里面的排他思想
// 想要多選一的效果,排他思想:當前元素設置樣式,其余的兄弟元素清除樣式; $(this).css("color","red""); $(this).siblings().css("color","");
  • 隱式迭代:
// 遍歷內部 DOM 元素(偽數組形式存儲)的過程就叫做隱式迭代. // 簡單理解:給匹配到的所有元素進行循環遍歷,執行相應的方法,而不用再進行循環,簡化的操作,方便調用. $('div').hide(); // 頁面中所有的div全部隱藏,不用循環操作
  • 鏈式編程:
// 鏈式編程是為了節省代碼量,看起來更優雅 $(this).css('color', 'red').sibling().css('color', '');

5. 案例:

5.1 案例:新浪下拉菜單:

<head><title>新浪下拉菜單</title><script src="./jquery-3.5.0.min.js"></script><style>* {margin: 0;padding: 0;}li{list-style: none;}a {text-decoration: none;font-size: 14px;}.nav {margin: 100px;}.nav>li {position: relative;float: left;width: 80px;height: 41px;text-align: center;}.nav li a{display: block;width: 100%;height: 100%;line-height: 41px;color: #333;}.nav>li>a:hover {background-color: #eee;}.nav ul {display: none;position: absolute;top: 41px;left: 0;width: 100%;border-left: 1px solid #FECC5B;border-right: 1px solid #FECC5B;}.nav ul li {border-bottom: 1px solid #FECC5B;}.nav ul li a:hover {background-color: #FFF5DA;}</style><script>$(function() {// 鼠標經過$(".nav>li").mouseover(function() {$(this).children('ul').show()})// 鼠標離開$(".nav>li").mouseleave(function() {$(this).children('ul').hide()})})</script> </head> <body><ul class="nav"><li><a href="#">微博</a><ul><li> <a href="">私信</a></li><li><a href="">評論</a></li><li><a href="">@我</a></li></ul></li><li><a href="#">微博</a><ul><li> <a href="">私信</a></li><li><a href="">評論</a></li><li><a href="">@我</a></li></ul></li><li><a href="#">微博</a><ul><li> <a href="">私信</a></li><li><a href="">評論</a></li><li><a href="">@我</a></li></ul></li><li><a href="#">微博</a><ul><li> <a href="">私信</a></li><li><a href="">評論</a></li><li><a href="">@我</a></li></ul></li></ul> </body>

5.2 案例:淘寶服飾精品案例:

思路分析:

  • 核心原理: 鼠標經過左側盒子某個小li,就讓內容區盒子相對應圖片顯示,其余的圖片隱藏;
  • 需要得到當前小li 的索引號,就可以顯示對應索引號的圖片
  • jQuery 得到當前元素索引號 $(this).index()
  • 中間對應的圖片,可以通過 eq(index) 方法去選擇
  • 顯示元素 show() 隱藏元素 hide()

實現:

<head><title>淘寶精品</title><style>* {margin: 0;padding: 0;}ul {list-style: none;}a {text-decoration: none;}.wrapper {width: 250px;height: 248px;margin: 100px auto 0;border: 1px solid pink;border-right: 0;overflow: hidden;}#left,#content {float: left;}#left li {background: url(images/lili.jpg) repeat-x;}#left li a {display: block;width: 48px;height: 27px;border-bottom: 1px solid pink;line-height: 27px;text-align: center;color: #000;}#left li a:hover {background-image: url(./images/abg.gif);}#content {border-left: 1px solid pink;border-right: 1px solid pink;}</style><script src="../jquery-3.5.0.js"></script><script>$(function() {$('#left li').mouseover(function() {// 獲取li的索引號var index = $(this).index();// 讓對應的圖片顯示出來, 其他的隱藏$('#content div').eq(index).show().siblings().hide()})})</script> </head> <body><div class="wrapper"><ul id="left"><li><a href="#">女靴</a></li><li><a href="#">雪地靴</a></li><li><a href="#">冬裙</a></li><li><a href="#">呢大衣</a></li><li><a href="#">毛衣</a></li><li><a href="#">棉服</a></li><li><a href="#">女褲</a></li><li><a href="#">羽絨服</a></li><li><a href="#">牛仔褲</a></li></ul><div id="content"><div><a href="#"><img src="images/女靴.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/雪地靴.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/冬裙.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/呢大衣.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/毛衣.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/棉服.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/女褲.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/羽絨服.jpg" width="200" height="250" /></a></div><div><a href="#"><img src="images/牛仔褲.jpg" width="200" height="250" /></a></div></div></div> </body>

四、jQuery 樣式操作:

? jQuery中常用的樣式操作有兩種:css() 和 設置類樣式方法

1. 方法1: 操作 css 方法

jQuery 可以使用 css 方法來修改簡單元素樣式; 也可以操作類,修改多個樣式;
常用以下三種形式 :

  • 參數只寫屬性名,則是返回屬性值
var strColor = $(this).css('color');
  • 參數是屬性名,屬性值,逗號分隔,是設置一組樣式,屬性必須加引號,值如果是數字可以不用跟單位和引號:
$(this).css(''color'', ''red''); ```- 參數可以是對象形式,方便設置多組樣式. 屬性名和屬性值用冒號隔開, 屬性可以不用加引號: ```js $(this).css({ "color":"white","font-size":"20px"});

注意:css() 多用于樣式少時操作,多了則不太方便

2. 方法2: 設置類樣式方法

作用等同于以前的 classList,可以操作類樣式, 注意操作類里面的參數不要加點;

常用的三種設置類樣式方法:

  • 添加類
$("div").addClass("current");
  • 刪除類:
$("div").removeClass("current");
  • 切換類:
$("div").toggleClass("current");

注意:

  • 設置類樣式方法比較適合樣式多時操作,可以彌補css()的不足;
  • 原生 JS 中 className 會覆蓋元素原先里面的類名,jQuery 里面類操作只是對指定類進行操作,不影響原先的類名;

3. 案例:tab 欄切換:

思路分析:

  • 點擊上部的li,當前li 添加current類,其余兄弟移除類;
  • 點擊的同時,得到當前li 的索引號;
  • .讓下部里面相應索引號的item顯示,其余的item隱藏;

實現:

<head><title>tab欄切換</title><style>* {margin: 0;padding: 0;}li {list-style: none;}.tab {width: 978px;margin: 100px auto;}.tab_list {height: 39px;border: 1px solid #ccc;background-color: #f1f1f1;}.tab_list li {float: left;height: 39px;line-height: 39px;padding: 0 20px;text-align: center;cursor: pointer;}.tab_list .current {background-color: #c81623;color: #fff;}.item_info {padding: 20px 0 0 20px;}.item {display: none;}</style><script src="./jquery-3.5.0.js"></script><script>$(function() {$('.tab_list li').click(function() {$(this).addClass('current').siblings().removeClass('current');// 獲取索引號var index = $(this).index();// 讓下部里面相應搜索引號的item顯示, 其余隱藏$('.tab_con .item').eq(index).show().siblings().hide();});})</script> </head> <body><div class="tab"><div class="tab_list"><ul><li class="current">商品介紹</li><li>規格與包裝</li><li>售后保障</li><li>商品評價(50000)</li><li>手機社區</li></ul></div><div class="tab_con"><div class="item" style="display: block;">商品介紹模塊內容</div><div class="item">規格與包裝模塊內容</div><div class="item">售后保障模塊內容</div><div class="item">商品評價(50000)模塊內容</div><div class="item">手機社區模塊內容</div></div></div> </body>

五、jQuery 效果:

jQuery 封裝了很多動畫效果,最為常見的如下:

  • 顯示隱藏:show() / hide() / toggle() ;
  • 劃入畫出:slideDown() / slideUp() / slideToggle() ;
  • 淡入淡出:fadeIn() / fadeOut() / fadeToggle() / fadeTo() ;
  • 自定義動畫:animate() ;

注意:

  • 動畫或者效果一旦觸發就會執行,如果多次觸發,就造成多個動畫或者效果排隊執行;
  • jQuery提供另一個方法,可以停止動畫排隊: stop();

1. 顯示隱藏:

顯示隱藏動畫,常見有三個方法: show() / hide() / toggle() ;

1.1 show:

語法規范如下:
顯示語法規范:

show([speed, [easing], [fn]])

顯示參數:

  • 參數都可以省略, 無動畫直接顯示;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

1.2 hide:

隱藏語法規范:

hide([speed, [easing], [fn]])

隱藏參數:

  • 參數都可以省略, 無動畫直接顯示;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

1.3 toggle:

切換語法規范:

toggle([speed, [easing], [fn]])

切換參數:

  • 參數都可以省略, 無動畫直接顯示;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

1.4 代碼演示:

<body><button>顯示</button><button>隱藏</button><button>切換</button><div></div><script>$(function() {$("button").eq(0).click(function() {$("div").show(1000, function() {alert(1);});})$("button").eq(1).click(function() {$("div").hide(1000, function() {alert(1);});})$("button").eq(2).click(function() {$("div").toggle(1000);})// 一般情況下,都不加參數直接顯示隱藏就可以了});</script> </body>

2. 滑入滑出

滑入滑出動畫,常見有三個方法:slideDown() / slideUp() / slideToggle() ;? 語法規范如下:

2.1 下滑: slideDown

下滑效果語法規范:

slideDown([speed, [easing], [fn]])

下滑效果參數:

  • 參數都可以省略;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

2.2 上滑: slideUp

下滑效果語法規范:

slideUp([speed, [easing], [fn]])

上滑效果參數:

  • 參數都可以省略;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

2.3 滑動切換: slideToggle

** 滑動切換效果語法規范:**

slideToggle([speed, [easing], [fn]])

滑動切換效果參數:

  • 參數都可以省略;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

2.4 代碼演示:

<body><button>下拉滑動</button><button>上拉滑動</button><button>切換滑動</button><div></div><script>$(function() {$("button").eq(0).click(function() {// 下滑動 slideDown()$("div").slideDown();})$("button").eq(1).click(function() {// 上滑動 slideUp()$("div").slideUp(500);})$("button").eq(2).click(function() {// 滑動切換 slideToggle()$("div").slideToggle(500);});});</script> </body>

3.事件切換:

jQuery中添加了一個新事件 hover() ; 功能類似 css 中的偽類 :hover

3.1 語法:

hover([over,]out) // 其中over和out為兩個函數
  • over:鼠標移到元素上要觸發的函數(相當于mouseenter)
  • out:鼠標移出元素要觸發的函數(相當于mouseleave)
  • 如果只寫一個函數,則鼠標經過和離開都會觸發它

3.2 案例: hover事件和停止動畫排列:

// 1.一般寫法 // 鼠標經過 $(".nav>li").mouseover(function() {$(this).children('ul').slideDown(200); }) // 鼠標離開 $(".nav>li").mouseleave(function() {$(this).children('ul').slideUp(200); })// 2. jq的hover // 事件切換 hover; 鼠標經過的符合寫法 $(".nav>li").hover(function() {$(this).children('ul').slideDown(200); }, function() {$(this).children('ul').slideUp(200); })// 3. jq的hover; 如果只寫一個函數, name鼠標經過離開都會觸發這個函數 $(".nav>li").hover(function() {$(this).children('ul').slideToggle(200); })

4.動畫隊列及其停止方法:

4.1 動畫或效果隊列:

動畫或效果一旦觸發就會執行, 如果連續多次觸發 就造成多個動畫或者效果排隊執行;

4.2 停止排隊:

stop()
  • stop() 方法用于停止動畫或效果;
  • stop() 寫到動畫或者效果的前面, 相當于停止結束上一次的動畫;

總結: 每次使用動畫之前,先調用 stop() ,在調用動畫;

$(".nav>li").hover(function() {$(this).children('ul').stop()slideToggle(200); })

5. 淡入淡出

淡入淡出動畫,常見有四個方法:fadeIn() / fadeOut() / fadeToggle() / fadeTo() ;
語法規范如下:

5.1 淡入:fadeIn

淡入效果語法規范:

fadeIn([speed, [easing], [fn]])

淡入切換效果參數:

  • 參數都可以省略;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

5.2 淡出:fadeOut

淡出效果語法規范:

fadeIn([speed, [easing], [fn]])

淡出切換效果參數:

  • 參數都可以省略;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

5.3 淡入淡出:fadeToggle

淡入淡出效果語法規范:

fadeToggle([speed, [easing], [fn]])

淡入淡出切換效果參數:

  • 參數都可以省略;
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

5.3 漸進:fadeTo

漸進效果語法規范:

fadeTo(speed, opactity, [easing], [fn])

漸進切換效果參數:

  • opactity: 透明度必須寫, 取0~1之間;
  • speed: 必須寫, 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

5.4 代碼演示:

<body><button>淡入效果</button><button>淡出效果</button><button>淡入淡出切換</button><button>修改透明度</button><div></div><script>$(function() {$("button").eq(0).click(function() {// 淡入 fadeIn()$("div").fadeIn(1000);})$("button").eq(1).click(function() {// 淡出 fadeOut()$("div").fadeOut(1000);})$("button").eq(2).click(function() {// 淡入淡出切換 fadeToggle()$("div").fadeToggle(1000);});$("button").eq(3).click(function() {// 修改透明度 fadeTo() 這個速度和透明度要必須寫$("div").fadeTo(1000, 0.5);});});</script> </body>

5.4 案例: 高亮選擇:

需求分析:

  • 鼠標未進入, 6張圖片不透明:
  • 鼠標進入其中一個li, 該li為不透明, 其他li的透明度變為-.5;

代碼實現:

<head lang="en"><meta charset="UTF-8"><title></title><style type="text/css">* {margin: 0;padding: 0;}ul {list-style: none;}body {background: #000;}.wrap {margin: 100px auto 0;width: 630px;height: 394px;padding: 10px 0 0 10px;background: #000;overflow: hidden;border: 1px solid #fff;}.wrap li {float: left;margin: 0 10px 10px 0;}.wrap img {display: block;border: 0;}</style><script src="jquery.min.js"></script><script>$(function() {//鼠標進入的時候,其他的li標簽透明度:0.5$(".wrap li").hover(function() {$(this).siblings().stop().fadeTo(400, 0.5);}, function() {// 鼠標離開,其他li 透明度改為 1$(this).siblings().stop().fadeTo(400, 1);})});</script> </head><body><div class="wrap"><ul><li><a href="#"><img src="images/01.jpg" alt="" /></a></li><li><a href="#"><img src="images/02.jpg" alt="" /></a></li><li><a href="#"><img src="images/03.jpg" alt="" /></a></li><li><a href="#"><img src="images/04.jpg" alt="" /></a></li><li><a href="#"><img src="images/05.jpg" alt="" /></a></li><li><a href="#"><img src="images/06.jpg" alt="" /></a></li></ul></div> </body>

6. 自定義動畫

自定義動畫非常強大,通過參數的傳遞可以模擬以上所有動畫,方法為:animate() ;

6.1 語法:

animate(params, [speed], [easing], [fn])

6.2 參數:

  • params: 想要更改的樣式屬性, 以對象形式傳遞, 必須寫. 屬性名可以不用帶引號, 如果是復合屬性則需要采取駝峰命名法.
  • speed: 三種預定速度之一的字符串(‘slow’, ‘normal’, or ‘fast’)或表示動畫時長的毫秒數值(如:1000);
  • easing: (Optional)用來指定切換效果, 默認是"swing", 可用參數"linear";
  • fn: 回調函數, 在動畫完成時執行的函數, 每個元素執行 一次;

7. 案例:王者榮耀手風琴效果


7.1 分析:

  • 鼠標經過某個小li 有兩步操作:
  • 當前小li 寬度變為 224px, 同時里面的小圖片淡出,大圖片淡入
  • 其余兄弟小li寬度變為69px, 小圖片淡入, 大圖片淡出

7.2 實現:

<head><title>王者榮耀手風琴效果</title><style>*{margin: 0;padding: 0;}ul {list-style: none;}img {display: block;}.king {width: 852px;margin: 100px auto;background: url(./images/bg.png) no-repeat;overflow: hidden;padding: 10px;}.king ul {overflow: hidden;}.king li {position: relative;float: left;width: 69px;height: 69px;margin-right: 10px;}.king li.current {width: 224px;}.king li.current .big {display: block;}.king li.current .small {display: none;}.big {width: 224px;display: none;}.small {position: absolute;top: 0;left: 0;width: 69px;height: 69px;border-radius: 5px;}</style><script src="../jquery-3.5.0.js"></script><script>$(function() {// 鼠標經過li有兩步操作$(".king li").mouseenter(function() {// 1. 當前li, 寬度變為224px, 同時小圖片淡出,大圖片淡入$(this).stop().animate({width: 224}).find(".small").stop().fadeOut().siblings(".big").stop().fadeIn();// 2. 其余兄弟li寬度變為69px, 小圖片淡入, 大圖片淡出$(this).siblings("li").stop().animate({width: 69}).find(".small").stop().fadeIn().siblings(".big").stop().fadeOut();})})</script> </head> <body><div class="king"><ul><li class="current"><a href="#"><img src="./images/m1.jpg" alt="" class="small"><img src="./images/m.png" alt="" class="big"></a></li><li><a href="#"><img src="./images/l1.jpg" alt="" class="small"><img src="./images/l.png" alt="" class="big"></a></li><li><a href="#"><img src="./images/c1.jpg" alt="" class="small"><img src="./images/c.png" alt="" class="big"></a></li><li><a href="#"><img src="./images/w1.jpg" alt="" class="small"><img src="./images/w.png" alt="" class="big"></a></li><li><a href="#"><img src="./images/z1.jpg" alt="" class="small"><img src="./images/z.png" alt="" class="big"></a></li><li><a href="#"><img src="./images/h1.jpg" alt="" class="small"><img src="./images/h.png" alt="" class="big"></a></li><li><a href="#"><img src="./images/t1.jpg" alt="" class="small"><img src="./images/t.png" alt="" class="big"></a></li></ul></div> </body>

總結

以上是生活随笔為你收集整理的17前端学习之JQuery基础(一):jQ介绍,jQ基本使用,jQ选择器,jQ样式操作,jQ动画效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。