用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - javascript代码库

var $window = $(window), gardenCtx, gard

2014-05-20 作者: 爱你1314举报

[javascript]代码库

// variables 
 
var $window = $(window), gardenCtx, gardenCanvas, $garden, garden; 
 
var clientWidth = $(window).width(); 
 
var clientHeight = $(window).height(); 
 
    
 
$(function () { 
 
    // setup garden 
 
    $loveHeart = $("#loveHeart"); 
 
    var offsetX = $loveHeart.width() / 2; 
 
    var offsetY = $loveHeart.height() / 2 - 55; 
 
    $garden = $("#garden"); 
 
    gardenCanvas = $garden[0]; 
 
    gardenCanvas.width = $("#loveHeart").width(); 
 
    gardenCanvas.height = $("#loveHeart").height() 
 
    gardenCtx = gardenCanvas.getContext("2d"); 
 
    gardenCtx.globalCompositeOperation = "lighter"
 
    garden = new Garden(gardenCtx, gardenCanvas); 
 
        
 
    $("#content").css("width", $loveHeart.width() + $("#code").width()); 
 
    $("#content").css("height", Math.max($loveHeart.height(), $("#code").height())); 
 
    $("#content").css("margin-top", Math.max(($window.height() - $("#content").height()) / 2, 10)); 
 
    $("#content").css("margin-left", Math.max(($window.width() - $("#content").width()) / 2, 10)); 
 
    
 
    // renderLoop 
 
    setInterval(function () { 
 
        garden.render(); 
 
    }, Garden.options.growSpeed); 
 
}); 
 
    
 
$(window).resize(function() { 
 
    var newWidth = $(window).width(); 
 
    var newHeight = $(window).height(); 
 
    if (newWidth != clientWidth && newHeight != clientHeight) { 
 
        location.replace(location); 
 
    
 
}); 
 
    
 
function getHeartPoint(angle) { 
 
    var t = angle / Math.PI; 
 
    var x = 19.5 * (16 * Math.pow(Math.sin(t), 3)); 
 
    var y = - 20 * (13 * Math.cos(t) - 5 * Math.cos(2 * t) - 2 * Math.cos(3 * t) - Math.cos(4 * t)); 
 
    return new Array(offsetX + x, offsetY + y); 
 
 
    
 
function startHeartAnimation() { 
 
    var interval = 50; 
 
    var angle = 10; 
 
    var heart = new Array(); 
 
    var animationTimer = setInterval(function () { 
 
        var bloom = getHeartPoint(angle); 
 
        var draw = true
 
        for (var i = 0; i < heart.length; i++) { 
 
            var p = heart[i]; 
 
            var distance = Math.sqrt(Math.pow(p[0] - bloom[0], 2) + Math.pow(p[1] - bloom[1], 2)); 
 
            if (distance < Garden.options.bloomRadius.max * 1.3) { 
 
                draw = false
 
                break
 
            
 
        
 
        if (draw) { 
 
            heart.push(bloom); 
 
            garden.createRandomBloom(bloom[0], bloom[1]); 
 
        
 
        if (angle >= 30) { 
 
            clearInterval(animationTimer); 
 
            showMessages(); 
 
        } else
 
            angle += 0.2; 
 
        
 
    }, interval); 
 
 
    
 
(function($) { 
 
    $.fn.typewriter = function() { 
 
        this.each(function() { 
 
            var $ele = $(this), str = $ele.html(), progress = 0; 
 
            $ele.html(''); 
 
            var timer = setInterval(function() { 
 
                var current = str.substr(progress, 1); 
 
                if (current == '<') { 
 
                    progress = str.indexOf('>', progress) + 1; 
 
                } else
 
                    progress++; 
 
                
 
                $ele.html(str.substring(0, progress) + (progress & 1 ? '_' : '')); 
 
                if (progress >= str.length) { 
 
                    clearInterval(timer); 
 
                
 
            }, 75); 
 
        }); 
 
        return this
 
    }; 
 
})(jQuery); 
 
    
 
function timeElapse(date){ 
 
    var current = Date(); 
 
    var seconds = (Date.parse(current) - Date.parse(date)) / 1000; 
 
    var days = Math.floor(seconds / (3600 * 24)); 
 
    seconds = seconds % (3600 * 24); 
 
    var hours = Math.floor(seconds / 3600); 
 
    if (hours < 10) { 
 
        hours = "0" + hours; 
 
    
 
    seconds = seconds % 3600; 
 
    var minutes = Math.floor(seconds / 60); 
 
    if (minutes < 10) { 
 
        minutes = "0" + minutes; 
 
    
 
    seconds = seconds % 60; 
 
    if (seconds < 10) { 
 
        seconds = "0" + seconds; 
 
    
 
    var result = "<span class=\"digit\">" + days + "</span> days <span class=\"digit\">" + hours + "</span> hours <span class=\"digit\">" + minutes + "</span> minutes <span class=\"digit\">" + seconds + "</span> seconds";  
 
    $("#elapseClock").html(result); 
 
 
    
 
function showMessages() { 
 
    adjustWordsPosition(); 
 
    $('#messages').fadeIn(5000, function() { 
 
        showLoveU(); 
 
    }); 
 
 
    
 
function adjustWordsPosition() { 
 
    $('#words').css("position", "absolute"); 
 
    $('#words').css("top", $("#garden").position().top + 195); 
 
    $('#words').css("left", $("#garden").position().left + 70); 
 
 
    
 
function adjustCodePosition() { 
 
    $('#code').css("margin-top", ($("#garden").height() - $("#code").height()) / 2); 
 
 
    
 
function showLoveU() { 
 
    $('#loveu').fadeIn(3000); 
 
}

[代码运行效果截图]


var $window = $(window), gardenCtx, gard

[源代码打包下载]




网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...