藏地传奇js

http://zd.163.com/m/zhenyan/

js很厉害,有很多值得学习的地方,记录下来。

http://res.nie.netease.com/zdcq/qt/13/0625_zhenyan/js/index.js

var ZANTEMP;

//cookies
jQuery.cookie = function(name, value, options) {
    if (typeof value != ‘undefined‘) { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = ‘‘;
            options.expires = -1;
        }
        var expires = ‘‘;
        if (options.expires && (typeof options.expires == ‘number‘ || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == ‘number‘) {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = ‘; expires=‘ + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        var path = options.path ? ‘; path=‘ + options.path : ‘‘;
        var domain = options.domain ? ‘; domain=‘ + options.domain : ‘‘;
        var secure = options.secure ? ‘; secure‘ : ‘‘;
        document.cookie = [name, ‘=‘, encodeURIComponent(value), expires, path, domain, secure].join(‘‘);
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != ‘‘) {
            var cookies = document.cookie.split(‘;‘);
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + ‘=‘)) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};



//chrome上传预览
function handleFiles(files) {
    if (!$.browser.msie||($.browser.msie&& $.browser.version=="10.0")){
        //遍历files并处理
        files=files.files;
        for (var i = 0; i < files.length; i++) {
            var file = files[i];
            var imageType = /image.*/;
            //通过type属性进行图片格式过滤
            if (!file.type.match(imageType)) {
                continue;
            }
            //读入文件
            var reader = new FileReader();
            reader.onload = function (e) {
                //e.target.result返回的即是图片的dataURI格式的内容
                var imgData = e.target.result,
                    img = document.createElement(‘img‘);
                //img.src = imgData;
                //展示img
                $(".pre-img").attr("src", imgData).css("visibility", "visible");
            }
            reader.readAsDataURL(file);
        }

    }else{//IE
        var html="<div class=‘pre-img‘></div>";
        $(‘.pre-div‘).html(‘‘).html(html);
//采用滤镜效果生成图片预览
       // files.select();
        path =$(‘#upload-btn‘).val();
        $(‘.pre-img‘).css({"filter":"progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=‘true‘,sizingMethod=‘scale‘,src=\""+ path + "\")"});
    }
}


//temp
var clickedMask;
//check cookie
function cookie_check_logined() {
    var s_info = $.cookie("S_INFO");
    var p_info = $.cookie("P_INFO");
    var now = new Date();
    if (s_info != null && s_info != "" && p_info != null && p_info != "" && (now.getTime() / 1000 - s_info.split(‘|‘)[0]) / 600 < 1) {
        return p_info.split(‘|‘)[0];
    }
    return false;
}

//扩展中文字符截断
String.prototype.sub = function(n)
{
    var r = /[^\x00-\xff]/g;
    if(this.replace(r, "mm").length <= n) return this;
    var m = Math.floor(n/2);
    for(var i=m; i<this.length; i++) {
        if(this.substr(0, i).replace(r, "mm").length>=n) {
            return this.substr(0, i) ; }
    } return this;
};

//post回调
function postArtCallback(result){
    $(‘#captcha_img‘).trigger(‘click‘);
    if(!result){
        $(‘.post-tips‘).text(‘请填写完整‘).show();
        return ;
    }
    if(result.success){
        var maskHeight=315;
        var maskWidth=645;
        var maskPosition=$(‘.post-form‘).position();
        $(‘.post-form‘).css({width:0,height:0}).hide();
        $(‘.success-box‘).css({width:0,height:0}).css(maskPosition).animate({height:maskHeight, width:maskWidth}).show();
        $(‘#captcha_answer‘).val(‘‘);
        $(‘#content,#nickname,#title‘).val(‘‘);

    }else{
        if(result.unlogin){
            $(‘.post-tips‘).text(‘帐号验证失败,请重新登录‘).show();
            return;
        }
        $(‘.post-tips‘).text(result.msg).show();
    }
}
//验证码
rnd.today=new Date();
rnd.seed=rnd.today.getTime();
function rnd() {
    rnd.seed = (rnd.seed*9301+2973467) % 2332425280;
    return rnd.seed;
};

$(function () {
    var userName=cookie_check_logined()?cookie_check_logined():‘‘;
    var zanIsclick=false;
    $(‘.username-span‘).text(userName);

    //绑定验证码
    $(‘#captcha_img‘).click(function(){
        var temp_id = parseInt(rnd());
        $(‘#captcha_img‘).attr(‘src‘, "http://captcha-for-what.webapp.163.com/get_captcha?captcha_id=zdcq" + temp_id);
        $(‘#captcha_id‘).val(‘zdcq‘ + temp_id);
    });
    $(‘#captcha_img‘).click();


    var myWaterfall = gWaterFall.initWaterfall();
    $(‘.top‘).click(function () {
        $(window).scrollTop(0);
    })

    //导航绑定
    $(‘.nav4‘).toggle(function(){
        $(this).addClass(‘current‘)
    },function(){
        $(this).removeClass(‘current‘)
    })

    $(‘.a2‘).click(function(){
        var display=$(‘.tc-jp‘).css(‘display‘);
        $(‘.nav a‘).removeClass(‘current‘);

        $(‘.tc‘).slideUp();
        if(display==‘none‘){
            $(this).addClass(‘current‘);
            $(‘.tc-jp‘).slideDown();
        }else{
            $(this).removeClass(‘current‘);
            $(‘.tc-jp‘).slideUp();
        }
    })

    $(‘.a3‘).click(function(){
        var display=$(‘.tc-gz‘).css(‘display‘);
        $(‘.nav a‘).removeClass(‘current‘);

        $(‘.tc‘).slideUp();

        if(display==‘none‘){
            $(‘.tc-gz‘).slideDown();
            $(this).addClass(‘current‘);
        }else{
            $(‘.tc-gz‘).slideUp();
            $(this).removeClass(‘current‘);
        }
    })

    $(‘.a5‘).click(function(){
        var display=$(‘.tc-mt‘).css(‘display‘);
        $(‘.nav a‘).removeClass(‘current‘);

        $(‘.tc‘).slideUp();
        if(display==‘none‘){
            $(this).addClass(‘current‘);
            $(‘.tc-mt‘).slideDown();
        }else{
            $(this).removeClass(‘current‘);
            $(‘.tc-mt‘).slideUp();
        }
    })


    //上传绑定
    $("#upload-a").click(function(){
        $("#upload-btn").trigger(‘click‘);
    })
    $(".a1").click(function(){
        $(‘.j-1‘).trigger(‘click‘);
    })

    $(‘.gz-btn‘).click(function(){
        $(‘.j-1‘).trigger(‘click‘);
    })

    $("#post-btn").click(function(e){

    })
    //点赞
    $(‘.mask .y-up,.mask .y-up-only‘).live(‘click‘,function(){
        ZANTEMP=$(this);
        var id=$(this).attr(‘data-artid‘);
        var p=$(this);
        var _this=$(this);
        if(!cookie_check_logined()){
            if(!zanIsclick){
                var maskHeight=315;
                var maskWidth=645;
                var maskPosition=$(‘.mask‘).position();
                $(‘.encourage-box‘).css({width:0,height:0}).css(maskPosition).animate({height:maskHeight, width:maskWidth}).show();
                return;
            }
        }
        $.getJSON(‘http://zdcq.webapp.163.com/script/user/vote_article?article_id=‘+id+‘&callback=?‘,function(data){
            if(data.article_resp){

               _this.trigger(‘click‘);
              //  return;
            }
            if(data.success){
               // alert(‘点"赞"成功‘);
                var newNum=parseInt( p.html().toLowerCase().split(‘</i>‘)[1],10)+1;
               // console.log(p.html()) ;
                console.log(parseInt( p.html().split(‘</i>‘)[1],10));
                p.html(‘<i></i>‘+newNum) ;
                clickedMask.find(‘.y-up,.y-up-only‘).html(‘<i></i>‘+newNum);


            }else{
                alert(data.msg);
            }
        });
    })

    //选择登录与否
    $(‘.yes-login‘).click(function(){
        var maskHeight=315;
        var maskWidth=645;
        var maskPosition=$(this).parent().position();
        $(this).parent().animate({width:0,height:0}).hide();
        $(‘.login-form‘).css({width:0,height:0}).css(maskPosition).animate({height:maskHeight, width:maskWidth}).show();
        if(!cookie_check_logined()){
            $(‘.logout-tips‘).hide();
        }else{
            $(‘.logout-tips‘).show();
        }
    })

    $(‘.no-zan‘).click(function(){
        $(‘.encourage-box‘).animate({width:0,height:0},function(){
            $(‘.encourage-box‘).hide();
        })
        zanIsclick=true;
        ZANTEMP.trigger(‘click‘);

    })

    $(‘.no-post‘).click(function(){
        var maskHeight=315;
        var maskWidth=645;
        var maskPosition=$(this).parent().position();
        $(this).parent().animate({width:0,height:0}).hide();
        $(‘.post-form‘).css({width:0,height:0}).css(maskPosition).animate({height:maskHeight, width:maskWidth}).show();
        if(!cookie_check_logined()){
            $(‘.logout-tips‘).hide();
        }else{
            $(‘.logout-tips‘).show();
        }
    })
    //填写用户信息
    $(‘#info-btn‘).click(function(){
        var name=$("#name").val();
        var phone=$(‘#phone‘).val();
        $.getJSON(‘http://zdcq.webapp.163.com/script/user/fill_userinfo?name=‘+name+‘&phone=‘+phone+‘&callback=?‘,function(data){
            if(data.success){
                if(!ZANTEMP){
                    var maskHeight=$(‘.info-form‘).height();
                    var maskWidth=$(‘.info-form‘).width();
                    var maskPosition=$(‘.info-form‘).position();
                    $(‘.info-form‘).hide();
                    $(‘.post-form‘).css(maskPosition).animate({height:maskHeight, width:maskWidth}).show();
                    $(‘.logout-tips‘).show();
                }else{
                    ZANTEMP.trigger(‘click‘);
                    $(‘.info-form‘).hide();
                }
            }
            if(data.error){
                alert(data.msg);
            }
        })
    })

    $(‘.mask‘).live(‘click‘,function(e){
        if($(e.target).hasClass(‘y-up‘)||$(e.target).hasClass(‘NIE-share‘)||$(e.target).hasClass(‘y-up-only‘)){
            return;
        }
        var _self=$(this);
        $(this).animate({
            width:0,
            height:0
        },function(){
             _self.hide();
        })
    })

    //登录开始
    AutoUrs.bind("username", {
        mailList: [
            "163.com",
            "126.com",
            "yeah.net",
            "qq.com",
            "vip.163.com",
            "vip.126.com",
            "188.com",
            "gmail.com",
            "sina.com",
            "hotmail.com"
        ],
        tabTo: "password",
        cookie: "global"
    });

    $("#login-form-box").ntesLoginForm({
        beforeSubmit: function() {
            var is_ok = true;
            var username = $("#login-form-box input[name=username]");
            var password = $("#login-form-box input[name=password]");
            if (!username.val() || username.val() == "如[email protected]") {
                //    $("#acErr").show()
                is_ok = false;
            }

            if (!password.val()) {
                //    $("#pwdErr").show()
                is_ok = false;
            }
            return is_ok;
        },
        success: function(params) {
            userName=cookie_check_logined();
            var maskHeight=$(‘.login-form‘).height();
            var maskWidth=$(‘.login-form‘).width();
            var maskPosition=$(‘.login-form‘).position();
            $(‘.username-span‘).html(userName);
            $(‘.login-tips‘).text(‘‘).hide();
            $.getJSON(‘http://zdcq.webapp.163.com/script/user/is_userinfo_fill?urs=‘+userName+‘&callback=?‘,function(data){

                if(!data.fill){
                    $(‘.login-form‘).hide();
                    $(‘.info-form‘).css(maskPosition).animate({height:maskHeight, width:maskWidth}).show();
                }else{
                    $(‘.login-form‘).hide();
                    if(ZANTEMP){
                        ZANTEMP.trigger(‘click‘);
                    }else{
                        $(‘.post-form‘).css(maskPosition).animate({height:maskHeight, width:maskWidth}).show();
                    }

                    $(‘.logout-tips‘).show();
                }
            })
        },
        fail: function(params) {
            $(‘.login-tips‘).text(params.errorMsg).show();
        }
    });


    //out login
    $("#login-out").click(function  () {
        var oldUrl=window.location.href;
        window.location=‘http://reg.163.com/Logout.jsp?username=‘+userName+‘&url=‘+oldUrl;
    })

    //成功分享
    nie.use([‘util.share‘],function(){
        var successShare = nie.util.share({
            fat: ".s-share",
            type: 6,
            defShow: [5, 1, 3, 2],
            title: ‘我刚刚参与了《藏地传奇》真言活动,提交你的真言,说出你对西藏游戏化的建议,一起探索西藏题材的无限可能!还有机会获得iPad mini等精美奖品哦!活动地址:‘,
            img: ‘‘
        });
    })

    //post input focus
    $(‘#title‘).focus(function(){
        if($(this).val()==‘20字以内‘){
            $(this).val("")
        }
    })
    /*
    $(‘#title‘).blur(function(){
        if($(this).val()==‘‘){
            $(this).val("20字以内")
        }
    })
    */
    $(‘#nickname‘).focus(function(){
        if($(this).val()==‘6字以内‘){
            $(this).val(‘‘)
        }
    })
    /*
    $(‘#nickname‘).blur(function(){
        if($(this).val()==‘‘){
            $(this).val("6字以内")
        }
    })
    */
    $(‘#content‘).focus(function(){
        if($(this).val()==‘140字以内‘){
            $(this).val(‘‘)
        }
    })
    /*
    $(‘#content‘).blur(function(){
        if($(this).val()==‘‘){
            $(this).val("140字以内")
        }
    })
    */
    $(‘.top‘).css(‘right‘,($(window).width()-$(‘.out‘).width())/2-50);
    $(window).resize(function(){
        $(‘.top‘).css(‘right‘,($(window).width()-$(‘.out‘).width())/2-50);
    })

    $(‘.form-close‘).live(‘click‘,function(){
        var parent=$(this).parent();
        $(this).parent().animate({
            width:0,
            height:0
        },function(){
            parent.hide();
        })
    })

    $(‘.tc-close‘).click(function(){
        $(this).parent().slideUp();
        var pid=$(this).attr(‘data-parent‘);
        $(pid).removeClass(‘current‘);
    })
})

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。