1. 程式人生 > >必知的 15 個jQuery小技巧(乾貨)

必知的 15 個jQuery小技巧(乾貨)

1.返回頂部按鈕

你可以利用 animate 和 scrollTop 來實現返回頂部的動畫,而不需要使用其他外掛.

$('a.top').click(function(){
    $(document.body).animate({scrollTop:0},800);returnfalse
});

改變 scrollTop 的值可以調整返回距離頂部的距離,而 animate 的第二個引數是執行返回動作需要的時間(單位:毫秒)。

2.預載入圖片

如果你的頁面中使用了很多不可見的圖片(如:hover 顯示),你可能需要預載入它們:

$('a.top').click(function(){
    $(document.body).animate({scrollTop:
0},800);returnfalse });

3.檢查圖片是否載入完成

有時候你需要確保圖片完成載入完成以便執行後面的操作:

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

你可以把 img 替換為其他的 ID 或者 class 來檢查指定圖片是否載入完成。

4.自動修改破損影象

如果你碰巧在你的網站上發現了破碎的影象連結,你可以用一個不易被替換的影象來代替它們。新增這個簡單的程式碼可以節省很多麻煩:

$('img').on('error',function(){
  $(this).prop('src','img/broken.png');
});

即使你的網站沒有破碎的影象連結,新增這段程式碼也沒有任何害處。

5.滑鼠懸停(hover)切換Class屬性

假如當用戶滑鼠懸停在一個可點選的元素上時,你希望改變其效果,下面這段程式碼可以在其懸停在元素上時新增 class 屬性,當用戶滑鼠離開時,則自動取消該 class 屬性:

$('.btn').hover(function(){
  $(this).addClass('hover');},function(){
    $(this).removeClass('hover');
});

你只需要新增必要的CSS程式碼即可。如果你想要更簡潔的程式碼,可以使用 toggleClass

 方法:

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

注:直接使用CSS實現該效果可能是更好的解決方案,但你仍然有必要知道該方法。

6.禁用 input 欄位

有時你可能需要禁用表單的 submit 按鈕或者某個 input 欄位,直到使用者執行了某些操作(例如,檢查“已閱讀條款”複選框)。可以新增 disabled 屬性,直到你想啟用它時:

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

你要做的就是執行 removeAttr 方法,並把要移除的屬性作為引數傳入:

$('input[type="submit"]').removeAttr('disabled');

7.阻止連結載入

有時你不希望連結到某個頁面或者重新載入它,你可能希望它來做一些其他事情或者觸發一些其他指令碼,你可以這麼做:

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

8.切換 fade/slide

fade 和 slide 是我們在 jQuery 中經常使用的動畫效果,它們可以使元素顯示效果更好。但是如果你希望元素顯示時使用第一種效果,而消失時使用第二種效果,則可以這麼做:

$('.btn').click(function(){
  $('.element').fadeToggle('slow');
});
$('.btn').click(function(){
  $('.element').slideToggle('slow');
});

9.簡單的手風琴效果

這是一個實現手風琴效果快速簡單的方法:

$('#accordion').find('.content').hide();
$('#accordion').find('.accordion-header').click(function(){varnext= $(this).next();next.slideToggle('fast');
  $('.content').not(next).slideUp('fast');returnfalse;
});

10.讓兩個 DIV 高度相同

有時你需要讓兩個 div 高度相同,而不管它們裡面的內容多少。可以使用下面的程式碼片段:

var $columns = $('.column');
var height =0;$columns.each(function(){if($(this).height()> height){
    height = $(this).height();}
});
$columns.height(height);

這段程式碼會迴圈一組元素,並設定它們的高度為元素中的最大高。

11.css3實現div的淡入淡出效果。

@-webkit-keyframes fadeIn{
0%{
opacity: 0;/*初始狀態*/
flter:"Alpha(Opacity=0)";
}
20%{
opacity: 0.2;
flter:"Alpha(Opacity=0.2)";
}
40%{
opacity: 0.4;
flter:"Alpha(Opacity=0.4)";
}
60%{
opacity: 0.6;
flter:"Alpha(Opacity=0.6)";
}
80%{
opacity: 0.8;
flter:"Alpha(Opacity=0.8)";
}
100%{
opacity: 1.0;
flter:"Alpha(Opacity=1.0)";
}
}
.fadeInShow{
-webkit-animation-name: fadeIn;/*動畫名稱*/
-webkit-animation-duration: 300ms; /*動畫持續時間*/
-webkit-animation-iteration-count: 1; /*動畫次數*/
-webkit-animation-delay: 0s; /*延遲時間*/
}

引入動畫效果:

$('.my-project-selector').hover(function(){
$('#project-popover').css('display','block').addClass('fadeInShow');
},function(){
$('#project-popover').css('display','none').removeClass('fadeInShow');
});

12、Jquery遍歷一組checkbox複選框,取出選中的值放在數組裡

var obj = $("input[name='projectId']"),arr=[],i=0;
for(;i<obj.length;i++){
  if(obj[i].checked){
    arr.push(obj[i].value);
  }
}

13、jquery的ajax錯誤error方法檢視狀態值程式碼

error: function(XMLHttpRequest) {
      //(canceled)==捕捉到的狀態值是 “0”
      if(XMLHttpRequest.status=="0"){
      //遮蔽canceled狀態值      
   }
}

14、超出部分擷取字元,顯示“...”(超出的文字自動+省略號)

$.fn.limit=function(){
var self = $("*[limit]");
   self.each(
function(){
var objString = $.trim($(this).text());
var objLength = $.trim($(this).text()).length;
var num = $(this).attr("limit");
if(objLength > num){
$(this).attr("title",objString);
               objString = $(this).text(objString.substring(0,num) + "...");
            }
         }
   )
};

使用方式:<span limit="5">天空飄來五個字,那都不是事兒</span>
當前頁面寫入:
$("span[limit]").limit();

15、游標定位到字元最後(使用場景:input=text文字框獲取焦點後,游標顯示在字元最後)

$.fn.selectRange = function(start, end) {
return this.each(function() {
if (this.setSelectionRange) {
this.focus();
this.setSelectionRange(start, end);
      } else if (this.createTextRange) {
var range = this.createTextRange();
         range.collapse(true);
         range.moveEnd('character', end);
         range.moveStart('character', start);
         range.select();
      }
   });
};

16、JS判斷是否為陣列:

Object.prototype.toString.call([1,2,3]) === [object Array]   //true

相關推薦

15 jQuery技巧乾貨

1.返回頂部按鈕 你可以利用 animate 和 scrollTop 來實現返回頂部的動畫,而不需要使用其他外掛. $('a.top').click(function(){ $(document.body).animate({scrollTop:0},800)

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

php addclass target javascrip pro 前綴 屬性 用戶 cati 下面這些簡單的小技巧能夠幫助你玩轉jQuery。 返回頂部按鈕 預加載圖像 檢查圖像是否加載 自動修復破壞的圖像 懸停切換類 禁用輸入字段 停止加載鏈接 切換淡入/幻燈片 簡單

程序員都會的 35 jQuery 技巧

console 相同 用戶 hide 到你 http 使用 his mouse 原文:http://www.open-open.com/code/view/1446774303092 1. 禁止右鍵點擊 $(document).ready(function(){

125提高網頁可用性的優化技巧

ui設計 eee 用戶名 image 單元 下拉列表 技巧 EDA 需要 125個提高網頁可用性的優化小技巧(二) --安陽師範學院互聯網+應用技術學院UI設計方向講師 崔凱讓常用功能和重要數據信息更接近用戶預測用戶的意圖,讓他們盡可能接近目標。 △ 篩選出或跳至用戶正

Cocos2dx 技巧十三聊聊坐標系

south world 有趣 rect 區別 發現 技術 ins 不同 一好友考上了空姐。她說:以後基本上不會回來了。等下次見面時請叫我白富美!盡管有點羨慕。但我依然不甘示弱回復:下次見面時請叫我高富帥!未來,誰說得準呢?------------------有段時間沒用到

unity_實用技巧const

pla refs ref 常量 利用 遊戲 ems 實用 col const:聲明某個常量字段或常量局部變量。 註意:常量字段和常量局部變量不是變量並且不能修改 利用const管理遊戲標簽 例如: //管理所有標簽 public const string Playe

Java開發技巧:配置文件敏感信息處理

加載 gem 加密解密 -i false valid ges enc factory 前言 不知道在上一篇文章中你有沒有發現,jdbc.properties中的數據庫密碼配置是這樣寫的: jdbc.password=5EF28C5A9A0CE86C2D231A526ED5

Excel技巧

輸入 類型 設置 需要 工作 位數 數字 字號 ctrl 1、自動標出不及格分數假定需用紅色字體顯示60以下分數,藍色字體顯示60以上分數。按Ctrl+1,設置單元格格式→自定義。例如:類型輸入框中輸入:[藍色][>=60];[紅色][<60] 2、直接輸入字號

shell腳本編程技巧2——如何解決多行重定,變量不被shell解釋

tps log shell腳本 ces ESS size 分享 sha blog 參考資料 https://blog.csdn.net/ccwwff/article/details/48519119 例子 原理 ![]shell腳本編程小技巧(2)——如何解決多行重定,

C#實戰技巧:List<string>和string[]的相互轉換

List是string型別列表,string[]是string型別陣列,二者可以互相轉換。 1.string[]轉List string[] strArray = {"a", "ab", "abc"}; List<string> strList = new List<s

C#實戰技巧:將剪下板中的內容儲存為圖片

進行C#開發時,可以將複製到剪下板中的內容轉為HTML檔案,再將HTML頁面轉為圖片進行儲存,示例效果如下。 被複制的Excel表格: 生成的圖片: 實現上述功能的主要程式碼如下,能夠將從Word、Excel、網頁等地方複製的內容匯出,並儲存為圖片。 程式碼:

easyUI技巧

1、使用tabs時,如果使用的不是url,而是content,則要嵌入iframe addTab({ title:node.text, closeable:true, content:‘<if

Android Studio開發技巧

我們都知道,Android Studio的功能是非常強大的,也是很智慧的。如果有人告訴你學Android開發要用命令列,你可以告訴他Android Studio是谷歌提供給開發者提升效率的。試想想你腦袋裡有一堆想法,但是開發編碼效率太低導致想法都丟失了或者興趣消失了多可怕對不。好了廢話不多說,這裡介

Java開發技巧:HttpClient工具類

前言 大多數Java應用程式都會通過HTTP協議來呼叫介面訪問各種網路資源,JDK也提供了相應的HTTP工具包,但是使用起來不夠方便靈活,所以我們可以利用Apache的HttpClient來封裝一個具有訪問HTTP協議基本功能的高效工具類,為後續開發使用提供方便。 文章要點: HttpClient使用流程

Java開發技巧:自定義Maven依賴

我們在專案開發中經常會將一些通用的類、方法等內容進行打包,打造成我們自己的開發工具包,作為各個專案的依賴來使用。 思路 一般的做法是將專案匯出成Jar包,然後在其它專案中將其匯入,看起來很輕鬆,但是存在一個問題,如果你修改了Jar包的內容,豈不是要每個專案都重新匯入,這顯

Java開發技巧:使用Apache POI讀取Excel

前言 在資料倉庫中,ETL最基礎的步驟就是從資料來源抽取所需的資料,這裡所說的資料來源並非僅僅是指資料庫,還包括excel、csv、xml等各種型別的資料介面檔案,而這些檔案中的資料不一定是結構化儲存的,比如各種各樣的報表檔案,往往是一些複雜的表格結構,其中不僅有我們需要的資料,還有一些冗餘的、無價值的資料

程式設計技巧-----前端相關字尾檔案的記錄

最近在學習Vue.js的原始碼,過程之中遇到了一些除了html,css,js字尾的檔案,本著好奇寶寶的原則,我做了一個收集,在這裡做一個分享,希望有跟我一樣坑在前端路上的小白少踩點彎路。 .md: md 表示的是 MarkDown,是一種文字格式的檔案,通過新增一些符號讓文

程式設計技巧-------前端編碼規範

年末了最近在整理檔案,順手寫了一套編碼規範,來源於工作和習慣。雖然程式設計師多不勝數,但是不是每一個程式設計師都寫的一手好程式碼,不論邏輯,單是看上去就沒有讓人讀的慾望。寫程式碼跟寫書寫文件一樣,簡單整潔易明瞭是通用的原則,接觸前端已經四個月,好死不死還是寫了不少的程式碼,爬

Allegro設定及實用技巧

       此時就需要將所有地址線和控制線設定到統一class中,單獨進行shape to via的間距約束。此時最好不要將此約束設定到DDR的region中進行,因為地址線不僅僅在DDR區域大小中進行,採用的方法是在網路中直接對該net class進行約束即可,如下圖所示:

你可能不知道的程式碼技巧

  在我們日常寫程式碼過程中經常會遇到一些非常簡單但是必須需要書寫的程式碼,但是使得我們程式碼不夠優雅,比如判空,獲取hash值,判斷是否相等,這些程式碼簡單,但是經常需要書寫,那我們能不能用更加優雅的處理它們?        今天介紹一下如何一行程式碼處理那些板樣程式