zoukankan      html  css  js  c++  java
  • 10个简单实用的 jQuery 代码片段

    平滑滚动到锚点

      这个功能很常见,在网站底部添加一个让访客快速回到页面顶部的功能,下面是实现这个功能的示例代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // HTML:
    // <h1 id="anchor">Lorem Ipsum</h1>
    // <p><a href="#anchor" class="topLink">Back to Top</a></p>
     
    $(document).ready(function() {
        $("a.topLink").click(function() {
            $("html, body").animate({
                scrollTop: $($(this).attr("href")).offset().top + "px"
            }, {
                duration: 500,
                easing: "swing"
            });
            return false;
        });
    });

    缩放图片

      虽然图片应该在服务器端缩放,不过如果服务器端未做缩放,需要再客户端缩放的时候,可以使用下面这个方便的代码片段:

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

    滚动时自动加载内容

      很多网站使用了流行的瀑布图布局,这种类型的网站在页面滚动的时候会自动加载内容。下面这段代码让你能够把这个功能搬到你的网站上。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    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);
    });

    检测密码强度

      在表单功能中,经常会有检测用户输入的密码强度的功能,下面这个代码片段使用正则表达式来检测密码是否足够安全,当然记得在服务端也进行表单验证。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $('#pass').keyup(function(e) {
         var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*W).*$", "g");
         var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
         var enoughRegex = new RegExp("(?=.{6,}).*", "g");
         if (false == enoughRegex.test($(this).val())) {
                 $('#passstrength').html('More Characters');
         } else if (strongRegex.test($(this).val())) {
                 $('#passstrength').className = 'ok';
                 $('#passstrength').html('Strong!');
         } else if (mediumRegex.test($(this).val())) {
                 $('#passstrength').className = 'alert';
                 $('#passstrength').html('Medium!');
         } else {
                 $('#passstrength').className = 'error';
                 $('#passstrength').html('Weak!');
         }
         return true;
    });

    均衡元素的高度

      使用纯 CSS代码实现均衡元素的高度比较困难,而下面这段 jQuery 代码会根据最高的元素来均衡所有的 Div 元素。

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

    修复 IE6 PNG 问题

      至今,IE6 在国内仍然占据了大量的份额,因此在 Web 开发中仍然需要考虑 IE6 的兼容问题。比较常用的 IE6 PNG 图片问题,下面这段代码可以方便的修复。

    1
    2
    3
    4
    5
    $('.pngfix').each( function() {
       $(this).attr('writing-mode', 'tb-rl');
       $(this).css('background-image', 'none');
       $(this).css( 'filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="path/to/image.png",sizingMethod="scale")');
    });

    解析 JSON 字符串

      使用 jQuery 解析 JSON 数据并不复杂。下面是一个高效解析 JSON 数据并将其追加到您的网页的例子。

    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
    27
    28
    29
    30
    31
    32
    function parseJson(){
        //Start by calling the json object, I will be using a
            //file from my own site for the tutorial
        //Then we declare a callback function to process the data
        $.getJSON('hcj.json',getPosts);
      
        //The process function, I am going to get the title,
            //url and excerpt for 5 latest posts
        function getPosts(data){
            //Start a for loop with a limit of 5
            for(var i = 0; i < 5; i++){
                var strPost = '<h2>'
                          + data.posts[i].title
                          + '</h2>'
                          + '<p>'
                          + data.posts[i].excerpt
                          + '</p>'
                          + '<a href="'
                          + data.posts[i].url
                          + '" title="Read '
                          + data.posts[i].title
                          + '">Read ></a>';
                //Append the body with the string
                $('body').append(strPost);
            }
        }
    }
      
    //Fire off the function in your document ready
    $(document).ready(function(){
        parseJson();                  
    });

    隔行换色

      这是一个很老的功能了,在大的列表或表格中,隔行颜色可以大大提高内容的可读性。下面的代码可以非常简单实现这个功能。

    $('div:odd').css("background-color", "#F4F4F8");
    $('div:even').css("background-color", "#EFF1F1");

    预加载图片

      你是否注意到 facebook 相册的图片加载速度特别快?那是因为在你看到这些图片之前已经预加载到你的浏览器缓存中了。下面是实现这个类似功能的代码示例:

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

    让整个 Div 可点击

       这是实现链接的父 Div 也能够点击的简单方法,HTML 示例代码如下:

    1
    2
    3
    4
    <div class="myBox">
         blah blah blah.
        <a href="http://google.com">link</a>
    </div>

      下面的 jQuery 代码让整个 Div 可点击:

    1
    2
    3
    4
    $(".myBox").click(function(){
         window.location=$(this).find("a").attr("href");
         return false;
    });
  • 相关阅读:
    HashMap 使用小结
    linux下的文本处理命令sed&awk&grep
    HashMap和Hashtable的区别 .Properties
    Linux awk简简单单
    linux配置java环境变量(详细)
    linux后台运行程序及恢复
    为什么需要 单例设计模式(Singleton)?
    Linux文本处理命令
    使用Perf4J进行性能分析和监控
    sqlldr的用法总结
  • 原文地址:https://www.cnblogs.com/xtxk110/p/11654020.html
Copyright © 2011-2022 走看看