成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端程序員應該知道的 15 個 jQuery 小技巧

開發 前端
改變scrollTop 的值可以更改你想要放置滾動條的位置。所有你真正需要做的是在800毫秒的時間內設置文檔主體的動畫,直到它滾動到文檔的頂部。

下面這些簡單的小技巧能夠幫助你玩轉jQuery。

  • 返回頂部按鈕

  • 預加載圖像

  • 檢查圖像是否加載

  • 自動修復破壞的圖像

  • 懸停切換類

  • 禁用輸入字段

  • 停止加載鏈接

  • 切換淡入/幻燈片

  • 簡單的手風琴

  • 讓兩個div高度相同

  • 在新標簽頁/窗口打開外部鏈接

  • 通過文本查找元素

  • 在改變visibility時觸發

  • AJAX調用錯誤處理

  • 鏈式插件調用

通過使用jQuery中的animate 和scrollTop 方法,不用插件就可以創建一個滾動到頂部的簡單動畫:

  1. // Back to top 
  2. $('.top').click(function (e) { 
  3.   e.preventDefault(); 
  4.   $('html, body').animate({scrollTop: 0}, 800); 
  5. }); 
  6.  
  7. <!-- Create an anchor tag --> 
  8. <a class="top" href="#">Back to top</a> 

改變scrollTop 的值可以更改你想要放置滾動條的位置。所有你真正需要做的是在800毫秒的時間內設置文檔主體的動畫,直到它滾動到文檔的頂部。

注:小心scrollTop的一些錯誤行為。

預加載圖像

如果你的網頁要使用大量開始不可見的(例如,懸停的)圖像,那么可以預加載這些圖像:

 

  1. $.preloadImages = function () { 
  2.   for (var i = 0; i < arguments.length; i++) { 
  3.     $('<img>').attr('src', arguments[i]); 
  4.   } 
  5. }; 
  6.  
  7. $.preloadImages('img/hover-on.png''img/hover-off.png'); 

檢查圖像是否加載

有時為了繼續腳本,你可能需要檢查圖像是否全部加載完畢:

  1. $('img').load(function () { 
  2.   console.log('image load successful'); 
  3. }); 

你也可以用ID或類替換<img>標簽來檢查某個特定的圖像是否被加載。

自動修復破壞的圖像

逐個替換已經破壞的圖像鏈接是非常痛苦的。不過,下面這段簡單的代碼可以幫助你:

  1. $('img').on('error', function () { 
  2.   if(!$(this).hasClass('broken-image')) { 
  3.     $(this).prop('src''img/broken.png').addClass('broken-image'); 
  4.   } 
  5. }); 

即使沒有任何斷掉的鏈接,加上這一段代碼也不會讓你有任何損失。

懸停切換類

假設你希望當用戶將鼠標懸停在可點擊的元素上時,它會改變顏色。那么你可以在用戶懸停的時候添加類到元素中,反之則刪除類:

  1. $('.btn').hover(function () { 
  2.   $(this).addClass('hover'); 
  3. }, function () { 
  4.   $(this).removeClass('hover'); 
  5. }); 

你只需要添加必要的CSS即可。更簡單的方法是使用toggleClass 方法:

  1. $('.btn').hover(function () { 
  2.   $(this).toggleClass('hover'); 
  3. }); 

注:可能在這種情況下,CSS這種解決方案更快,不過了解這個方法很有必要。

禁用輸入字段

有時候,你可能想要禁用表格的提交按鈕或它的某一項文字輸入直到用戶執行了特定操作(例如,勾選“我已閱讀相關條款”復選框)。添加 disabled屬性到你的輸入就可以在你想要的時候才啟用它:

  1. $('input[type="submit"]').prop('disabled'true); 

然后你只需要運行輸入的prop 方法就可以了,不過disabled 的值要設置為false:

  1. $('input[type="submit"]').prop('disabled'false); 

停止加載鏈接

有時候,你既不需要鏈接到某個特定的網頁,也不想要重新加載頁面——你可能希望鏈接做點別的事情,例如說觸發一些其他腳本。這就要在阻止默認動作上做文章了:

  1. $('a.no-link').click(function (e) { 
  2.   e.preventDefault(); 
  3. }); 

淡入/滑動切換

滑動和淡入都是我們用jQuery做動畫的時候大量運用的東西。如果你只是想在用戶點擊之后展示一個元素的話,那么用fadeIn 和slideDown 方法就很***。但是,如果你想要元素在***次點擊的時候出現,然后在第二次點擊的時候消失的話,那么可以試試下面的代碼:

 

  1. // Fade 
  2. $('.btn').click(function () { 
  3.   $('.element').fadeToggle('slow'); 
  4. }); 
  5.  
  6. // Toggle 
  7. $('.btn').click(function () { 
  8.   $('.element').slideToggle('slow'); 
  9. }); 

簡單的手風琴

這是一個可快速生成手風琴的簡單方法:

 

  1. // Close all panels 
  2. $('#accordion').find('.content').hide(); 
  3.  
  4. // Accordion 
  5. $('#accordion').find('.accordion-header').click(function () { 
  6.   var next = $(this).next(); 
  7.   next.slideToggle('fast'); 
  8.   $('.content').not(next).slideUp('fast'); 
  9.   return false
  10. }); 

通過添加這個腳本,你真正需要做的僅僅是在頁面上添加必要的HTML元素,這樣它就可以運行工作了。

讓兩個div高度相同

有時候,你需要讓兩個div無論包含什么內容都擁有相同的高度:

  1. $('.div').css('min-height', $('.main-div').height()); 

設置 min-height,這意味著它可以比主div大但絕對不能比主div小。不過,還有一種更靈活的方法是遍歷一組元素,然后將高度設置為***的那個元素的高度:

  1. var $columns = $('.column'); 
  2. var height = 0
  3. $columns.each(function () { 
  4.   if ($(this).height() > height) { 
  5.     height = $(this).height(); 
  6.   } 
  7. }); 
  8. $columns.height(height); 

如果你希望所有列的高度相同:

  1. var $rows = $('.same-height-columns'); 
  2. $rows.each(function () { 
  3.   $(this).find('.column').height($(this).height()); 
  4. }); 

在新標簽頁/窗口打開外部鏈接

在一個新的瀏覽器tab或窗口中打開外部鏈接,并確保同一個來源的鏈接能在同一個tab或者窗口中打開:

  1. $('a[href^="http"]').attr('target''_blank'); 
  2. $('a[href^="//"]').attr('target''_blank'); 
  3. $('a[href^="' + window.location.origin + '"]').attr('target''_self'); 

注意:window.location.origin 在IE10中無效。修復的時候要小心這個問題。

通過文本查找元素

通過使用jQuery中的contains() 選擇器,你可以找到元素內容的文本。如果文本不存在,那就隱藏該元素:

  1. var search = $('#search').val(); 
  2. $('div:not(:contains("' + search + '"))').hide(); 

在改變Visibility時觸發

當用戶不再關注某個tab,或重新聚焦原來的那個tab上時,觸發JavaScript:

  1. $(document).on('visibilitychange', function (e) { 
  2.   if (e.target.visibilityState === "visible") { 
  3.     console.log('Tab is now in view!'); 
  4.   } else if (e.target.visibilityState === "hidden") { 
  5.     console.log('Tab is now hidden!'); 
  6.   } 
  7. }); 

AJAX調用錯誤處理

當Ajax調用返回404或500錯誤時,就執行錯誤處理程序。如果沒有定義處理程序,其他的jQuery代碼或會就此罷工。定義一個全局的Ajax錯誤處理程序:

  1. $(document).ajaxError(function (e, xhr, settings, error) { 
  2.   console.log(error); 
  3. }); 

鏈式插件調用

jQuery允許“鏈式”插件的方法調用,以減輕反復查詢DOM并創建多個jQuery對象的過程。比方說,下面的代碼片段代表了你的插件方法調用:

  1. $('#elem').show(); 
  2. $('#elem').html('bla'); 
  3. $('#elem').otherStuff(); 

通過使用鏈式,可以大大改善:

  1. $('#elem'
  2.   .show() 
  3.   .html('bla'
  4.   .otherStuff(); 

還有一種方法是在(前綴$)變量中高速緩存元素:

  1. var $elem = $('#elem'); 
  2. $elem.hide(); 
  3. $elem.html('bla'); 
  4. $elem.otherStuff(); 

鏈式和高速緩存的方法都是jQuery中可以讓代碼變得更短和更快的代***做法。

譯文鏈接:http://www.codeceo.com/article/15-jquery-tips.html
英文原文:jQuery Tips Everyone Should Know

 

責任編輯:王雪燕 來源: 碼農網
相關推薦

2013-06-03 11:24:45

程序調試Java

2018-11-14 10:00:07

程序員開發技巧Git

2015-11-05 09:19:12

程序員jQuery技巧

2018-05-08 15:30:46

程序員代碼框架

2024-04-24 14:52:26

JavaScriptWeb 開發

2013-12-02 10:10:35

Python工具庫

2016-01-18 11:03:58

程序員搜索技巧

2024-05-06 00:00:00

2018-09-20 17:05:01

前端程序員JavaScript

2015-03-24 13:31:06

2022-05-31 09:09:10

vuex技巧前端

2020-04-10 16:35:58

GitHub數據網站

2019-07-19 09:21:54

Java開源庫程序員

2023-03-28 23:08:18

Bash編碼Shell

2020-11-11 08:22:40

前端開發JavaScript

2022-06-02 15:37:58

Web前端開發

2012-02-28 10:52:13

2018-03-07 12:57:53

2012-10-11 10:32:48

Linux命令程序員

2020-03-27 09:24:39

程序員技能開發者
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精品一区 | 日韩一级免费电影 | 天天玩天天操天天干 | 青青久在线视频 | 国产日韩久久久久69影院 | 久久av一区| 婷婷色成人 | 爱草在线 | 香蕉久久网 | 日韩一区二区在线视频 | 国产精品欧美一区二区三区 | 精品在线一区 | 一级毛片观看 | 91视频入口 | 91传媒在线观看 | 在线中文字幕亚洲 | 欧美淫片| 中文字幕av一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 神马福利| 亚洲精品日韩在线 | 亚洲精品一区二区二区 | 欧美色专区 | 欧美性久久 | 特级毛片爽www免费版 | 成人在线观看免费视频 | 一区二区在线不卡 | 亚洲手机视频在线 | 色狠狠桃花综合 | 久久久久电影 | 免费看国产片在线观看 | 久久久中文| 国产一区亚洲 | 亚洲97| 2020天天操 | 国产精品国产三级国产播12软件 | 在线色网站 | 欧美一级精品片在线看 | 日韩在线中文 | 中文字幕一区在线 | 免费簧片视频 |