成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導(dǎo)航首頁 ? 技術(shù)教程 ? jQuery常用的一些技巧匯總
全站頭部文字 我要出現(xiàn)在這里
jQuery常用的一些技巧匯總 672 2024-03-09   

引子

jQuery的存在,讓學(xué)習(xí)前端開發(fā)的人感到前端越來越容易入門了,用簡單的幾行代碼就可以實現(xiàn)需求,但是,你真的會用jQuery么,當代碼運行后無法看到自己預(yù)期的效果,是不是覺得jQuery出了問題,其實,問題還是出在了自己會不會用上面。下面列舉一些開發(fā)中經(jīng)常遇到的應(yīng)用實例,發(fā)現(xiàn)一下另一個不同的jQuery世界。

回到頂部按鈕

利用jQuery里的animate和scrollTop方法,你便不需要使用插件創(chuàng)建簡單的滾動到頂部動畫。

$('.top').click(function (e) {
 e.preventDefault();
 $('html, body').animate({scrollTop: 0}, 800);
});

通過scrollTop的值來改變你想要滾動到的位置。其實你就是做了:在接下來的800毫秒中讓頁面滾動,直到它滾動到文檔的頂部。

圖片預(yù)加載

如果你的網(wǎng)頁使用了很多隱藏圖片文件(例如:鼠標懸停展示的圖片),那么圖片的預(yù)加載是有意義的:

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

判斷圖片是否加載完

有時候你可能需要檢查圖像是否已經(jīng)加載完成,以便于可以繼續(xù)執(zhí)行相應(yīng)的js代碼:

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

曾經(jīng)遇到過的使用場景:有些元素需要按圖片的實際尺寸來設(shè)置其大小,以絕對布置方式放置。元素的大小設(shè)置可以在圖片加載完成后計算。

自動修補破損圖像

如果你碰巧發(fā)現(xiàn)在你的網(wǎng)站上發(fā)現(xiàn)破損的圖像鏈接,一個個去替代他們是痛苦的。這個簡單的代碼可以節(jié)省很多的麻煩:

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

即使你沒有任何斷開的鏈接,加入這代碼也不會有任何影響。

禁用輸入

有時你可能需要用表單的提交按鈕或者某個輸入框直到用戶執(zhí)行了某個動作(比如:檢查“我已閱讀條款”復(fù)選框)。在你的輸入框上設(shè)置disabled屬性,然后當你需要的時候啟用該屬性:

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

你需要做的只是需要在輸入框上再次運行prop方法,但設(shè)置的被禁用值是false:

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

對地不了解prop函數(shù)的jQuery開發(fā)者來說,最常使用的是attr函數(shù),可能開發(fā)很多程序都沒有發(fā)現(xiàn)什么問題,但是,在開發(fā)例如checkbox、radio、select時,會發(fā)現(xiàn)使用attr無法讓屬性生效,以為是jQuery的bug,下面來說說attr和prop的使用建議:

在遇到要獲取或設(shè)置checked,selected,readonly和disabled等屬性時,用prop方法顯然更好

使兩個DIV同等高度

有時你會想要兩個DIV有相同的高度,無論他們都有什么內(nèi)容:

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

這個例子設(shè)置了DIV的最小高度,這意味著它的高度只可以比這個設(shè)置的高度大而不能小。然而,一個更靈活的方法是循環(huán)的一組元素,并設(shè)置將最高元素的高度作為高度:

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());
});

根據(jù)文本獲取元素

通過jQuery中的contains()選擇器,你能找到一個元素內(nèi)的文本內(nèi)容。如果文本不存在,則這個元素將被隱藏:

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

可見變化的觸發(fā)

當用戶不再聚焦或者重新聚焦一個標簽時觸發(fā)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!');
 }
});


主站蜘蛛池模板: 红蔷薇 电视剧| 《风流艳妇》| 漂亮孕妇突然肚子疼视频| 桥梁工程师职称论文| 在线观看韩国电影| 我和大姨子| 啥啥| 天降奇缘 电视剧| 在灿烂阳光下歌谱完整| 广西柳州莫青作爱视频13| 王妍个人资料简介| 她和他和他和他| 浙江卫视节目回放入口| 威尼斯的资料| ktv视频| 男生的帅气头像| 血色恶魔| 一闪一闪亮晶晶钢琴谱简谱 | 陈宝国主演影视剧| 湖南卫视节目表| 睡前搞笑故事| laizi| 冯友薇| 经典常谈周易第二读书笔记 | 大浴女电视剧所有演员表| 火火| 陈宝莲徐锦江夜半2普通话| 2018年党课主题及内容| 冬去春来电视剧| 破天荒| 杨贵妃黄色片| 大兵相声小品蠢得死| 曲丹个人资料简介| 哈尔的移动城堡日语版在线播放| 朴智勋| 九九九九九九伊人| 远方的山楂树演员表全部| 除暴电影| 电影百鸟朝凤免费完整版| 猎仇者演员表| 新民歌|

?。?!站長長期在線接?。?!

網(wǎng)站、小程序:定制開發(fā)/二次開發(fā)/仿制開發(fā)等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103