作者: admin

  • 经验分享:10个简单实用的jQuery技巧

    尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库。今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段。

    平滑滚动到锚点

    [code]// 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;
    });
    });[/code]
    缩放图片
    虽然图片应该在服务器端缩放,不过如果服务器端未做缩放,需要再客户端缩放的时候,可以使用下面这个方便的代码片段:

    [code]$(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
    });[/code]

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

    [code]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);
    });[/code]
    检测密码强度

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

    [code]$(‘#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;
    });[/code]
    均衡元素的高度

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

    [code]var maxHeight = 0;

    $(“div”).each(function(){
    if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
    });

    $(“div”).height(maxHeight);[/code]

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

    [code]$(‘.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”)’);
    });[/code]

    解析 JSON 字符串

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

    [code]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();
    });[/code]

    隔行换色

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

    [code]$(‘div:odd’).css(“background-color”, “#F4F4F8”);
    $(‘div:even’).css(“background-color”, “#EFF1F1”);[/code]

    预加载图片

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

    [code]var nextimage = “/images/some-image.jpg”;
    $(document).ready(function(){
    window.setTimeout(function(){
    var img = $(“<img>”).attr(“src”, nextimage).load(function(){
    //all done
    });
    }, 100);
    });[/code]

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

    [code]<div class=”myBox”>
    blah blah blah.
    <a href=”http://google.com”>link</a>
    </div>[/code]
    下面的 jQuery 代码让整个 Div 可点击:

    [code]$(“.myBox”).click(function(){
    window.location=$(this).find(“a”).attr(“href”);
    return false;
    });[/code]
    参考

  • 实现图片的形状遮罩和动画放大效果

    今天,给大家分享来自 Quess 的如何实现图片的形状遮罩和放大动画效果。在很多作品集网站中,我们经常能看到这样的造型和效果。就个人而言,我觉得我们不能因为旧的浏览器不支持,我们就放弃在项目中使用 HTML5 或者 CSS3 技术。我们应该“奖励”使用现代浏览器的用户,给他们一个更好的用户体验。

    pic_zhezhao
    效果演示
    详细教程
    代码下载

  • Respond.js让IE6/7/8支持 CSS3 Media Query

    css 媒体查询

    CSS3 Media Queries 实现响应式设计。其实就是根本屏幕的宽度不同加载不同的样式,也可以针对不同的区域如果改变屏幕宽度,也加载不同样式。

    Max Width

    下面的样式会在可视区域的宽度小于 600px 的时候被应用。

    [code]@media screen and (max-width: 600px) {
    .class {
    background: #ccc;
    }
    }[/code]

    如果你想链接到一个单独的样式表,把下面的代码放在<head>标签里。

    [code]<link rel=”stylesheet” media=”screen and (max-width: 600px)” href=”small.css” />[/code]

    Min Width

    下面的样式会在可视区域的宽度大于 900px 的时候被应用。

    [code]@media screen and (min-width: 900px) {
    .class {
    background: #666;
    }
    }[/code]

    Multiple Media Queries

    你还可以使用过个匹配条件,下面的样式会在可视区域的宽度在 600px 和 900px 之间的时候被应用。

    [code]@media screen and (min-width: 600px) and (max-width: 900px) {
    .class {
    background: #333;
    }
    }[/code]

    可以参考以下的文章来源:http://www.cnblogs.com/lhb25/archive/2012/12/04/css3-media-queries.html
    测试1

  • jquery 导航背景图片滑动效果

    nav_li_bg

    利用jquery实现导航背景图片滑动效果,这样的效果网站有而且兼容各种低版本IE6浏览器,为网站添加个性效果。

    制作方法及演示效果

    源文件下载

  • css前端框架bootstrap

    涉及网站的都知道程序都有自己的程序框架,框架其实就是把一些常用的功能打包起来需要的时候在调用出来即可,脚本程序都有自己的框架现在都很成熟。现在前端也有自己的框架开发,那就是bootstrap。因为功能的强大和缩减了开发的时间短时间内已经响应全球,更多的请参考http://www.bootcss.com/