zoukankan      html  css  js  c++  java
  • 直接拿来用的15个jQuery代码片段

    1.预加载图片

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    (function($) {
      var cache = [];
      // Arguments are image paths relative to the current page.
      $.preLoadImages = function() {
        var args_len = arguments.length;
        for (var i = args_len; i--;) {
          var cacheImage = document.createElement('img');
          cacheImage.src = arguments[i];
          cache.push(cacheImage);
        }
      }
    jQuery.preLoadImages("image1.gif", "/path/to/image2.png");

      源码

      2. 让页面中的每个元素都适合在移动设备上展示

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var scr = document.createElement('script');
    document.body.appendChild(scr);
    scr.onload = function(){
        $('div').attr('class', '').attr('id', '').css({
            'margin' : 0,
            'padding' : 0,
            'width': '100%',
            'clear':'both'
        });
    };

      源码

      3.图像等比例缩放

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $(window).bind("load", function() {
        // IMAGE RESIZE
        $('#product_cat_list img').each(function() {
            var maxWidth = 120;
            var maxHeight = 120;
            var ratio = 0;
            var width = $(this).width();
            var height = $(this).height();
            if(width > maxWidth){
                ratio = maxWidth / width;
                $(this).css("width", maxWidth);
                $(this).css("height", height * ratio);
                height = height * ratio;
            }
            var width = $(this).width();
            var height = $(this).height();
            if(height > maxHeight){
                ratio = maxHeight / height;
                $(this).css("height", maxHeight);
                $(this).css("width", width * ratio);
                width = width * ratio;
            }
        });
        //$("#contentpage img").show();
        // IMAGE RESIZE
    });

      源码

      4.返回页面顶部

    1
    2
    3
    4
    5
    6
    7
    8
    // Back To Top
    $(document).ready(function(){
      $('.top').click(function() { 
         $(document).scrollTo(0,500); 
      });
    });
    //Create a link defined with the class .top
    <a href="#" class="top">Back To Top</a>

      源码

      5.使用jQuery打造手风琴式的折叠效果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    var accordion = {
         init: function(){
               var $container = $('#accordion');
               $container.find('li:not(:first) .details').hide();
               $container.find('li:first').addClass('active');
               $container.on('click','li a',function(e){
                      e.preventDefault();
                      var $this = $(this).parents('li');
                      if($this.hasClass('active')){
                             if($('.details').is(':visible')) {
                                    $this.find('.details').slideUp();
                             } else {
                                    $this.find('.details').slideDown();
                             }
                      } else {
                             $container.find('li.active .details').slideUp();
                             $container.find('li').removeClass('active');
                             $this.addClass('active');
                             $this.find('.details').slideDown();
                      }
               });
         }
    };

      6.通过预加载图片廊中的上一幅下一幅图片来模仿Facebook的图片展示方式

    1
    2
    3
    4
    5
    6
    7
    8
    var nextimage = "/images/some-image.jpg";
    $(document).ready(function(){
    window.setTimeout(function(){
    var img = $("").attr("src", nextimage).load(function(){
    //all done
    });
    }, 100);
    });

      源码

      7.使用jQuery和Ajax自动填充选择框

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $(function(){
    $("select#ctlJob").change(function(){
    $.getJSON("/select.php",{id: $(this).val(), ajax: 'true'}, function(j){
    var options = '';
    for (var i = 0; i < j.length; i++) {
    options += '
    ' + j[i].optionDisplay + '
    ';
    }
    $("select#ctlPerson").html(options);
    })
    })
    })

      源码

      8.自动替换丢失的图片

    1
    2
    3
    4
    5
    6
    7
    8
    // Safe Snippet
    $("img").error(function () {
        $(this).unbind("error").attr("src", "missing_image.gif");
    });
    // Persistent Snipper
    $("img").error(function () {
        $(this).attr("src", "missing_image.gif");
    });

      源码

      9.在鼠标悬停时显示淡入/淡出特效

    1
    2
    3
    4
    5
    6
    7
    8
    $(document).ready(function(){
        $(".thumbs img").fadeTo("slow", 0.6); // This sets the opacity of the thumbs to fade down to 60% when the page loads
        $(".thumbs img").hover(function(){
            $(this).fadeTo("slow", 1.0); // This should set the opacity to 100% on hover
        },function(){
            $(this).fadeTo("slow", 0.6); // This should set the opacity back to 60% on mouseout
        });
    });

      源码

      10.清空表单数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function clearForm(form) {
      // iterate over all of the inputs for the form
      // element that was passed in
      $(':input', form).each(function() {
        var type = this.type;
        var tag = this.tagName.toLowerCase(); // normalize case
        // it's ok to reset the value attr of text inputs,
        // password inputs, and textareas
        if (type == 'text' || type == 'password' || tag == 'textarea')
          this.value = "";
        // checkboxes and radios need to have their checked state cleared
        // but should *not* have their 'value' changed
        else if (type == 'checkbox' || type == 'radio')
          this.checked = false;
        // select elements need to have their 'selectedIndex' property set to -1
        // (this works for both single and multiple select elements)
        else if (tag == 'select')
          this.selectedIndex = -1;
      });
    };

      源码

      11.预防对表单进行多次提交

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $(document).ready(function() {
      $('form').submit(function() {
        if(typeof jQuery.data(this, "disabledOnSubmit") == 'undefined') {
          jQuery.data(this, "disabledOnSubmit", { submited: true });
          $('input[type=submit], input[type=button]', this).each(function() {
            $(this).attr("disabled", "disabled");
          });
          return true;
        }
        else
        {
          return false;
        }
      });
    });

      源码

      12.动态添加表单元素

    1
    2
    3
    4
    5
    //change event on password1 field to prompt new input
    $('#password1').change(function() {
            //dynamically create new input and insert after password1
            $("#password1").append("");
    });

      源码

      13.让整个Div可点击

    1
    2
    blah blah blah. link
    The following lines of jQuery will make the entire div clickable: $(".myBox").click(function(){ window.location=$(this).find("a").attr("href"); return false; });

      源码

      14.平衡高度或Div元素

    1
    2
    3
    4
    5
    var maxHeight = 0;
    $("div").each(function(){
       if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
    });
    $("div").height(maxHeight);

      源码

      15. 在窗口滚动时自动加载内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var loading = false;
    $(window).scroll(function(){
        if((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
            if(loading == false){
                loading = true;
                $('#loadingbar').css("display","block");
                $.get("load.php?start="+$('#loaded_max').val(), function(loaded){
                    $('body').append(loaded);
                    $('#loaded_max').val(parseInt($('#loaded_max').val())+50);
                    $('#loadingbar').css("display","none");
                    loading = false;
                });
            }
        }
    });
    $(document).ready(function() {
        $('#loaded_max').val(50);
    });
  • 相关阅读:
    Spring Boot全日志设置
    SpringBoot整合Quartz
    Kubernetes网络方案的三大类别和六个场景
    微服务化之缓存的设计
    金融创新业务基于容器云的微服务化实践
    致传统企业朋友:不够痛就别微服务,有坑 (1)
    致传统企业朋友:不够痛就别微服务,有坑 (2)
    The Beam Model:Stream & Tables翻译(上)
    细说Mammut大数据系统测试环境Docker迁移之路
    [译] 关于 SPA,你需要掌握的 4 层 (1)
  • 原文地址:https://www.cnblogs.com/EricChan/p/3633707.html
Copyright © 2011-2022 走看看