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({0,height:0}).hide();
$('.success-box').css({0,height:0}).css(maskPosition).animate({height:maskHeight, 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({0,height:0}).css(maskPosition).animate({height:maskHeight, 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({0,height:0}).hide();
$('.login-form').css({0,height:0}).css(maskPosition).animate({height:maskHeight, maskWidth}).show();
if(!cookie_check_logined()){
$('.logout-tips').hide();
}else{
$('.logout-tips').show();
}
})
$('.no-zan').click(function(){
$('.encourage-box').animate({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({0,height:0}).hide();
$('.post-form').css({0,height:0}).css(maskPosition).animate({height:maskHeight, 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, 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({
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() == "如name@example.com") {
// $("#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, maskWidth}).show();
}else{
$('.login-form').hide();
if(ZANTEMP){
ZANTEMP.trigger('click');
}else{
$('.post-form').css(maskPosition).animate({height:maskHeight, 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({
0,
height:0
},function(){
parent.hide();
})
})
$('.tc-close').click(function(){
$(this).parent().slideUp();
var pid=$(this).attr('data-parent');
$(pid).removeClass('current');
})
})