乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      前端程序員應(yīng)該知道的 15 個(gè) jQuery 小技巧 – 碼農(nóng)網(wǎng)

       spzproot 2015-11-19

      下面這些簡單的小技巧能夠幫助你玩轉(zhuǎn)jQuery。

      • 返回頂部按鈕
      • 預(yù)加載圖像
      • 檢查圖像是否加載
      • 自動(dòng)修復(fù)破壞的圖像
      • 懸停切換類
      • 禁用輸入字段
      • 停止加載鏈接
      • 切換淡入/幻燈片
      • 簡單的手風(fēng)琴
      • 讓兩個(gè)div高度相同
      • 在新標(biāo)簽頁/窗口打開外部鏈接
      • 通過文本查找元素
      • 在改變visibility時(shí)觸發(fā)
      • AJAX調(diào)用錯(cuò)誤處理
      • 鏈?zhǔn)讲寮{(diào)用

      返回頂部按鈕

      通過使用jQuery中的animate 和scrollTop 方法,不用插件就可以創(chuàng)建一個(gè)滾動(dòng)到頂部的簡單動(dò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 的值可以更改你想要放置滾動(dòng)條的位置。所有你真正需要做的是在800毫秒的時(shí)間內(nèi)設(shè)置文檔主體的動(dòng)畫,直到它滾動(dòng)到文檔的頂部。

      注:小心scrollTop的一些錯(cuò)誤行為。

      預(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');

      檢查圖像是否加載

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

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

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

      自動(dòng)修復(fù)破壞的圖像

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

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

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

      懸停切換類

      假設(shè)你希望當(dāng)用戶將鼠標(biāo)懸停在可點(diǎn)擊的元素上時(shí),它會改變顏色。那么你可以在用戶懸停的時(shí)候添加類到元素中,反之則刪除類:

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

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

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

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

      禁用輸入字段

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

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

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

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

      停止加載鏈接

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

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

      淡入/滑動(dòng)切換

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

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

      簡單的手風(fēng)琴

      這是一個(gè)可快速生成手風(fēng)琴的簡單方法:

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

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

      讓兩個(gè)div高度相同

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

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

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

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

      在新標(biāo)簽頁/窗口打開外部鏈接

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

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

      注意:window.location.origin 在IE10中無效。修復(fù)的時(shí)候要小心這個(gè)問題。

      通過文本查找元素

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

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

      在改變Visibility時(shí)觸發(fā)

      當(dāng)用戶不再關(guān)注某個(gè)tab,或重新聚焦原來的那個(gè)tab上時(shí),觸發(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)用錯(cuò)誤處理

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

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

      鏈?zhǔn)讲寮{(diào)用

      jQuery允許“鏈?zhǔn)健辈寮姆椒ㄕ{(diào)用,以減輕反復(fù)查詢DOM并創(chuàng)建多個(gè)jQuery對象的過程。比方說,下面的代碼片段代表了你的插件方法調(diào)用:

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

      通過使用鏈?zhǔn)?,可以大大改善?/p>

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

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

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

      鏈?zhǔn)胶透咚倬彺娴姆椒ǘ际莏Query中可以讓代碼變得更短和更快的代最佳做法。

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約