pagecache就是单页面切换之后缓存切换过的页面,历史记录后退直接从内存加载,体验更流畅一些
quickling就是后端渲染但是前端体验是单页面,俗称pjax http://huntnews.in/
fiddler 检测线上bug
less bootstrap placeholder-jq插件 表单验证
js里面写模板参考mk 的注册页面 还有view-source:https://account.xiaomi.com/pass/register 小米页面
https://account.xiaomi.com/static/res/64371/scripts/common/more/placeholder.js
NProgress.js:
nanobar.js:
1、
css画箭头 类似淘宝首页
css 多余的现实省略号, px em rem的区别。
2、table 1px边框
3、ie6兼容 fixed
多行文本截断为省略号
多行文字垂直居中
删除两边空格
http://www.w3cfuns.com/blog-5441802-5399174.html
事件阻止
1、商城详细页 限制字数
看百度云盘的电子书
2、 解决滑动事件,封装起来
3、 jq 选择多个选择器,或绑定多个事件的写法
4、 给函数参数 用对象传参
css -sprite -- cssgaga
孔浩的JS面向对象
iframe 跨域
seajs,
间歇性滚动,无缝滚动,幻灯片,手机幻灯片,
图片预加载,懒性加载,
gfn网址
正则表达式,
字符串处理
组件的开发
jq怎么自定义回调函数
jq每个版本的更新和舍弃的api
querySelector
html5,
2、html5相册组件
3、自动隐藏地址栏
4、内容高度不够一个屏幕的时候为一个屏幕的高度
hammer,zeptojs,touchjs,isscroll, (fastclick ,tap.js click 300ms延迟怎么解决)
程序员常用的一些工具 :http://www.topthink.com/topic/2823.html
w3cfuns按需加载js
频繁的更改首页或者详情图片,和幻灯。
了解t.js 360 购票源码
正则表达式 怎么定义 new regexp();
<script>
a=1;
b=(a++);
alert(b)
</script>
孔浩的JS面向对象
iframe 跨域
seajs,
间歇性滚动,无缝滚动,幻灯片,手机幻灯片,
图片预加载,懒性加载,
gfn网址
正则表达式,
字符串处理
组件的开发
jq怎么自定义回调函数
html5,
1、不能放大缩小,meta
2、html5相册组件
3、自动隐藏地址栏
4、内容高度不够一个屏幕的时候为一个屏幕的高度
IOTEKTXCJ378397572
频繁的更改首页或者详情图片,和幻灯。
了解t.js 360 购票源码
正则表达式 怎么定义 new regexp();
<script>
a=1;
b=(a++);
alert(b)
</script>
谷歌开发这工具 audits
走进小米。。。。
greensock ,
Velocity.js
modal.js
阿狸:圆心、
一、1、性能优化、2、工程化、3、html5
二、契机:多终端、nodejs
三、探索:无线开发、框架&模式(jq、zepto框架、angralerjs模式)、前后端分离、工程化
第三方平台
fastclick插件
spa
淘宝:淘宝旅行网
1.hybrid --
a/离线数据 将 js css 图片,等数据打包成zip,防止用户本地作为请求
b/h5和native的桥接
appjs amazeul
var JK_lock ="open";
(function ($) {
var clicknumber = 0;
var methods = {
init: function (options) { },
pop: function (options) {//弹出层
var _H = $(window).height() ;
var _W = $(window).width() ;
var jumpstop = 0;
var stop=1;
/*
* options.width(number) 弹出层宽度(必选)
* options.height(number) 弹出层高度(必选)
* options.zIndex(number) 弹出层index轴 ,默认为9999;(可选)
* options.poparent(jquery节点) 要插入的父节点,默认为‘body’(可选)
* options.opacity(0~1) 背景透明度(可选)
* option.popId(jqeury节点 ) 要插入的弹出层ID或者calss,最好为ID,强调唯一性!(必选)
* option.popHtml(插入弹出层元素结构) 如“<div id='test'></div>";(可选)
* option.popFunc(function方法) 弹出层回调方法;(可选)
* option.closePop(function方法) 关闭回调方法;(可选)
* option.time(1~100000)//X秒跳转,X为整数,如:1为1秒(可选)
* option.timeId(id)//为一个ID节点,用来储存时间显示(可选)
* option.url(URL)//一个链接,倒计时跳转路径。(可选)
* 关闭按钮约定名称为 calss = popclose;(可选)
* */
var settings = {
'width': 100,
'height':100,
'zIndex':9999,
'poparent':'body',
'opacity':0.5,
'popId':null,
'popHtml':null,
'popFunc':null,
'time':null,
'timeId':null,
'url':null,
'closePop':null
};
// 如果存在选项,则合并之
if (options) {
$.extend(settings, options);
}
var popTop;
var popLeft = (_W - settings.width) / 2;
if(settings.popHtml === null) {
return this.each(function () {
var $this = $(this);
if(settings.height =='auto'){
settings.height=$this.height();
};
popTop = (_H - settings.height) / 2;
$this.show();
$this.css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
closebox();
if(settings.time !== null ){
jump(settings.time,settings.timeId,settings.url);
}
});
}else if(settings.popHtml !==null){
$(settings.poparent).append(settings.popHtml);
if(settings.height =='auto'){
settings.height=$(settings.popId).height();
};
popTop = (_H - settings.height) / 2;
$(settings.popId).css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
closebox()
};
function closebox(){
if(settings.popFunc !== null) {
settings.popFunc()
};
var backlayer ="<div id='blacklayer'></div>"
$("body").append(backlayer);
var dh = $(document).height();
$('#blacklayer').css({zIndex:settings.zIndex-10,background:"#000",opacity:settings.opacity,position:'absolute',left:0,top:0,width:'100%',height:dh})
$('.popclose').bind("click",function(){
stop=0;
$('#blacklayer').remove();
if(settings.popHtml === null){
$(settings.popId).hide();
} else{
$(settings.popId).remove();
}
if(settings.closePop!=null){
settings.closePop();
}
})
}
if(settings.time !== null ){
jump(settings.time,settings.timeId,settings.url);
}
function jump (time,element_id,url) { //X秒跳转
if(stop===0) return false
_jumpfunc = window.setTimeout(function(){
time--;
if(time > 0) {
if(jumpstop== 1 ){
return false;
} else{
$(element_id).html(time+"秒");
jump(time,element_id,url)
}
} else {
if(url ==null){
$('#blacklayer').remove();
$(settings.popId).remove();
} else{
document.location=url;
}
}
}, 1000);
}
},
tag: function (options) {//标签切换
var settings={
'type':"click",
'selected':'on',
'contentClass':'.content',
'func':null
};
// 如果存在选项,则合并之
if (options) {
$.extend(settings, options);
}
if(settings.type != 'click' && settings.type != 'mouseover' ) return false;
$(this).eq(0).addClass(settings.selected);
return this.each(function(){
var $this = $(this);
$(settings.contentClass).hide();
$(settings.contentClass).eq(0).show();
$this.bind(settings.type,contentShow);
function contentShow(){
var _index = $this.index();
$this.siblings().removeClass(settings.selected);
$this.addClass(settings.selected);
$(settings.contentClass).hide();
$(settings.contentClass).eq(_index).show();
if(settings.func!=null){
settings.func();
}
}
})
},
imgmove: function(options){//多小图片幻灯
var settings = {
oneEle:null,
oneWidth:null,
loop:false,
boxWidth:null,
prev:null,
next:null
}
// 如果存在选项,则合并之
if (options)
{
$.extend(settings, options);
}
function movefunc(){
var number = $(settings.oneEle).size();
var length =number*settings.oneWidth;
var boxlen = length/settings.boxWidth;
if(boxlen%settings.boxWidth > 0){
boxlen+1;
}
var par = $(settings.oneEle).parent();
if (settings.loop== true){
$(settings.oneEle).parent().width(length).css("left",-settings.oneWidth);
var par = $(settings.oneEle).parent();
var li = $(settings.oneEle).last();
par.prepend(li.clone())
li.remove();
} else{
$(settings.oneEle).parent().width(length);
}
$(settings.prev).click(function(){
if (settings.loop== true){
var li = $(settings.oneEle).last();
TweenMax.to(par, 1, {left:0,onComplete:function(){
par.prepend(li.clone())
par.css("left",-settings.oneWidth);
$(settings.oneEle).last().remove();
},ease:Quart.easeOut});
} else{
if(clicknumber>0){
clicknumber--;
TweenMax.to( par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});
};
}
});
$(settings.next).click(function(){
if (settings.loop== true){
TweenMax.to(par, 0.4, {left:-settings.oneWidth,onComplete:function(){
par.css("left","0px");
var li = $(settings.oneEle).slice(0, 1);
par.append(li.clone())
$(settings.oneEle).slice(0, 1).remove();
console.log("ok")
},ease:Quart.easeOut});
} else{
if(clicknumber<boxlen-1){
clicknumber++
TweenMax.to(par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});
}
}
});
}
movefunc();
}
};
$.fn.tooltip = function (method) {
// Method calling logic
if (methods[method]) {
return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.tooltip');
}
};
})( jQuery );
var $j = $ = jQuery.noConflict();
var JKXY ={};
JKXY.Browser = {
IE: !!( window.attachEvent && !window.opera ),
IE6: (/msie\s*(\d+)\.\d+/g.exec(navigator.userAgent.toLowerCase()) || [0, "0"])[1] == "6",
IE7: navigator.userAgent.indexOf('MSIE 7.0') > -1,
IE8: navigator.userAgent.indexOf('MSIE 8.0') > -1,
IE9: navigator.userAgent.indexOf('MSIE 9.0') > -1
}
//图片数组
JKXY.ImgList=[
'images/abc.png',
'images/footzc.jpg',
'images/icon.png',
'images/icon1.png',
'images/icon2.png',
'images/icon3.png',
'images/icon4.png',
'images/icon5.png',
'images/icon6.png',
'images/learnhow.jpg',
'images/learnwhat.jpg',
'images/lesson-img.png',
'images/andriod.png',
'images/cocos2d.png',
'images/ios.png',
'images/java.png',
'images/html5.png',
'images/gotop2.jpg',
'images/gotop.jpg',
'images/erwma.png'
];
JKXY.NUMBER=0;
JKXY.number={
lunbo:0 //语言轮播计数器
};
JKXY.popHtml =function(html_id, content, tit ) {
var html = '<div class="dialog" id="'+html_id+'">';
html += '<div class="dialog-box">';
html+=' <h3><i class="popclose"></i>'+tit+'</h3>';
html += '<div class="dialog-body">';
html += content;
html += '</div>';
html += '</div>';
return html;
};
JKXY.CJT={
init:function(){
this.loading(JKXY.ImgList);
this.navflex();
this.indexNav();
this.bindElem();
this.GoTop();
this.learnWhatNav();
this.fourText();
this.checkbwoer();
this.lessonNavHover();
this.timeCare();
this.TopSearch();
},
checkbwoer:function(){
var browser="<div id='B-blacklayer'></div>";
browser+="<div id='browser'>";
browser+="<div class='b-title'>使用一款<strong>优质浏览器,是成为极客</strong>的关键一步!</div>";
browser+="<p>您正在使用的浏览器内核版本过低,除了有可能遭受病毒与恶意软件的侵袭之外,也无法体验到最新互联网技";
browser+="术带来的优质显示与交互效果。极客学院网站大量使用了HTML5与CSS3技术,为确保您能够体验到最佳的";
browser+="浏览效果,我们推荐您选择使用下列最新的优质浏览器:</p>";
browser+=" <div class='downloading'>";
browser+="<a href='http://www.firefox.com.cn/download/' target='_blank'><img src='"+cdn_url+"images/firefox.png' /> </a>";
browser+="<a href='http://wirrorcdn.qiniudn.com/software/browser/ChromeStandaloneSetup.Win.38.0.2125.111.exe' target='_blank'><img src='"+cdn_url+"images/chrome.png' /> </a>";
browser+="<a href='http://windows.microsoft.com/zh-cn/internet-explorer/ie-11-worldwide-languages/' target='_blank'><img src='"+cdn_url+"images/ie.png' /></a>";
browser+="<a href='http://support.apple.com/kb/DL1531' target='_blank'><img src='"+cdn_url+"images/safari.png' /> </a>";
browser+=" </div></div>";
if( JKXY.Browser.IE){
if(JKXY.Browser.IE6 || JKXY.Browser.IE7 || JKXY.Browser.IE8 ){
$("body").append(browser);
var H = $(document).height();
var H2 = $(window).height();
if(H>=H2){
$('#B-blacklayer').height(H)
} else{
$('#B-blacklayer').height(H2)
}
}
}
},
login:function(n,text){
var warning;
switch (n)
{
case 0:
warning = "<div class='web-dia-tip waring-success' id='warning'>"+text+"</div>";
break;
case 1:
warning = "<div class='web-dia-tip waring-failure' id='warning'>"+text+"</div>";
break;
case 2:
warning = "<div class='web-dia-tip waring-sub' id='warning'>"+text+"</div>";
break;
default:
alert("参数,0:成功,1:失败,2:登录中..")
}
$('body').append( warning );
var _W = -$j('#warning').width()/2-20;
$j('#warning').css("marginLeft",_W)
$('#warning').animate({top:"0px",opacity:1},300,function(){
$('#warning').delay(900).animate({top:"-50px",opacity:0},500,function(){
$('#warning').remove();
})
});
},
bindElem:function(){
//$j('.subscibe_submit').bind("click",this.BottomButtonSearch);
//$j('.searchbox i').bind("click",this.TopSearch);
//$j("input[name='subscibe_email']").bind("click",this.BottomSearch);
$j(".headsearch").bind( "click", JKXY.CJT.webHeaderSearch );
$("#headsearch .search-btn").bind( "click", JKXY.CJT.webHeaderSearch );
$j(".footsearch").bind( "click", JKXY.CJT.webFootSearch );
$j('#user-name,.user-center,#user-name p').bind("mouseover",this.userContent);
$j('.lesson-list li').hover(
JKXY.CJT.lessonHover,
JKXY.CJT.lessonOut
)
},
userContent:function(){//头部用户中心下拉
$j('.user-center').show();
$j('.jiaotou').addClass("rotate");
JKXY.CJT.stopEventBubble();
$j(document).bind("mouseover",function(){
$j('.user-center').hide();
$j('.jiaotou').removeClass("rotate");
});
},
indexNav:function(){//首页导航切换
/*$j(".nav a").tooltip("tag",{
'type':"mouseover",
'selected':'on',
'contentClass':'.content-one',
'func':function(){
var _index = $j(this).index();
$j('.learnav-content').show();
JKXY.CJT.stopEventBubble();
}
});
$j(".nav a").eq(0).removeClass("on");
$j('.navbox,.learnav-content').bind("mouseover",function(){
$j('.learnav-content').show();
JKXY.CJT.stopEventBubble();
})
// $j(document).unbind();
$j(document).bind("mouseover",function() {
$j('.learnav-content').hide();
$j(".nav a").removeClass("on");
});*/
},
fourText:function(){//首页四话轮播
var _text =[
"<span>学习最新实战教程</span>迅速提升开发实力",
"<span>知识碎片化</span>自由规划学习周期",
"<span>深入浅出系统学习</span>快速掌握感兴趣的技术",
"<span>提升技术实力</span>迅速获得高薪"
]
$j('#fourtext').css({opacity:0}).animate({"opacity": 1},1000).delay(1000).animate({opacity:0},1000);
setInterval(lunbo,3000);
function lunbo(){
if(JKXY.number.lunbo>3){
JKXY.number.lunbo=0;
}
$j('#fourtext').animate({"opacity": 1},1000);
$j('#fourtext').html(_text[JKXY.number.lunbo]).delay(1000).animate({"opacity": 0},1000);
JKXY.number.lunbo++;
}
},
learnWhatNav:function(){ //首页学什么导航
$j('.learn-nav li').tooltip("tag",{
'type':"mouseover",
'selected':'on',
'contentClass':'.lessoncontent',
'func':function(){
$j('.lessonbox').show();
JKXY.CJT.stopEventBubble();
}
})
$j('.learn-nav li').eq(0).removeClass("on");
$j('.lessonbox,.lessoncontent').bind("mouseover",function(){
$j('.lessonbox').show();
JKXY.CJT.stopEventBubble();
})
//$j(document).unbind();
$j(document).bind("mouseover",function() {
$j('.lessonbox').hide();
$j('.learn-nav li').removeClass("on");
});
},
navflex:function(){//头部定位
$j(document).scroll(
function(){
var _top = $j(document).scrollTop();
var margTop = $('#header').innerHeight();
if(_top>margTop){
$j('#navbox').addClass("flex");
var _w = $j('.loginbox').innerWidth()+2;
} else{
$j('#navbox').removeClass("flex");
$j('.loginbox').removeClass("loginflex");
}
});
},
stopEventBubble: function(){//阻止冒泡事件
function getEvent(){
if(window.event) {return window.event;}
func=getEvent.caller;
while(func!=null){
var arg0=func.arguments[0];
if(arg0){
if((arg0.constructor==Event || arg0.constructor ==MouseEvent
|| arg0.constructor==KeyboardEvent)
||(typeof(arg0)=="object" && arg0.preventDefault
&& arg0.stopPropagation)){
return arg0;
}
}
func=func.caller;
}
return null;
}
var e=getEvent();
if(window.event){
//e.returnValue=false;//阻止自身行为
e.cancelBubble=true;//阻止冒泡
}else if(e.preventDefault){
//e.preventDefault();//阻止自身行为
e.stopPropagation();//阻止冒泡
}
},
loading:function(a){//头部loadding
var len = a.length;
var le=$j('.loading-length');
for(var i=0; i<len; i++){
var img = new Image();
img.οnlοad=function(){
JKXY.NUMBER++;
le.animate({width:$j(window).width() / len *JKXY.NUMBER},50)
};
img.src= cdn_url+a[i];
(function(img){
return img.onerror = function(){
console.log(img.src+"缺少图片")
};
})(img);
if(i==len-1){
$j(window).resize(function(){
var wen = parseInt($j(window).width());
$j('.loading-length').width(wen)
})
}
}
},
TopSearch:function(){//头部搜索
$("input[name='q']").bind("focus",function(){
$('.search-btn').addClass("search-btn2");
$('.hot-words').hide()
//$('.keyword-list').show();
$(this).css({paddingRight: "55px"});
});
$("input[name='q']").bind("focusout",function(){
$('.search-btn').removeClass("search-btn2");
$('.hot-words').show();
//setTimeout(function(){$('.keyword-list').hide()},100);
//$('.keyword-list').delay(200).hide();
});
$('#J_keywordList .result-list').delegate('.current' , "click",function(){
var val = $(this).text();
$("input[name='q']").val(val);
//$('.keyword-list').delay(200).hide();
})
},
BottomSearch:function(){//尾部回车搜索
$j(document).unbind("keydown");
$(document).bind("keydown",function(event){
if(event.keyCode ==13){
//$("form.headsearch").submit();
//获取搜索form下的两个input元素,获取两个元素的值
var _focusEle = document.activeElement.id;
if(_focusEle == 'subscibe_email') {
var _t = $("div.footsearch input")[0].value;
var _q = $("div.footsearch input")[1].value;
if(!_q) {
alert("关键词不能为空!");
return;
}
var _host = location.host;
var _search_host = _host.replace(/\w+/,"search");
var _url = 'http://'+_search_host+'/s/' + 't_' + _t + '|q_' + encodeURIComponent(_q) + '|sfilter_1';
location.href = _url;
}
}
});
},
BottomButtonSearch:function(){//尾部按钮搜索
var _t = $("div.footsearch input")[0].value;
var _q = $("div.footsearch input")[1].value;
if(!_q) {
alert("关键词不能为空!");
return;
}
var _host = location.host;
var _search_host = _host.replace(/\w+/,"search");
var _url = 'http://'+_search_host+'/s/' + 't_' + _t + '|q_' + encodeURIComponent(_q) + '|sfilter_1';
location.href = _url;
},
// 网站全站搜索,替代 TopSearch、BottomSearch、BottomButtonSearch三个方法
webHeaderSearch: function(){
$(document).unbind("keydown");
// 点击icon小图标
$("#headsearch .search-btn").click(function(){
JKXY.CJT.webSearchMain( "headsearch" );
});
$(document).bind("keydown",function(event){
if( event.keyCode ==13 )
{
JKXY.CJT.webSearchMain( "headsearch" );
}
});
},
webFootSearch: function() {
$(document).unbind("keydown");
// 点击“搜索”按钮
$(".subscibe_submit").click(function(){
JKXY.CJT.webSearchMain( "footsearch" );
});
$(document).bind("keydown",function(event){
var id = $(this).attr('id');
id = id ? id : "headsearch";
if( event.keyCode ==13 )
{
JKXY.CJT.webSearchMain( "footsearch" );
}
});
},
webSearchMain: function(id){
var _t = $("div#"+id+" input")[0].value;
var _q = $("div#"+id+" input")[1].value;
if( !_q )
{
JKXY.msgBox( 0, '搜索关键词不能为空' );
return false;
}
var _host = location.host;
var _search_host = _host.replace(/\w+/,"search");
var _url = 'http://'+_search_host+'/s/' + 't_' + _t + '|q_' + encodeURIComponent(_q) + '|sfilter_1';
location.href = _url;
},
GoTop:function(){//返回头部
if( typeof(event_stop)=='object' )
{
if( event_stop.rightdia === false )
{
return '';
}
}
var lock =JKXY.Cookie.get("pewm");
var erwma_none = lock=="none" ? '' : "style='display:none'";
var html="<div class='gotop' id='gototop'>";
html+="<span class='top'></span>";
html+="<span class='erwma' "+erwma_none+" ><img src='"+cdn_url+"images/erwma.png'/> </span>";
html+="<a href='" + www_url + "app/' alt='极客学院应用' target='_blank'><span class='jk-app'><img src='"+cdn_url+"images/appewm.png'/></span></a>"
html+="<a href='http://wpa.qq.com/msgrd?v=3&uin=2905494756&site=qq&menu=yes' target='_blank' class='qq-online'>";
html+="<span class='kefu'>官方客服QQ:2905494756<br/> 工作日9:00-21:00在线<i></i></span></a>";
html+="<a href='http://www.wenjuan.com/s/RR7bym/' class='diaocha' target='_blank'></a>";
html+="<div class='pewm2' id='pewm2'><span class='lottery-close'></span><a target='_blank' href='http://325.jikexueyuan.com?hmsr=float_img'> <img src='"+cdn_url+"activity/jikejie/img/f_jkj.png' /></a></div>";//大转盘入口图片
//html+="<span class='news'>!</span>";
if(lock!="none")
{
var pewm_display = $('#bannerbox').length <= 0 ? '' : 'style="display:none;"';
html+="<img src='"+cdn_url+"images/ewap.jpg' class='pewm' id='pewm' "+pewm_display+" />";
}
html+="</div>";
//获取返回顶部元素对象
var version=" <div class='text' id='ie-test'>您的浏览器版本太低,为了获得更好的浏览体验!<br/>我们建议您升级浏览器或者使用Chrome、Firefox、Safari浏览器</div>";
function showPop(id){
if( $(window).height() < 490+340 && $(window).scrollTop() <= 490 )
{
$(id).fadeOut();
}
else
{
$(id).fadeIn();
}
}
var pewmDisplay = function() {
var lock =JKXY.Cookie.get("pewm");
if( lock!="none" && $('#bannerbox').length > 0 )
{
showPop('#pewm');
}
}
if($j('#gototop').length == 0){
$j('body').append(html);
var html = $j('#gototop');
pewmDisplay();
}else{
var html = $j('#gototop');
}
//绑定返回顶部事件
$('#pewm').on("click",function(){
$(this).fadeOut();
JKXY.Cookie.set("pewm","none",1, '/', '.'+ domain(window.location.href) , '');
$('.erwma').fadeIn();
});
if($j(window).scrollTop() <= 0){
$j('#gototop>.top').hide();
}
html.find('.top').bind('click',function(){
if($j(window).scrollTop() <= 0) return false;
$j('body,html').animate({scrollTop:0},200);
return false;
});
html.find('.erwma').bind("mouseover",function(){
$j('.erwma>img').fadeIn();
$j('.jk-app img').hide();
JKXY.CJT.stopEventBubble();
})
html.find('.jk-app').bind("mouseover",function(){
$j('.jk-app img').fadeIn();
$j('.erwma>img').hide();
JKXY.CJT.stopEventBubble();
})
$j(document).bind("mouseover",function(){
$j('.erwma>img').stop(true,true)
$j('.jk-app img').stop(true,true)
$j('.jk-app img').fadeOut();
$j('.erwma>img').fadeOut();
})
$j(window).scroll(function(){
if($j(window).scrollTop()>0){
$j('#gototop>.top').fadeIn();
}else{
$j('#gototop>.top').fadeOut();
}
pewmDisplay();
})
html.find('.news').bind("click",function(){
if( JKXY.Browser.IE){
if(JKXY.Browser.IE6 || JKXY.Browser.IE7 || JKXY.Browser.IE8 ){
if($j('#warningpop').has('#ie-test')){
return false
} else{
$j('#warningpop').append(version);
}
}
}
$('#warningpop').tooltip("pop", {
width: 540,
height:'auto',
popId: '#warningpop',
opacity:0.3
})
});
$j('.close-img').bind("click",function(){
$(this).parent().remove();
})
},
lessonHover:function(){
$j(this).find('.jd-line').hide();
var cricle = $j(this).find('.cricle');
var deg = $j(this).attr("deg");
if( $j(this).attr("stop") != 1 )
{
var cricle = $j(this).find('.cricle');
var deg = $j(this).attr("deg");
new C(cricle, deg);
$j(this).attr('stop',1);
}
var _play = $j(this).find('.lessonplay');
TweenMax.to(_play, 0.6, {opacity:1,ease:Quart.easeOut});
var cancel_fav = $j(this).find('.cancel-favorites');
if( cancel_fav.length > 0 && cancel_fav.attr('class').indexOf('cancel-stop') < 0 )
{
cancel_fav.show();
}
var lesson_shoucang = $j(this).find('.lesson-shoucang');
if( lesson_shoucang.length > 0 )
{
lesson_shoucang.show();
}
if(JK_lock==="close"){return false}
var less = $j(this).children('.lesson-infor');
var learn1= $j(this).find('.learn-number');
var learn2 =$j(this).find('.zhongji');
learn1.show();
learn2.show();
less.addClass("lesson-hover");
$j(this).find('.lessonicon-box').css("bottom","-2px");
TweenMax.to(less, 0.6, {height:175,ease:Quart.easeOut});
var _p = less.find("p");
TweenMax.to(_p, 0.15, { display:"block",height:52, opacity:1,ease:Linear.easeOut});
},
lessonOut:function(p, obj){
var obj = typeof(obj) == 'object' ? obj : $j(this);
obj.find('.jd-line').show();
var _play = obj.find('.lessonplay');
TweenMax.to(_play, 0.6, {opacity:0,ease:Quart.easeNone});
var cancel_favorites_obj = obj.find('.cancel-favorites');
if( cancel_favorites_obj.length > 0 && cancel_favorites_obj.attr('class').indexOf('cancel-stop') < 0 )
{
cancel_favorites_obj.hide();
}
var lesson_shoucang = obj.find('.lesson-shoucang');
if( lesson_shoucang.length > 0 && lesson_shoucang.attr('class').indexOf('ysc') < 0 )
{
lesson_shoucang.hide();
}
if(JK_lock==="close"){return false}
var less = obj.children('.lesson-infor');
var learn1= obj.find('.learn-number');
var learn2 =obj.find('.zhongji');
learn1.hide();
learn2.hide();
less.removeClass("lesson-hover");
obj.find('.lessonicon-box').css("bottom","4px");
TweenMax.to(less, 0.6, {height:88,ease:Quart.easeNone});
var _p = less.find("p");
TweenMax.to(_p,0.3 , { height:0,opacity:0,display:'none',ease:Linear.easeNone});
},
lessonNavHover:function(){
$j('.lesson-nav dd').mousemove (function(){
var $this = $j(this).find('.cateLists-li a');
TweenMax.to($this,0.4, { marginLeft:"10px",ease:Quart.easeOut});
})
$j('.lesson-nav dd').mouseout (function(){
var $this = $j(this).find('.cateLists-li a');
TweenMax.to($this,0.4, { marginLeft:"0px",ease:Quart.easeOut});
})
},
// 填0操作
fillZero:function( string, repeat, repeat_stuff ) {
var string = string.toString();
var repeat = repeat ? parseInt(repeat) : 2;
var repeat_stuff = repeat_stuff ? repeat_stuff : 0;
if( string )
{
var len = string.length;
repeat = repeat-len ? repeat-len : 0;
string = new Array( repeat+1 ).join(repeat_stuff)+string;
}
return string;
},
getJsDate: function( format ) {
var format = format ? format : '%Y年%m月%d日 %H:%i:%s';
var now = new Date();
var year = now.getFullYear();
var month = JKXY.CJT.fillZero( now.getMonth()+1 );
var days = JKXY.CJT.fillZero( now.getDate() );
var hour = JKXY.CJT.fillZero( now.getHours() );
var minutes = JKXY.CJT.fillZero( now.getMinutes() );
var seconds = JKXY.CJT.fillZero( now.getSeconds() );
var time_str = format.replace( "%Y", year );
time_str = time_str.replace( "%m", month );
time_str = time_str.replace( "%d", days );
time_str = time_str.replace( "%H", hour );
time_str = time_str.replace( "%i", minutes );
time_str = time_str.replace( "%s", seconds );
return time_str;
},
/*
* @desc 实时动态时间,最后将时间写入到class中,
* format:自定义显示方式。
* %Y=年, %m=月, %d=日, %H=小时%i=分钟%s=秒
*/
nowTime:function(cls, format) {
if( $('.'+cls).length <= 0 )
{
clearInterval(tick);
return false;
}
var tick = setInterval( e_clock, 1000 );
function e_clock( )
{
$('.'+cls).html( JKXY.CJT.getJsDate( format ) );
}
e_clock();
},
timeCare: function(){
var ck_key = "care_tip";
is_show = JKXY.Cookie.get(ck_key);
var care_where_1 = !is_show && typeof( event_stop ) == 'undefined';
var care_where_2 = (typeof(event_stop) == 'object' && event_stop.usercare === true);
if( care_where_1 || care_where_2 )
{
var date = new Date();
var data = {'time': parseInt(date.getTime()/1000), 'date':JKXY.CJT.getJsDate( '' ) };
$.getJSON("/Ajax/getTakeCareUser?jsoncallback=",data, function(result){
if( result.status && result.info.msg )
{
showCare( result.info.msg );
}
});
}
// 显示提示
function showCare( msg )
{
var msg = msg ? msg : '亲爱的VIP,这是来自极客学院小雪的问候~';
var id = "timeCare";
var html;
html = '<div class="web-dia-tip" id="'+id+'" >';
html += '<p class="jkxy_hello">'+msg+'</p>';
html += '<p class="jkxy_time">当前时间:</p>';
html += '</div>';
$('body').append( html );
JKXY.CJT.nowTime( 'jkxy_time', '当前时间:%Y年%m月%d日 %H:%i:%s' );
var _W = $(window).width()/2 - $('#'+id).width()/2 - 20;
$('#'+id).css("marginLeft", _W);
$('#'+id).animate({top:"0px",opacity:1},300,function(){
$('#'+id).delay(5000).animate({top:"-50px",opacity:0},500,function(){
$('#'+id).remove();
});
});
}
// 加入钟表
}
}
//播放进度
var C = function(id,deg){
this.box = id;
this.left = this.box.find(".left");
this.right = this.box.find(".cright");
this.mask = this.box.find(".mask");
this.text = this.box.find(".text");
this.d = 0;
this.A = null;
this.deg = deg;
this.init();
}
C.prototype = {
init : function(){
var T = this;
this.A = window.setInterval(function(){T.change()},10);
},
change : function(){
var T = this;
if(this.d>180){
if(this.d>360){
window.clearInterval(this.A);
this.A = null;
return;
}
this.right.show();
this.mask.hide();
}
this.text.text(parseInt(this.d/3.6)+"%");
this.left.css({
"-webkit-transform":"rotate("+this.d+"deg)",
"-moz-transform":"rotate("+this.d+"deg)"
});
if(this.d<this.deg){
this.d+=6;
}
}
}
JKXY.msgBox = function(status, msg, show_time, callBack)
{
var msg = msg ? msg : '亲爱的VIP,这是来自极客学院小雪的 Hello~';
var id = "warning";
var show_time = parseInt(show_time) ? parseInt(show_time) : 1500;
switch (status)
{
case 1:
var color_class = "waring-success";
break;
case 0:
var color_class = "waring-failure";
break;
case 2:
default:
var color_class = "waring-sub";
break;
}
var html;
html = '<div class="web-dia-tip '+color_class+'" id="'+id+'" >';
html += msg;
html += '</div>';
$('body').append( html );
var _W = $('#'+id).width()/2;
$('#'+id).css("marginLeft", -_W);
$('#'+id).animate({top:"0px",opacity:1},300,function(){
$('#'+id).delay(show_time).animate({top:"-50px",opacity:0},500,function(){
$('#'+id).remove();
if( typeof(callBack) == 'function' )
{
callBack();
}
});
});
};
/**
* Cookie相关操作
* @namespace Cookie
* @name JK.Cookie
* @static
*/
JKXY.Cookie = {
/**
* 获取Cookie内容
* @name JK.Cookie.get
* @function
* @grammar JK.Cookie.get(name)
* @param {String} name Cookie键名
*
* @return {String} Cookie值
*/
cokpre:'sso_',
get: function( name ) {
var nameEQ = this.cokpre+name + '=';
var ca = document.cookie.split(';');
for ( var i=0;i < ca.length; i++ ) {
var c = ca[ i ];
while ( c.charAt(0) == ' ' ) c = c.substring( 1 , c.length );
if ( c.indexOf( nameEQ ) == 0 ) {
var ret;
try{
ret = unescape( c.substring( nameEQ.length , c.length ) );
} catch(e) {
ret = unescape( c.substring( nameEQ.length , c.length ) );
}
return ret;
}
}
return null;
},
/**
* 设置Cookie内容
* @name JK.Cookie.set
* @function
* @grammar JK.Cookie.set(name , value[ , days , path , domain , secure])
* @param {String} name Cookie键名
* @param {String} value Cookie键值
* @param {Int} days Cookie有效期天数
* @param {String} path Cookie有效路径
* @param {String} domain Cookie有效域
* @param {Boolean} secure 是否安全Cookie
* @remark 兼容了编码为GBK时的Cookie读取失败的问题 2014-10-11 caojiangtao
*/
set : function( name , value , days , path , domain , secure ) {
var expires;
if ( typeof days =="number" ) {
if(days>0){
var date = new Date();
date.setTime( date.getTime() + ( days * 24 * 60 * 60 * 1000 ) );
expires = date.toGMTString();
}
} else if ( typeof days =="String" ) {
expires = days;
} else {
expires = false;
}
document.cookie = this.cokpre+name + '=' + escape( value ) +
(expires ? (';expires=' + expires) : '') +
(path ? (';path=' + path) : '') +
(domain ? (';domain=' + domain) : '') +
(secure ? ';secure' : '');
},
/**
* 删除Cookie内容
* @name JK.Cookie.del
* @function
* @grammar JK.Cookie.del(name[ , path , domain , secure])
* @param {String} name 要删除的Cookie键名
* @param {String} path Cookie有效路径
* @param {String} domain Cookie有效域
* @param {Boolean} secure 是否安全Cookie
*/
del : function( name , path , domain , secure ) {
JKXY.Cookie.set( name , '' , -1 , path , domain , secure );
}
};
JKXY.host = {
domain : function(url){
var durl=/http:\/\/([^\/]+)\//i;
var hosts = url.match(durl);
hosts = hosts[1];
d_arr = hosts.split('.');
hosts = d_arr[d_arr.length - 2] + '.' + d_arr[d_arr.length - 1];
return hosts;
},
domain_pre : function(url){
var durl=/http:\/\/([^\/]+)\//i;
var hosts = url.match(durl);
hosts = hosts[1];
d_arr = hosts.split('.');
return d_arr[0];
},
domain_arr :function(url){
var durl=/http:\/\/([^\/]+)\//i;
var hosts = url.match(durl);
hosts = hosts[1];
d_arr = hosts.split('.');
return d_arr;
}
};
JKXY.statis = {
//输入点位置 初始化
init:function(){
$('a').on('click',function(){
if(typeof($(this).attr('postion')) != 'undefined'){
try{
var host_arr = JKXY.host.domain_arr(window.location.href);
var host = '.'+host_arr[1]+ '.' + host_arr[2];
JKXY.Cookie.set('sso_postion',$(this).attr('postion'),0,'/',host);
}catch(e){
return false;
}
}
})
}
};
/* 密码强度检测 */
var pwdStrong = {
level:['', '太简单了', '一般般', '很安全'],
main: function( jq_obj, val ) {
if( val == '' )
{
return 0;
}
var jq_obj = jq_obj;
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(val) )
{
return 1;
}
else if (strongRegex.test(val))
{
return 3;
}
else if (mediumRegex.test(val))
{
return 2;
}
else
{
return 1;
}
return false;
},
genReport:function( jq_obj, val ) {
if( typeof(jq_obj) && jq_obj )
{
var level_id = pwdStrong.main( jq_obj, val );
pwdStrong.handleReport( jq_obj, level_id );
if( typeof( callBack ) == 'function' )
{
callBack( jq_obj, level_id );
}
}
},
callBack: '',
handleReport: function( jq_obj, level_id ) {
jq_obj.next('.pwd-strong').find('span').each(function(){
if( $(this).attr('level') <= level_id )
{
$(this).removeClass('active').addClass('active');
}
else
{
$(this).removeClass('active');
}
});
}
};
$j(function(){
JKXY.CJT.init();
// obj -> 点击对象
// res -> 用户点击之后的返回结果值
JKXY.userdoCBFuncFavoritesCourse = function( obj, res ) {
var lesson_shoucang = ( obj.attr('class').indexOf('lesson-shoucang') >= 0 ? true : false );
var cancel_fav = ( obj.attr('class').indexOf('cancel-favorites') >= 0 ? true : false );
var user_home = typeof(JKXY.user_home)!='undefined' ? JKXY.user_home : false;
var no_content_fav = typeof(JKXY.no_content_fav)!='undefined' ? JKXY.no_content_fav : '';
if( res.info.status >= 1 )
{
// 课程卡左上角图标
if( lesson_shoucang === true )
{
obj.addClass('ysc');
}
// 课时播放器的收藏动作
if( obj.hasClass('shouchang') || obj.hasClass('sc_btn') )
{
$('.shouchang').attr('s', 1).find('i').addClass("ysc");
$('.sc_btn').html('已收藏').addClass('sc_btn_favor');
}
// 学习中心收藏课程
if( user_home === true )
{
var home_course_obj = $('#home_course');
home_course_obj.find('li').each(function(){
if( res.info.other.oid == $(this).attr('courseid') )
{
$(this).find('.lesson-shoucang').addClass('ysc');
var home_my_fav_obj = $('#home_my_fav');
var goon = true;
home_my_fav_obj.find('li').each(function(){
if( $(this).attr('courseid') == res.info.other.oid )
{
goon = false;
}
});
if( goon === true )
{
var course_copy = $(this).clone();
home_my_fav_obj.find('.no-contnet-block').remove();
course_copy.find('.lesson-shoucang').remove();
course_copy.find('.cancel-favorites').removeClass('cancel-stop').attr({oid:res.info.other.oid,s:1}).on("click", function(){
userDoItFunc($(this));
});
JKXY.CJT.lessonOut( {}, course_copy );
home_my_fav_obj.append( course_copy );
course_copy.hover(
JKXY.CJT.lessonHover,
JKXY.CJT.lessonOut
);
}
}
});
}
}
else
{
if( obj.hasClass('shouchang') || obj.hasClass('sc_btn') )
{
$('.shouchang').attr('s', 0).find('i').removeClass("ysc");
$('.sc_btn').removeClass('sc_btn_favor').html('收藏');
}
if( lesson_shoucang === true )
{
obj.removeClass('ysc');
}
// 学习中心【我收藏的课程】取消收藏
if( cancel_fav === true || user_home === true )
{
var home_my_fav_obj = $('#home_my_fav');
if( home_my_fav_obj.find('li').length > 1 )
{
home_my_fav_obj.find('li').each(function(){
if( res.info.other.oid == $(this).attr('courseid') )
{
$(this).remove();
}
});
}
else
{
home_my_fav_obj.html( no_content_fav );
}
var home_course_obj = $('#home_course');
home_course_obj.find('li').each(function(){
if( res.info.other.oid == $(this).attr('courseid') )
{
$(this).find('.lesson-shoucang').removeClass('ysc');
}
});
}
}
};
$('.user-action').on("click", function(){
//$('#wiki_lists').delegate('.user-action' , "click", function(){
userDoItFunc( $(this) );
});
//$('.user-action').on("click", function(){
$('#wiki_lists').delegate('.user-action' , "click", function(){
userDoItFunc( $(this) );
});
function userDoItFunc(obj)
{
if( typeof(obj) == 'undefined' )
{
return false;
}
var obj = obj;
var mid = obj.attr('mid');
var oid = obj.attr('oid');
var s_now = obj.attr('s');
var cls_y = obj.attr('clsy');
var cls_n = obj.attr('clsn');
var oper = obj.attr('oper');
function btnDefault()
{
obj.attr('stop', 0);
}
function btnStop()
{
obj.attr('stop', 1);
}
if( mid && oid )
{
if( obj.attr('stop') == 1 )
{
return false;
}
btnStop();
var data = '&mid='+mid+'&oid='+oid+'&s_now='+s_now+'&cls_y='+cls_y+'&cls_n='+cls_n+'&oper='+oper;
var sub_url = '/ajax/userDoIt?'+Math.random();
$.ajax({url: sub_url+Math.random(), data: data, dataType: 'json', type: 'POST',
success: function(res){
if( res.status )
{
btnDefault();
var func_string = res.info.callBackFunc;
var callBackFunc= new Function( 'return JKXY.'+func_string+';')();
if( typeof( callBackFunc ) == 'function' )
{
if( res.info.status )
{
obj.attr('s', 1);
}
else
{
obj.attr('s', 0);
}
callBackFunc(obj, res);
}
else
{
if( res.info.status )
{
obj.attr('s', 1).removeClass(cls_n).addClass(cls_y);
}
else
{
obj.attr('s', 0).removeClass(cls_y).addClass(cls_n);
}
}
}
else
{
btnDefault();
if( res.info.msg.indexOf('登录') >= 0 )
{
loginpop.pop();
}
JKXY.CJT.login(1, res.info.msg);
}
}
});
}
else
{
btnDefault();
}
}
JKXY.statis.init();
});
/ 邮箱,密码,密码强度,验证码
(function($) {
//检测邮箱是否为空
$.fn.ckEmailEmpty =function(txt){
var $this = $(this);
var val = $(this).val().trim();
if(val == ''){
$this.next('.warning').remove();
if(arguments.length == 0){
$this.after("<span class='warning empty' cktype='false'>请输入邮箱</span>");
} else{
$this.after("<span class='warning empty' cktype='false'>"+txt+"</span>");
}
$this.bind("focus",function(){
$this.next('.warning').remove();
})
return false;
} else{
return true;
}
},
// 邮箱检测
$.fn.ckEmail = function(url,type) { //邮箱检测
if(type!= null){
$(this).bind(type,checkEmail);
} else{
(this).bind("focusout",checkEmail);
}
function checkEmail(){
$(this).next('.warning').remove();
$(this).after("<span class='warning'></span>")
var val = $(this).val().trim();
var check = /^[A-Z_a-z0-9-\.]+@([A-Z_a-z0-9-]+\.)+[a-z0-9A-Z]{2,4}$/.test( val );
if(check){
if(url != null){
var $this = $(this);
$.post(url,{ 'email':val, 'isajax':1},function(data){
if(data.status == '1'){
console.log($(this))
$this.next(".warning").removeClass('wrong').addClass("right").html("");
$this.next(".warning").attr("cktype","true");
return true
}else{
$this.next(".warning").removeClass('right').addClass("wrong").html("邮箱已存在");
$this.next(".warning").attr("cktype","false");
return false;
}
},'json');
} else{
$(this).next(".warning").addClass("right").html("");
$(this).next(".warning").attr("cktype","true");
}
}else{
$(this).next(".warning").addClass("wrong").html("邮箱输入有误");
$(this).next(".warning").attr("cktype","false");
}
}
};
// 检测密码是否为空
$.fn.ckPassWordEmpty=function(){
var $this = $(this);
var val = $(this).val().trim();
if(val == ''){
$this.next('.warning').next('.warning').remove();
$this.next('.warning').after("<span class='warning empty' cktype='false'>请输入密码</span>");
$this.bind('focus',function(){
$this.next('.warning').next('.warning').remove();
});
return false;
} else{
$this.next().next('.warning').remove();
$this.next().after("<span class='warning right' cktype='true'></span>");
return true;
}
}
// 检测 用户中心的密码是否为空
$.fn.ckPassWordEmptyByUcenter = function(){
var $this = $(this);
var val = $(this).val().trim();
if(val == '')
{
$this.next().next('.warning').remove();
$this.next().after("<span class='warning wrong mar-l90' cktype='false'>密码不能为空</span>");
$this.bind('focus',function(){
$this.next().next('.warning').remove();
});
return false;
} else{
$this.next().next('.warning').remove();
$this.next().after("<span class='warning right mar-l90' cktype='true'></span>");
return true;
}
};
// 密码重复对比校验
$.fn.ckrpeatPassWrod = function(a,b,type){
if(type != null) {
$(this).bind(type, test)
}else{
$(this).bind('focusout', test)
}
function test(){
var pw1 = $.trim($(a).val());
var pw2 = $.trim($(b).val());
console.log(pw1+"="+pw2)
if(pw1!= ''&& pw2 != '' ){
if( pw1 === pw2){
$(this).next().next('.warning').remove();
$(this).next().after("<span class='warning right' cktype='true'></span>");
return true;
} else{
$(this).next().next('.warning').remove();
$(this).next().after("<span class='warning wrong' cktype='false'>密码不一致</span>");
return false;
}
}
}
}
// 密码检测
$.fn.ckPassWord = function(s){ //密码强度检测 "stong"为检查强弱度
var STRONG = '<div class="safety pwd-strong">'
STRONG+='<span class="level-1" level="1">弱</span>'
STRONG+='<span class="level-2" level="2">中</span>'
STRONG+='<span class="level-3" level="3">强</span> </div>';
$this = $(this);
if(s == "strong"){
$('.pwd-strong').remove();
$this.after(STRONG);
$this.bind("keyup",function(){
var val = $this.val().trim();
pwdStrong.passwordLen(val);
pwdStrong.genReport( $this, val );
})
$(this).bind('focusout',function(){
var val = $this.val().trim();
pwdStrong. passwordSix(val)
})
} else if(arguments.length == 0) {
$this.bind("keyup",function(){
var val = $this.val().trim();
pwdStrong.passwordLen(val);
})
$(this).bind('focusout',function(){
var val = $this.val().trim();
if(val != ''){
pwdStrong. passwordSix(val)
}
})
}
};
// 检测确认密码是否为空
$.fn.ckRepasswordEmpty = function(){
var $this = $(this);
var val = $(this).val().trim();
if(val == '')
{
$this.next('.warning').remove();
$this.after("<span class='warning wrong mar-l90' cktype='false'>请再次输入一遍确认密码</span>");
$this.bind("focus",function(){
$this.next('.warning').remove();
})
return false;
}
else
{
return true;
}
}
// 检测确认密码格式是否哦正确
$.fn.ckRepassword = function(source_pwd_obj){
$(this).bind("focusout", checkRePassword);
function checkRePassword()
{
$(this).next('.warning').remove();
$(this).after("<span class='warning'></span>");
var val = $(this).val().trim();
if( val && source_pwd_obj.val() == val )
{
$(this).next(".warning").addClass("right").html("");
$(this).next(".warning").attr("cktype","true");
}
else
{
$(this).next(".warning").addClass("wrong mar-l90").html("保证两次密码输入一致");
$(this).next(".warning").attr("cktype","false");
}
}
}
//检测验证码是否为空
$.fn.checkSafeEmpty = function(){
var $this = $(this);
var val = $(this).val().trim();
if(val == ''){
$this.parent().find('.warning').remove()
$this.parent().append("<span class='warning empty' cktype='false'>请输入验证码</span>");
$this.bind("focus",function(){
$this.parent().find('.warning').remove()
})
return false;
} else{
return true;
}
};
//验证码检测
$.fn.checkSafe = function( url,type){ //检测验证码 验证码图片和 换一张的class要求一致
$('body').delegate('.security-code,.warning-word','click',function(){
var timenow = new Date().getTime();
$('.security-code>img').attr("src", '/verify/show.html?'+timenow);
})
var $this = $(this);
if(type != null){
$(this).bind(type, safe)
} else{
var _class = $(this).selector;
$('body').delegate(_class,"focusout",safe);
//$(this).bind("keyup", safe)
}
function safe(){
var obj = $(this);
var val = obj.val().trim();
if(val == ''){
obj.parent().find('.warning').remove()
obj.parent().append("<span class='warning empty' cktype='false'>请输入验证码</span>");
return false
} else{
$.post(url,{safecode:val},function(data){
if(data == true){
obj.parent().find('.warning').remove();
} else{
obj.parent().find('.warning').remove()
obj.parent().append("<span class='warning wrong' cktype='false'>验证码错误</span>");
$('.security-code').click();
}
},'json');
}
}
}
// 手机号检测
$.fn.ckPhone = function(type) {
if(type!= null)
{
$(this).bind(type, isPhone);
}
else
{
$(this).bind("focusout", isPhone);
}
function isPhone()
{
$(this).next('.warning').remove();
$(this).after("<span class='warning'></span>");
var val = $(this).val().trim();
var preg = /^(1[0-9])\d{9}$/;
var check = preg.test( val );
if( check )
{
$(this).next(".warning").addClass("right").html("");
$(this).next(".warning").attr("cktype","true");
}
else
{
$(this).next(".warning").addClass("wrong").html("手机号码输入错误");
$(this).next(".warning").attr("cktype","false");
}
if( val == '' )
{
$(this).next(".warning").addClass("right").html("");
$(this).next(".warning").attr("cktype","false");
}
}
};
String.prototype.rTrim=function(){ //去右空格
var re_r=/([.\w]+)[ ]*$/;
return this.replace(re_r,"$1");
}
String.prototype.lTrim=function(){ //去左空格
var re_l=/^[ ]+(.+)/;
return this.replace(re_l,"$1")
}
String.prototype.trim=function(){ //去左右空格
return this.lTrim().rTrim()
}
})(jQuery);
//登录弹出框
//(function($){
var loginpop = {
init: function () {
this.bindEle();
},
popHtml: function () {
var html = '<div id="login-pop" class="dialog">';
html += '<div class="dialog-box">';
html += ' <h3><i class="popclose"></i>登录</h3>';
html += '<div class="pop-input-list">';
html += ' <ul style="height:170px;">';
html += ' <li> <img src="'+ cdn_url +'images/right.png" class="right" style="display: none">';
html += ' <li>';
html += ' <input type="text" placeholder="邮箱/用户名" class="user-name" id="user-name"/>';
html += '<p class="color-red pop-warning"></p>';
html += ' </li>';
html += ' <li class="mar-b20">';
// html+=' <img src="'+ cdn_url +'images/right.png" class="right">';
html += ' <input type="password" placeholder="密码" class="user-password" id="user-password" size="32"/>';
html += ' <input type="hidden" id="verifypwd" name="verifypwd" />';
html += '<p class="color-red pop-warning2"></p>';
html += ' </li>';
html += ' <li class="cf">';
html += '<input type="text" class="input-tow uer-safe" placeholder="验证码" />';
html += ' <div class="security-code"> <img src="/verify/show.html"></div>';
html += '<span class="warning-word"> 看不清楚?换一张</span>';
html += '<span class="color-red pop-warning4" cktype="false" style="display: none"></span>'
html += ' </li></ul>';
html += ' <div class="inputbox cf">';
html += '<div class="sevenday"><i class="choose-this checkbox"></i>7天内免登录 <a href="/sso/forget.html" >忘记密码?</a></div>';
html += ' </div> <button class="greenbtn mar-b20" id="loginbtn">登录</button>';
html += ' <div class="no-zhanghao">还没有账号?<a href="javascript:void(0)" class="regnow">立即注册</a></div>';
html += '<h4 class="mar-b20 mar-t40">用第三方账号登录</h4>';
html += ' <ul class="login-three cf">';
html += ' <li><a href="'+ qq_login_url +'"><img src="'+ cdn_url +'images/qq-s.png"><span>QQ账号登录</span></li>';
html += '<li><a href="'+ weibo_login_url +'"><img src="'+ cdn_url +'images/sina-s.png"><span>新浪账号登录</span></li>';
html += ' <li><a href="'+ eoe_login_url +'"><img src="'+ cdn_url +'images/eoe-s.png"><span>eoe账号登录</span></li>';
html += ' <li><a href="'+ wx_login_url +'"><img src="'+ cdn_url +'images/wx-s.png"><span>微信账号登录</span></li>';
html += '</ul>'
html += ' </div>';
html += '</div>';
html += '</div>';
return html;
},
bindEle: function () {
$('.diaLoginBtn').bind("click", this.pop)
},
pop: function () {
$().tooltip("pop", {
width: 420,
height: 548,
popId: '#login-pop',
opacity: 0.4,
popHtml: loginpop.popHtml(),
popFunc: loginpop.tijiao()
})
JKXY.safeCode.init($('#login-pop').find('input[name=verifypwd]'));
},
tijiao: function () {
//$('.uer-safe').checkSafe('/sso/checkSafeCode');//验证码检测
$('body').delegate('.security-code,.warning-word','click',function(){
var timenow = new Date().getTime();
$('.security-code>img').attr("src", '/verify/show.html?'+timenow);
})
var _day = 7;
$('body').delegate('.checkbox', 'click', function () {
if ($('.checkbox').hasClass("choose-this")) {
$('.checkbox').removeClass("choose-this");
_day = 0;
} else {
$('.checkbox').addClass("choose-this");
_day = 7;
}
})
var lock = 0;
$('body').delegate('#loginbtn', "click", loginFun);
function loginFun(){
if (lock == 1) return false;
var username = $.trim($('#user-name').val());
var userpassWord = $.trim($('#user-password').val());
var uersafe = $.trim($('.uer-safe').val());
$('#user-name').bind("focus", function () {
$('.pop-warning').empty();
});
$('#user-password').bind('focus', function () {
$('.pop-warning2').empty();
});
$('.uer-safe').bind('focus', function () {
$('.pop-warning4').empty();
})
if (username == "") {
$('.pop-warning').html("邮箱/用户名不能为空!");
} else if (userpassWord == "") {
$('.pop-warning2').html("密码不能为空!");
} else if (uersafe == "") {
$('.pop-warning4').html("请输入验证码!").show();
} else {
$.post('/sso/checkSafeCode',{safecode: $.trim($('.uer-safe').val())},function(data){
if(data == true) {
lock = 1;
var url = "/sso/chklogin";
var username = $.trim($('#user-name').val());
var userpassWord = $.trim($('#user-password').val());
var uersafe = $.trim($('.uer-safe').val());
var data = {
'username': username,
'password': JKXY.safeCode.aesCode(userpassWord,$('#login-pop').find('input[name=verifypwd]').val()),
'verify': uersafe,
'isajax': 1,
'authcode': _day
}
$.post(url, data, function (data) {
if (data.status == '1') {
JKXY.msgBox(1, data.info, 2000, function () {
lock = 0;
})
delayJumpUrl(data.jumpUrl, 2000);
} else {
JKXY.msgBox(0, data.info, 2000, function () {
lock = 0;
});
$('.security-code').click();
$('.uer-safe').val('');
}
//lock = 0;
}, 'json');
}else {
$('.pop-warning4').html("验证码错误!").show();
$('.security-code').click();
}
}, 'json');
};
}
}
}
$(function(){
loginpop.init();
$(".mod-tips .close").on('click',function(){
$(this).parents('.mod-tips').remove();
});
$('#diaLoginBtn,.diaLoginBtn').on('click',function(){loginpop.pop();})
$('body').delegate('.loginnow','click',function(){
$('.popclose').click();
loginpop.pop();
});
})
//})(jQuery)
//注册弹出框
//(function($){
var regpop = {
init: function () {
this.bindEle();
},
popHtml: function () { //注册
var html = '<div id="reg-pop" class="dialog">';
html += '<div class="dialog-box">';
html += ' <h3><i class="popclose"></i>注册</h3>';
html += '<div class="pop-input-list">';
html += ' <ul style="height:170px;">';
html += ' <li> <img src="'+ cdn_url +'images/right.png" class="right" style="display: none">';
html += ' <li>';
html += ' <input type="text" placeholder="邮箱" class="user-name" id="user-name"/>';
html += '<p class="color-red pop-warning"></p>';
html += ' </li>';
html += ' <li class="mar-b20">';
// html+=' <img src="'+ cdn_url +'images/right.png" class="right">';
html += ' <input type="password" placeholder="密码" class="user-password" id="user-password" size="32"/>';
html += '<div class="safety pwd-strong" style="margin-top: 5px;">'
html +='<span class="level-1" level="1">弱</span>'
html +='<span class="level-2" level="2">中</span>'
html +='<span class="level-3" level="3">强</span> </div>';
html += ' <input type="hidden" id="verifypwd" name="verifypwd" />';
html += '<p class="color-red pop-warning2"></p>';
html += ' </li>';
html += ' <li class="cf">';
html += '<input type="text" class="input-tow uer-safe" placeholder="验证码" />';
html += ' <div class="security-code"> <img src="/verify/show.html"></div>';
html += '<span class="warning-word"> 看不清楚?换一张</span>';
html += '<span class="color-red pop-warning4" cktype="false" style="height:20px;"></span>'
html += ' </li></ul>';
html += ' <div class="inputbox cf">';
// html += '<div class="sevenday"><i class="choose-this checkbox"></i>7天内免登录 <a href="/sso/forget.html" >忘记密码?</a></div>';
html += ' </div> <button class="greenbtn mar-t20" id="reg-nbtn">同意用户协议,注册</button>';
html += '<div class="user-xy"><a href="/help/service.html" target="_blank">《极客学院用户协议》</a> </div>'
html += ' <div class="no-zhanghao">已有账号?<a href="javascript:void(0)" class="loginnow">立即登录</a></div>';
html += '<h4 class="mar-b20 mar-t40">用第三方账号登录</h4>';
html += ' <ul class="login-three cf">';
html += ' <li><a href="'+ qq_login_url +'"><img src="'+ cdn_url +'images/qq-s.png"><span>QQ账号登录</span></li>';
html += '<li><a href="'+ weibo_login_url +'"><img src="'+ cdn_url +'images/sina-s.png"><span>新浪账号登录</span></li>';
html += ' <li><a href="'+ eoe_login_url +'"><img src="'+ cdn_url +'images/eoe-s.png"><span>eoe账号登录</span></li>';
html += ' <li><a href="'+ wx_login_url +'"><img src="'+ cdn_url +'images/wx-s.png"><span>微信账号登录</span></li>';
html += '</ul>'
html += ' </div>';
html += '</div>';
html += '</div>';
return html;
},
bindEle: function () {
// $('.diaLoginBtn').bind("click", this.pop)
},
pop: function () {
$().tooltip("pop", {
width: 420,
height: 548,
popId: '#reg-pop',
opacity: 0.4,
popHtml: regpop.popHtml(),
popFunc: regpop.tijiao()
})
JKXY.safeCode.init($('#reg-pop').find('input[name=verifypwd]'));
},
tijiao: function () {
var $this = $('#user-password');
$('body').delegate("#user-password","keyup",function(){
var val = $("#user-password").val();
pwdStrong.passwordLen(val,".pop-warning2","只能包括英文字母、数字和下划线及半角标点符号");
pwdStrong.genReport( $('#user-password'), val );
})
$('body').delegate("#user-name","focus", function () {
$('.pop-warning').empty();
});
$('body').delegate('#user-password','focus', function () {
$('.pop-warning2').empty();
});
$('body').delegate('.uer-safe','focus', function () {
$('.pop-warning4').empty();
})
$('body').delegate('.security-code,.warning-word','click',function(){
var timenow = new Date().getTime();
$('.security-code>img').attr("src", '/verify/show.html?'+timenow);
})
var lock = 0;
$('body').delegate('#reg-nbtn', "click", loginFun);
function loginFun(){
if (lock == 1) return false;
var username = $.trim($('#user-name').val());
var userpassWord = $.trim($('#user-password').val());
var uersafe = $.trim($('.uer-safe').val());
if (username == "") {
$('.pop-warning').html("邮箱不能为空!");
} else if (isEmail(username) == false) {
$('.pop-warning').html("邮箱格式错误!");
} else {
var _email = $.trim($('#user-name').val());
$.post('/sso/checkemail',{ 'email':_email, 'isajax':1},function(data){
if(data.status == '1'){
if (userpassWord == "") {
$('.pop-warning2').html("密码不能为空!");
} else if(userpassWord.length<6){
$('.pop-warning2').html("密码不能小于6位!");
} else if (uersafe == "") {
$('.pop-warning4').html("请输入验证码!").show();
} else {
$.post('/sso/checkSafeCode',{safecode: $.trim($('.uer-safe').val())},function(data){
if(data == true) {
lock = 1;
var url = "/sso/chkreg";
var username = $.trim($('#user-name').val());
var userpassWord = $.trim($('#user-password').val());
var uersafe = $.trim($('.uer-safe').val());
var data = { 'email': username, 'password': userpassWord, 'verify': uersafe}
$.post(url, data, function (data) {
if (data.status == '1') {
window.location.href =data.jumpUrl;
} else {
JKXY.msgBox(0, data.info);
if (typeof(data.jumpUrl) != "undefined") {
delayJumpUrl(data.jumpUrl, 2000);
}
lock = 0;
}
}, 'json');
}else {
$('.pop-warning4').html("验证码错误!").show();
$('.security-code').click();
}
}, 'json');
};
}else{
$('.pop-warning').html("邮箱已存在!");
}
});
}
}
}
}
$(function(){
loginpop.init();
$(".mod-tips .close").on('click',function(){
$(this).parents('.mod-tips').remove();
});
$('#diaregBtn,.diaRegBtn').on('click',function(){regpop.pop();})
$('body').delegate('.regnow','click',function(){
$('.popclose').click();
regpop.pop();
});
})
//})(jQuery)
//延时跳转
var delayJumpUrl = function(url,millisec){
setTimeout(function(){
window.location.href = url;
},millisec)
}
var domain = function(url){
var durl=/http:\/\/([^\/]+)\//i;
var hosts = url.match(durl);
hosts = hosts[1];
d_arr = hosts.split('.');
hosts = d_arr[d_arr.length - 2] + '.' + d_arr[d_arr.length - 1];
return hosts;
}
var domain_pre = function(url){
var durl=/http:\/\/([^\/]+)\//i;
var hosts = url.match(durl);
hosts = hosts[1];
d_arr = hosts.split('.');
return d_arr[0];
}
//搜索推荐
function commonSearch(){
//获取类型页面,以及输入的内容
var data = {
'type' : 'course',
'term' : ''
};
data['term'] = $('#web_search_header').val();
$.ajax({
type:'get',
url : 'http://search.'+ domain(window.location.href) +'/Index/suggest',
data : data ,
dataType : 'jsonp',
jsonp:"jsonpcallback",
success : function(data) {
if (data) {
if(data.length>0){
$('.keyword-list').show();
} else{
$('.keyword-list').hide();
}
var str = '';
for(var i=0;i<data.length;i++) {
if(i<6) {
str += "<li class='current'><a href='http://search."+domain(window.location.href)+"/s/t_course|sfilter_1|q_"+data[i]+"'> " + data[i] + "</a></li>";
}
}
$(".result-list").html(str);
//console.log(data);
};
},
error : function() {
console.log("Fail");
}
});
}
function isEmail( source ) {
return /^[A-Z_a-z0-9-\.]+@([A-Z_a-z0-9-]+\.)+[a-z0-9A-Z]{2,4}$/.test( source );
};
function isMobile( source ) {
return /^((\(\d{2,3}\))|(\d{3}\-))?(1[34578]\d{9})$/.test(source);
};
function isOkEmial(url,val){
$.post(url,{ 'email':val, 'isajax':1},function(data){
if(data.status == '1'){
console.log(data.info)
return true;
}else{
return false;
}
},'json');
}
// 密码加密
JKXY.safeCode = {
init:function(obj){
var obj = obj;
var data = {isajax:1};
$.post('/sso/genPwdVerify',data,function(json){
obj.val(json.code);
},'json');
},
//规避生成“+”号的加密密码 551434 504396
aesCode : function(pwd,safecode){
if( pwd && safecode )
{
var key_hash = CryptoJS.MD5(safecode);
var key = CryptoJS.enc.Utf8.parse(key_hash);
var iv = CryptoJS.enc.Utf8.parse(key_hash.toString().substr(1^1, 16));
var passworded = CryptoJS.AES.encrypt(pwd.length+'|'+pwd, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
passworded = passworded.toString();
//passworded = passworded.replace( /(\+)/g, '*' );
//passworded = passworded.replace( /(\s)/g, '|' );
return passworded;
}
return false;
}
}
/* 密码强度检测 */
var pwdStrong = {
level:['', '太简单了', '一般般', '很安全'],
main: function( jq_obj, val ) {
if( val == '' )
{
return 0;
}
var jq_obj = jq_obj;
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(val) )
{
return 1;
}
else if (strongRegex.test(val))
{
return 3;
}
else if (mediumRegex.test(val))
{
return 2;
}
else
{
return 1;
}
return false;
},
genReport:function( jq_obj, val ) {
if( typeof(jq_obj) && jq_obj )
{
var level_id = pwdStrong.main( jq_obj, val );
pwdStrong.handleReport( jq_obj, level_id );
if( typeof( callBack ) == 'function' )
{
callBack( jq_obj, level_id );
}
}
},
passwordSix:function(value){
len = value.length
if(len < 6 && len>0){
$this.next().next('.warning').remove();
$this.next().after("<span class='warning wrong' cktype='false'>密码长度不小于6位</span>")
}else{
$this.next().next('.warning').remove();
}
},
passwordLen:function(value,cla,txt){ //字符限制
var realLength = 0, len = value.length, charCode = -1;
if(arguments.length== 1){
for (var i = 0; i < len; i++) {
charCode = value.charCodeAt(i);
if (charCode < 32 || charCode > 126){
$this.next().next('.warning').remove();
$this.next().after("<span class='warning wrong' cktype='false'>只能包括英文字母、数字和下划线及半角标点符号</span>")
} else {
$this.next('.warning').remove();
}
}
} else{
for (var i = 0; i < len; i++) {
charCode = value.charCodeAt(i);
if (charCode < 32 || charCode > 126){
$(cla).html(txt)
} else {
}
}
}
},
callBack: '',
handleReport: function( jq_obj, level_id ) {
switch (level_id){
case 1:
jq_obj.next('.pwd-strong').find('span').css("background",'#ddd');
jq_obj.next('.pwd-strong').find('span').eq(0).css("background","#da4619");
break;
case 2:
jq_obj.next('.pwd-strong').find('span').css("background",'#ddd');
jq_obj.next('.pwd-strong').find('span:lt(2)').css("background","#ff5c00");
break;
case 3:
jq_obj.next('.pwd-strong').find('span').css("background",'#35b558');
break;
}
// jq_obj.next('.pwd-strong').find('span').each(function(){
//
//
if( $(this).attr('level') <= level_id )
{
$(this).removeClass('active').addClass('active');
}
else
{
$(this).removeClass('active');
}
// });
}
};
/*
* @project jikejie
* @copyright www.jikexueyuan.com
* @author zhanghaibin
*/
var JKJP = {
init: function() {
this.bindEle();
this.swiper();
this.floatNav();
this.getServerTime();
this.tabEvent(".jkj-works-tab .tabs li", ".jkj-works-tab .tabbed .tabGroup", "curr");
},
getServerTime: function(){
//获取服务器活动的时间
$.ajax({
url : '/index/getServerTime',
type : 'POST' ,
data : '' ,
dataType : 'json' ,
contentType : "application/x-www-form-urlencoded; charset=utf-8",
success : function(res){
var server_time = res ;
var tmEndDate = new Date("2015/03/23 00:00:00"),
aEndDate = new Date("2015/03/25 00:00:00"),
jEndDate = new Date("2015/03/31 01:00:00");
JKJP.tmCountdown(server_time, tmEndDate);
JKJP.activityCountdown(server_time, aEndDate);
JKJP.jobCountdown(server_time, jEndDate);
}
});
},
bindEle: function() {
$('.backTop' ).bind('click', this.backTop);
$('.jkj-share').bind('click',this.weiboShare);
$('#jkj-prize').bind('click', function() {
JKJP.prizePop(JKJP.prizeBeforeHtml());
});
$('#video_profile').bind('click' , function(){
JKJP.videoHandle('video_profile');
});
$('.video_profile1').delegate('video' , 'click' , function(){
JKJP.videoHandle('video_profile1');
});
},
videoHandle:function(id){
var myVideo=document.getElementById(id);
if (myVideo.paused) {
//视频播放记录
var data = {'type' : 'videoRecord' , 'activity' : 'prepare'}
$.ajax({
type : 'POST' ,
url : '/shiguangji/hNum' ,
data : data ,
dataType : 'json' ,
contentType : "application/x-www-form-urlencoded; charset=utf-8",
success : function(res){
}
});
};
},
reload: function() {
location.reload();
},
activityCountdown: function(startdate,enddate) {
if ($('#jkj-code')) {
$('#jkj-code').typing();
}
//活动开始倒计时
var _time = new JKJP.showTimes(startdate, enddate, 1000);
_time.atTime(_a, _b);
function _a() {
$('#jkj-countdown').hide();
JKJP.links() ;
JKJP.tipsPop('.jkj-jsq .jkj-tips-rule', '#jkj-jsq-tips');
JKJP.tipsPop('.jkj-works .jkj-tips-awards', '#jkj-works-tips');
$('.jkj-cloud, #jkj-video').hide();
$('.jkj-cloud:last').show();
$('.jkj-qrcode').remove();
$('.jkj-works-tab .tabs li, #jkj-jsqBtnMonth, #jkj-jsqBtnYear').addClass("jkj-link-pointer" );
$('#jkj-prize').removeClass('jkj-prize-over').addClass('jkj-video-link');
//解绑
$('#jkj-prize').unbind('click');
//绑定video弹出事件
$('.jkj-video-link').bind('click', JKJP.videoPop);
}
function _b() {
$('#jkj-countdown').html('<span>' + arguments[0] + '</span><span>' + arguments[1] + '</span><span>' + arguments[2] + '</span><span>' + arguments[3] + '</span>');
$('#jkj-video,.jkj-cloud').show();
$('#jkj-countdown').show();
}
},
tmCountdown: function(startdate, enddate) {
//招聘开始倒计时
var _time = new JKJP.showTimes(startdate, enddate, 1000);
_time.atTime(_a, _b);
function _a() {
$('#jkj-timemachine a').attr("href", jkj_url + "/shiguangji").addClass("jkj-link-pointer");
}
function _b() {
}
},
jobCountdown: function(startdate, enddate) {
//招聘开始倒计时
var _time = new JKJP.showTimes(startdate, enddate, 1000);
_time.atTime(_a, _b);
function _a() {
$('.jkj-goto-job').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
$('#jkj-jobBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
$('.jkj-cloud').hide();
}
function _b() {
}
},
swiper: function() {
var partnerSwiper = new Swiper('#jkj-partner .swiper-container', {
loop: true,
grabCursor: true,
autoplay: 5000,
slidesPerView: 5
});
$('#jkj-partner .arrow-left').on('click', function(e) {
e.preventDefault()
partnerSwiper.swipePrev()
});
$('#jkj-partner .arrow-right').on('click', function(e) {
e.preventDefault()
partnerSwiper.swipeNext()
});
},
floatNav: function(){
var $this = $('#jkj-floatNav');
var myDivTop = $this.position().top;
$(window).scroll(function(){
var scrollTop = $(document).scrollTop();
if(scrollTop >= myDivTop - 200){
$this.addClass('fixed');
} else if (scrollTop <= myDivTop) {
$this.removeClass('fixed');
};
});
},
tipsPop: function(obj, tips) {
$(obj).hover(function() {
$(this).addClass('jkj-link-pointer');
$(tips).show();
}, function() {
$(tips).hide();
});
},
links: function() {
$('.jkj-goto-works').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
$('.jkj-goto-jzy').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
$('#jkj-jzyBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
$('#jkj-worksBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
$('#jkj-worksBtn').attr("href", "http://325.jikexueyuan.com").addClass("jkj-link-pointer");
},
backTop: function(obj) {
$('html,body').animate({scrollTop: 0},300);
},
weiboShare: function() {
new ShareTo.weibo();
},
tabEvent: function(tabs, tabGroup, curr) {
var $tabs = $(tabs),
$tabGroup = $(tabGroup);
$tabs.each(function(i) {
var $this = $(this);
$tabs.eq(0).mouseover();
$this.mouseover(function() {
$tabs.removeClass(curr);
$this.addClass(curr);
$tabGroup.eq(i).show().siblings().hide();
})
});
},
videoPop: function() {
$('#jkj-video').tooltip("pop", {
width: 550,
height: 340,
popId: '#jkj-video',
opacity: 0.4,
popFunc: function() {
$('#jkj-video').children('.jkj-video').addClass('jkj-video-pop');
}
});
},
prizeBeforeHtml: function() {
if (isLogin) {
var data = {'isAjax' : 1};
$.ajax({
type : 'POST' ,
url : '/index/handleReward' ,
data : data ,
dataType : 'json' ,
contentType : "application/x-www-form-urlencoded; charset=utf-8",
success : function(res){
if (res.email_type == 1) {
if (res.end == 1) {
//如果登录且验证邮箱了且活动是非正常状态
JKJP.prizePop(JKJP.prizeEndHtml());
}else{
//如果登录且验证邮箱了且活动是正常状态
if (res.have_get) {
JKJP.prizePop(JKJP.prizeAfterHtml());
}else{
JKJP.prizePop(JKJP.prizeHtml());
};
};
}else{
//如果登录但是没有验证邮箱
JKJP.prizePop(JKJP.prizeEmailNoType());
};
}
});
}/*else{
//如果没有登录,弹窗提示
var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
html += '<div class="dialog-box">';
html += ' <h3><i class="popclose"></i></h3>';
html += '<div class="bd">';
html += '<h4>抱歉,登录之后才能领取礼包!</h4>';
html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
html += '</div>';
html += '</div>';
html += '</div>';
};*/
//return html;
},
prizeHtml: function(){
//成功领取礼包的提示
var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
html += '<div class="dialog-box">';
html += ' <h3><i class="popclose"></i></h3>';
html += '<div class="bd">';
html += '<h4>恭喜你成功领取 极客节礼包</h4>';
html += '<p>极客学院5天VIP</p>';
html += '<p>Uber打车 30元首程兑换券(兑换码:JIKEXUEYUAN)</p>';
html += '<p>功夫熊上门推拿 100元兑换券(兑换码:jike85)</p>';
html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
html += '</div>';
html += '</div>';
html += '</div>';
return html ;
},
prizeEmailNoType: function(){
//没有验证邮箱的提示
var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
html += '<div class="dialog-box">';
html += ' <h3><i class="popclose"></i></h3>';
html += '<div class="bd">';
html += '<h4>验证邮箱用户才能领取礼包!</h4><a target="_blank" style="font-size:14px;" href="'+www_url+'member/freevip.html">立即验证</a>';
html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
html += '</div>';
html += '</div>';
html += '</div>';
return html ;
},
prizeEndHtml: function(){
//验证邮箱,但是活动已经处于非正常状态的提示
var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop">';
html += '<div class="dialog-box">';
html += ' <h3><i class="popclose"></i></h3>';
html += '<div class="bd">';
html += '<h4>礼包已被抢光啦,下次要趁早哦~</h4>';
html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
html += '</div>';
html += '</div>';
html += '</div>';
return html ;
},
prizeAfterHtml: function() {
//礼品领取后的弹窗
var html = '<div id="jkj-prize-pop" class="dialog jkj-prize-pop jkj-prize-pop-over">';
html += '<div class="dialog-box">';
html += ' <h3><i class="popclose"></i></h3>';
html += '<div class="bd">';
html += '<h4>你已领取过 极客节礼包,礼包包含:</h4>';
html += '<p>极客学院5天VIP</p>';
html += '<p>Uber打车 30元首程兑换券(兑换码:JIKEXUEYUAN)</p>';
html += '<p>功夫熊上门推拿 100元兑换券(兑换码:jike85)</p>';
html += '<div class="btnWrap popclose"><a href="javascript:;" class="greenbtn jkj-btn">确认</a></div>';
html += '</div>';
html += '</div>';
html += '</div>';
return html;
},
prizePop: function(html) {
//礼品领取弹层
$().tooltip("pop", {
width: 550,
height: 'auto',
popId: '#jkj-prize-pop',
opacity: 0.4,
popHtml: html
});
}
};
(function ($) {
var clicknumber = 0;
var methods = {
init: function (options) {},
pop: function (options) {//弹出层
var _H = $(window).height() ;
var _W = $(window).width() ;
var jumpstop = 0;
var stop=1;
/*
* options.width(number) 弹出层宽度(必选)
* options.height(number) 弹出层高度(必选)
* options.zIndex(number) 弹出层index轴 ,默认为9999;(可选)
* options.poparent(jquery节点) 要插入的父节点,默认为‘body’(可选)
* options.opacity(0~1) 背景透明度(可选)
* option.popId(jqeury节点 ) 要插入的弹出层ID或者calss,最好为ID,强调唯一性!(必选)
* option.popHtml(插入弹出层元素结构) 如“<div id='test'></div>";(可选)
* option.popFunc(function方法) 弹出层回调方法;(可选)
* option.closePop(function方法) 关闭回调方法;(可选)
* option.time(1~100000)//X秒跳转,X为整数,如:1为1秒(可选)
* option.timeId(id)//为一个ID节点,用来储存时间显示(可选)
* option.url(URL)//一个链接,倒计时跳转路径。(可选)
* 关闭按钮约定名称为 calss = popclose;(可选)
* */
var settings = {
'width': 100,
'height':100,
'zIndex':9999,
'poparent':'body',
'opacity':0.5,
'popId':null,
'popHtml':null,
'popFunc':null,
'time':null,
'timeId':null,
'url':null,
'closePop':null
};
// 如果存在选项,则合并之
if (options) {
$.extend(settings, options);
}
var popTop;
var popLeft = (_W - settings.width) / 2;
if(settings.popHtml === null) {
return this.each(function () {
var $this = $(this);
if(settings.height =='auto'){
settings.height=$this.height();
};
popTop = (_H - settings.height) / 2;
$this.show();
$this.css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
closebox();
if(settings.time !== null ){
jump(settings.time,settings.timeId,settings.url);
}
});
}else if(settings.popHtml !==null){
$(settings.poparent).append(settings.popHtml);
if(settings.height =='auto'){
settings.height=$(settings.popId).height();
};
popTop = (_H - settings.height) / 2;
$(settings.popId).css({width: settings.width, height: settings.height, zIndex: settings.zIndex, top: popTop, left: popLeft,position: 'fixed'});
closebox()
};
function closebox(){
if(settings.popFunc !== null) {
settings.popFunc()
};
var backlayer ="<div id='blacklayer'></div>"
$("body").append(backlayer);
var dh = $(document).height();
$('#blacklayer').css({zIndex:settings.zIndex-10,background:"#000",opacity:settings.opacity,position:'absolute',left:0,top:0,width:'100%',height:dh})
$('.popclose').bind("click",function(){
stop=0;
$('#blacklayer').remove();
var myVideo=document.getElementById("video_profile");
myVideo.pause();
if(settings.popHtml === null){
$(settings.popId).hide();
} else{
$(settings.popId).remove();
}
if(settings.closePop!=null){
settings.closePop();
}
})
}
if(settings.time !== null ){
jump(settings.time,settings.timeId,settings.url);
}
function jump (time,element_id,url) { //X秒跳转
if(stop===0) return false
_jumpfunc = window.setTimeout(function(){
time--;
if(time > 0) {
if(jumpstop== 1 ){
return false;
} else{
$(element_id).html(time+"秒");
jump(time,element_id,url)
}
} else {
if(url ==null){
$('#blacklayer').remove();
$(settings.popId).remove();
} else{
document.location=url;
}
}
}, 1000);
}
},
tag: function (options) {//标签切换
var settings={
'type':"click",
'selected':'on',
'contentClass':'.content',
'func':null
};
// 如果存在选项,则合并之
if (options) {
$.extend(settings, options);
}
if(settings.type != 'click' && settings.type != 'mouseover' ) return false;
$(this).eq(0).addClass(settings.selected);
return this.each(function(){
var $this = $(this);
$(settings.contentClass).hide();
$(settings.contentClass).eq(0).show();
$this.bind(settings.type,contentShow);
function contentShow(){
var _index = $this.index();
$this.siblings().removeClass(settings.selected);
$this.addClass(settings.selected);
$(settings.contentClass).hide();
$(settings.contentClass).eq(_index).show();
if(settings.func!=null){
settings.func();
}
}
})
},
imgmove: function(options){//多小图片幻灯
var settings = {
oneEle:null,
oneWidth:null,
loop:false,
boxWidth:null,
prev:null,
next:null
}
// 如果存在选项,则合并之
if (options)
{
$.extend(settings, options);
}
function movefunc(){
var number = $(settings.oneEle).size();
var length =number*settings.oneWidth;
var boxlen = length/settings.boxWidth;
if(boxlen%settings.boxWidth > 0){
boxlen+1;
}
var par = $(settings.oneEle).parent();
if (settings.loop== true){
$(settings.oneEle).parent().width(length).css("left",-settings.oneWidth);
var par = $(settings.oneEle).parent();
var li = $(settings.oneEle).last();
par.prepend(li.clone())
li.remove();
} else{
$(settings.oneEle).parent().width(length);
}
$(settings.prev).click(function(){
if (settings.loop== true){
var li = $(settings.oneEle).last();
TweenMax.to(par, 1, {left:0,onComplete:function(){
par.prepend(li.clone())
par.css("left",-settings.oneWidth);
$(settings.oneEle).last().remove();
},ease:Quart.easeOut});
} else{
if(clicknumber>0){
clicknumber--;
TweenMax.to( par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});
};
}
});
$(settings.next).click(function(){
if (settings.loop== true){
TweenMax.to(par, 0.4, {left:-settings.oneWidth,onComplete:function(){
par.css("left","0px");
var li = $(settings.oneEle).slice(0, 1);
par.append(li.clone())
$(settings.oneEle).slice(0, 1).remove();
},ease:Quart.easeOut});
} else{
if(clicknumber<boxlen-1){
clicknumber++
TweenMax.to(par, 1, {left:-settings.boxWidth*clicknumber,ease:Quart.easeOut});
}
}
});
}
movefunc();
}
};
$.fn.tooltip = function (method) {
// Method calling logic
if (methods[method]) {
return methods[ method ].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.tooltip');
}
};
})(jQuery);
JKJP.showTimes = function (startTime, lastTime, step) {
this.startTime = Date.parse(startTime); //开始时间
this.lastTime = Date.parse(lastTime); //到期时间
this.step = step; //执行的阶段时间,一般是1秒,即1000
};
JKJP.showTimes.prototype = {
atTime: function (a, b) {
//参数说明:a:到期回调方法,b:倒计时回调方法
var that = this;
var timeold = parseFloat(Number(that.lastTime) - Number(that.startTime));
var msPerDay = 24 * 60 * 60 * 1000;
var e_daysold = timeold / msPerDay
var daysold = Math.floor(e_daysold); //天
var e_hrsold = (e_daysold - daysold) * 24;
var hrsold = Math.floor(e_hrsold); //小时
var e_minsold = (e_hrsold - hrsold) * 60;
var minsold = Math.floor((e_hrsold - hrsold) * 60); //分钟
var seconds = Math.floor((e_minsold - minsold) * 60); //秒
var msSeconds = Math.ceil(Math.floor(((e_minsold - minsold) * 60 - seconds) * 1000) / 100) * 10;
if (msSeconds == 100) {
msSeconds = 99;
}
if (that.startTime >= that.lastTime) {
arguments[0]();
} else {
arguments[1](that.getStr(daysold), that.getStr(hrsold), that.getStr(minsold), that.getStr(seconds), that.getStr(msSeconds));
that.startTime = parseInt(that.startTime) + that.step;
window.setTimeout(function () {
that.atTime(a, b);
}, that.step);
}
},
getStr: function (num) {
return num.toString().length < 2 ? "0" + num : num;
}
};
$(function() {
JKJP.init();
})