91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

前端開發必知的jQuery小技巧有哪些

發布時間:2021-08-19 09:35:45 來源:億速云 閱讀:150 作者:小新 欄目:web開發

這篇文章主要介紹前端開發必知的jQuery小技巧有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

1、返回頂部按鈕

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

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

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

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

2、預加載圖像

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

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

3、檢查圖像是否加載

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

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

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

4、自動修復破壞的圖像

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

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

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

5、懸停切換類

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

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

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

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

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

6、禁用輸入字段

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

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

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

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

7、停止加載鏈接

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

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

8、淡入/滑動切換

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

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

9、簡單的手風琴

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

// Close all panels
$('#accordion').find('.content').hide();
// Accordion
$('#accordion').find('.accordion-header').click(function () {
var next = $(this).next();
next.slideToggle('fast');
$('.content').not(next).slideUp('fast');
return false;
});

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

10、讓兩個div高度相同

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

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

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

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

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

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

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

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

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

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

12、通過文本查找元素

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

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

13、在改變Visibility時觸發

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

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

14、AJAX調用錯誤處理

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

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

15、鏈式插件調用

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

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

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

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

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

var $elem = $('#elem');
$elem.hide();
$elem.html('bla');
$elem.otherStuff();

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

以上是“前端開發必知的jQuery小技巧有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潢川县| 许昌县| 壶关县| 忻城县| 镇远县| 永州市| 太仓市| 正定县| 西安市| 南乐县| 神木县| 五莲县| 大埔区| 繁昌县| 比如县| 东宁县| 濮阳市| 江陵县| 祁阳县| 巨野县| 柳江县| 甘德县| 疏附县| 墨竹工卡县| 肥乡县| 庄河市| 康保县| 巍山| 镇康县| 通海县| 龙海市| 鹰潭市| 安丘市| 梨树县| 会理县| 舟山市| 元阳县| 新巴尔虎左旗| 青铜峡市| 屯门区| 双辽市|