• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

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

    來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 20:30:25
    文檔

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

    前端程序員應該知道的jQuery小技巧:通過使用jQuery中的animate 和scrollTop 方法,不用插件就可以創(chuàng)建一個滾動到頂部的簡單動畫:// Back to top $('.top').click(function (e) { e.preventDefault(); $('html, body').animate({s
    推薦度:
    導讀前端程序員應該知道的jQuery小技巧:通過使用jQuery中的animate 和scrollTop 方法,不用插件就可以創(chuàng)建一個滾動到頂部的簡單動畫:// Back to top $('.top').click(function (e) { e.preventDefault(); $('html, body').animate({s
    1116.jpg

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

    // 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毫秒的時間內(nèi)設置文檔主體的動畫,直到它滾動到文檔的頂部。

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

    預加載圖像

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

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

    檢查圖像是否加載

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

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

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

    自動修復破壞的圖像

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

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

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

    懸停切換類

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

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

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

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

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

    禁用輸入字段

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

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

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

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

    停止加載鏈接

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

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

    淡入/滑動切換

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

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

    簡單的手風琴

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

    // 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元素,這樣它就可以運行工作了。

    讓兩個div高度相同

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

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

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

    在一個新的瀏覽器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中無效。修復的時候要小心這個問題。

    在改變Visibility時觸發(fā)

    當用戶不再關注某個tab,或重新聚焦原來的那個tab上時,觸發(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!');
     }
    });

    AJAX調(diào)用錯誤處理

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

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

    鏈式插件調(diào)用

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

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

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

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

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

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

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

    英文原文:jQuery Tips Everyone Should Know

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

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

    前端程序員應該知道的jQuery小技巧:通過使用jQuery中的animate 和scrollTop 方法,不用插件就可以創(chuàng)建一個滾動到頂部的簡單動畫:// Back to top $('.top').click(function (e) { e.preventDefault(); $('html, body').animate({s
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 精品一区二区无码AV| 好湿好大硬得深一点动态图91精品福利一区二区 | 亚洲а∨天堂久久精品9966| 91久久精品91久久性色| 四虎精品影库4HUTV四虎| 国产偷亚洲偷欧美偷精品| 久久香蕉国产线看观看精品yw| 午夜亚洲av永久无码精品| 欧美精品华人在线| 精品国产三级a∨在线| 亚洲日韩精品A∨片无码| 国产精品极品| 亚洲国产精品久久久久婷婷老年| 欧美亚洲综合免费精品高清在线观看| 亚洲欧美精品午睡沙发| 亚洲一区精品中文字幕| 99精品国产在热久久| 久久99精品久久久久久久久久| 国产精品国产AV片国产| 精品九九久久国内精品| 99在线精品视频观看免费| 久久精品综合一区二区三区| 亚洲国产精品成人精品无码区| 亚洲精品宾馆在线精品酒店| 99久久精品国产一区二区蜜芽 | 国产三级精品三级在专区| 国产成人精品无码一区二区| 亚洲午夜福利精品久久| 国产成人精品久久| 亚洲精品综合一二三区在线 | 精品一区二区三区四区| 亚洲国产成人一区二区精品区| 66精品综合久久久久久久| 精品精品国产高清a毛片牛牛| 四虎国产精品成人免费久久| 精品久久久久久99人妻| 国产区精品福利在线观看精品| 欧美精品v欧洲精品| 亚洲av无码精品网站| 亚洲av永久无码精品国产精品 | 国产精品无码专区在线观看|