// JavaScript Document
function id(obj) {
return document.getElementById(obj);
}
function bind(obj, ev, fn) {
if (obj.addEventListener) {
obj.addEventListener(ev, fn, false);
} else {
obj.attachEvent('on' + ev, function() {
fn.call(obj);
});
}
}
function view() {
return {
w: document.documentElement.clientWidth,
h: document.documentElement.clientHeight
};
}
function addClass(obj, sClass) {
var aClass = obj.className.split(' ');
if (!obj.className) {
obj.className = sClass;
return;
}
for (var i = 0; i < aClass.length; i++) {
if (aClass[i] === sClass) return;
}
obj.className += ' ' + sClass;
}
function removeClass(obj, sClass) {
var aClass = obj.className.split(' ');
if (!obj.className) return;
for (var i = 0; i < aClass.length; i++) {
if (aClass[i] === sClass) {
aClass.splice(i, 1);
obj.className = aClass.join(' ');
break;
}
}
}
function fnLoad()
{
var iTime=new Date().getTime();
var oW=id("welcome");
var arr=[""];
var bImgLoad=true;
var bTime=false;
var oTimer=0;
bind(oW,"webkitTransitionEnd",end);
bind(oW,"transitionend",end);
oTimer=setInterval(function(){
if(new Date().getTime()-iTime>=5000)
{
bTime=true;
}
if(bImgLoad&&bTime)
{
clearInterval(oTimer);
oW.style.opacity=0;
}
},1000);
function end()
{
removeClass(oW,"pageShow");
fnTab();
}
/*for(var i=0;i<arr.length;i++)
{
var oImg=new Image();
oImg.src=arr[i];
oImg.onload=function()
{
}
}*/
}
function fnTab()
{
var oTab=id("tabPic");
var oList=id("picList");
var aNav=oTab.getElementsByTagName("nav")[0].children;
var iNow=0;
var iX=0;
var iW=view().w;
var oTimer=0;
var iStartTouchX=0;
var iStartX=0;
bind(oTab,"touchstart",fnStart);
bind(oTab,"touchmove",fnMove);
bind(oTab,"touchend",fnEnd);
auto();
if(!window.BfnScore)
{
fnScore();
window.BfnScore=true;
}
function auto()
{
oTimer=setInterval(function(){
iNow++;
iNow=iNow%aNav.length;
tab();
},2000);
}
function fnStart(ev)
{
oList.style.transition="none";
ev=ev.changedTouches[0];
iStartTouchX=ev.pageX;
iStartX=iX;
clearInterval(oTimer);
}
function fnMove(ev)
{
ev=ev.changedTouches[0];
var iDis=ev.pageX-iStartTouchX;
iX=iStartX+iDis;
oList.style.WebkitTransform=oList.style.transform="translateX("+iX+"px)";
}
function fnEnd()
{
iNow=iX/iW;
iNow=-Math.round(iNow);
if(iNow<0)
{
iNow=0;
}
if(iNow>aNav.length-1)
{
iNow=aNav.length-1;
}
tab();
auto();
}
function tab()
{
iX=-iNow*iW;
oList.style.transition="0.5s";
oList.style.WebkitTransform=oList.style.transform="translateX("+iX+"px)";
for(var i=0;i<aNav.length;i++)
{
removeClass(aNav[i],"active");
}
addClass(aNav[iNow],"active");
}
}
function fnScore()
{
var oScore=id("score");
var aLi=oScore.getElementsByTagName("li");
var arr=["好失望","没有想象的那么差","很一般","良好","棒极了"];
for(var i=0;i<aLi.length;i++)
{
fn(aLi[i]);
}
function fn(oLi)
{
var aNav=oLi.getElementsByTagName("a");
var oInput=oLi.getElementsByTagName("input")[0];
for(var i=0;i<aNav.length;i++)
{
aNav[i].index=i;
bind(aNav[i],"touchstart",function(){
for(var i=0;i<aNav.length;i++)
{
if(i<=this.index)
{
addClass(aNav[i],"active");
}
else
{
removeClass(aNav[i],"active");
}
}
oInput.value=arr[this.index];
});
}
}
fnIndex();
}
function fnInfo(oInfo,sInfo)
{
oInfo.innerHTML=sInfo;
oInfo.style.WebkitTransform="scale(1)";
oInfo.style.opacity=1;
setTimeout(function(){
oInfo.style.WebkitTransform="scale(0)";
oInfo.style.opacity=0;
},1000);
}
function fnIndex()
{
var oIndex=id("index");
var oBtn=oIndex.getElementsByClassName("btn")[0];
var oInfo=oIndex.getElementsByClassName("info")[0];
var bScore=false;
bind(oBtn,"touchend",fnEnd);
function fnEnd()
{
bScore=fnScoreChecked();
if(bScore)
{
if(bTag())
{
fnIndexOut();
}
else
{
fnInfo(oInfo,"给景区添加标签");
}
}
else
{
fnInfo(oInfo,"给景区评分");
}
}
function fnScoreChecked()
{
var oScore=id("score");
var aInput=oScore.getElementsByTagName("input");
for(var i=0;i<aInput.length;i++)
{
if(aInput[i].value==0)
{
return false;
}
}
return true;
}
function bTag()
{
var oTag=id("indexTag");
var aInput=oTag.getElementsByTagName("input");
for(var i=0;i<aInput.length;i++)
{
if(aInput[i].checked)
{
return true;
}
}
return false;
}
}
function fnIndexOut()
{
var oMask=id("mask");
var oIndex=id("index");
var oNew=id("news");
addClass(oMask,"pageShow");
addClass(oNew,"pageShow");
fnNews();
setTimeout(function(){
oMask.style.opacity=1;
oIndex.style.WebkitFilter=oIndex.style.filter="blur(5px)";
},14);
setTimeout(function(){
oNew.style.transition="0.5s";
oMask.style.opacity=0;
oIndex.style.WebkitFilter=oIndex.style.filter="blur(0px)";
oNew.style.opacity=1;
removeClass(oMask,"pageShow");
},3000);
}
function fnNews()
{
var oNews=id("news");
var oInfo=oNews.getElementsByClassName("info")[0];
var aInput=oNews.getElementsByTagName("input");
aInput[0].onchange=function()
{
if(this.files[0].type.split("/")[0]=="video")
{
fnNewsOut();
this.value="";
}
else
{
fnInfo(oInfo,"请上传视频");
}
};
aInput[1].onchange=function()
{
if(this.files[0].type.split("/")[0]=="image")
{
fnNewsOut();
this.value="";
}
else
{
fnInfo(oInfo,"请上传图片");
}
};
}
function fnNewsOut()
{
var oNews=id("news");
var oForm=id("form");
addClass(oForm,"pageShow");
oNews.style.cssText="";
removeClass(oNews,"pageShow");
formIn();
}
function formIn()
{
var oForm=id("form");
var oOver=id("over");
var aFormTag=id("formTag").getElementsByTagName("label");
var oBtn=oForm.getElementsByClassName("btn")[0];
var bOff=false;
for(var i=0;i<aFormTag.length;i++)
{
bind(aFormTag[i],"touchend",function(){
bOff=true;
addClass(oBtn,"submit");
});
}
bind(oBtn,"touchend",function(){
if(bOff)
{
for(var i=0;i<aFormTag.length;i++)
{
aFormTag[i].getElementsByTagName("input")[0].checked=false;
}
bOff=false;
addClass(oOver,"pageShow");
removeClass(oForm,"pageShow");
removeClass(oBtn,"submit");
over();
}
});
}
function over()
{
var oOver=id("over");
var oBtn=oOver.getElementsByClassName("btn")[0];
bind(oBtn,"touchend",function()
{
removeClass(oOver,"pageShow");
});
}
var utils = (function(window) {
var flag = "getComputedStyle" in window;
function win(attr, value) {
if(typeof value !== "undefined") {
document.documentElement[attr] = value;
document.body[attr] = value;
}
return document.documentElement[attr] || document.body[attr];
}
function getCss(curEle, attr) {
var val = null,
reg = null;
if(!flag) {
if(attr === "opacity") {
val = curEle.currentStyle["filter"];
reg = /^alpha\(opacity=(\d+(?:\.\d+)?)\)$/i
val = reg.test(val) ? reg.exec(val)[1] / 100 : 1;
} else {
val = curEle.currentStyle[attr];
}
} else {
val = window.getComputedStyle(curEle, null)[attr];
}
reg = /^(-?\d+(\.\d+)?)(px|pt|rem|rm)?$/i;
if(reg.test(val)) {
return parseFloat(val);
} else {
return val;
}
}
function listToArray(likeAry) {
var ary = [];
if(!flag) {
for(var i = 0; i < likeAry.length; i++) {
ary[ary.length] = likeAry[i];
}
} else {
ary = Array.prototype.slice.call(likeAry);
}
return ary;
}
function trim(str) {
return str.replace(/(^ +| +$)/g, "");
}
function jsonParse(str) {
var obj = null;
if(!flag) {
obj = eval("(" + str + ")");
} else {
obj = JSON.parse(str);
}
return obj;
}
function offset(curEle) {
var top = null,
left = null,
par = curEle.offsetParent;
left += curEle.offsetLeft;
top += curEle.offsetTop;
while(par) {
//IE8已经包含边框
if(navigator.userAgent.indexOf("MSIE 8") === -1) {
//累加父级边框
left += par.clientLeft;
top += par.clientTop;
}
//累加父级参照物偏移量
left += par.offsetLeft;
top += par.offsetTop;
par = par.offsetParent;
}
return {
top: top,
left: left
}
}
function children(curEle, tagName) {
var nodeList = curEle.childNodes;
var ary = [];
if(!flag) {
for(var i = 0, len = nodeList.length; i < len; i++) {
var curNode = nodeList[i];
if(curNode.nodeType === 1) {
ary[ary.length] = curNode;
}
nodeList = null;
}
} else {
//类数组转换为数组
ary = Array.prototype.slice.call(curEle.children);
}
//二次筛选
if(typeof tagName === "string") {
for(var j = 0; j < ary.length; j++) {
var curEleNode = ary[j];
if(curEleNode.nodeName.toLowerCase() !== tagName.toLowerCase()) {
ary.splice(j, 1);
j--;
}
}
}
return ary;
}
function prev(curEle) {
if(flag) {
return curEle.previousElementSibling;
}
var pre = curEle.previousSibling;
while(pre && pre.nodeType !== 1) {
pre = pre.previousSibling;
}
return pre;
}
function prevAll(curEle) {
var ary = [];
var pre = this.prev(curEle);
while(pre) {
ary.unshift(pre);
pre = this.prev(pre);
}
return ary;
}
function next(curEle) {
if(flag) {
return curEle.nextElementSibling;
}
var next = curEle.nextSibling;
while(next && next.nodeType !== 1) {
next = next.previousSibling;
}
return next;
}
function nextAll(curEle) {
var ary = [];
var next = this.next(curEle);
while(next) {
ary.push(next);
next = this.next(next);
}
return ary;
}
function sibling(curEle) {
var ary = [];
var pre = this.prev(curEle);
var next = this.next(curEle);
pre ? ary.push(pre) : null;
next ? ary.push(next) : null;
return ary;
}
function siblings(curEle) {
return this.prevAll(curEle).concat(this.nextAll(curEle));
}
function index(curEle) {
return this.prevAll(curEle).length;
}
function firstChild(curEle) {
var children = this.children(curEle);
return children.length > 0 ? children[0] : null;
}
function lastChild(curEle) {
var children = this.children(curEle);
return children.length > 0 ? children[children.length - 1] : null;
}
function append(newEle, container) {
container.appendChild(newEle);
}
function prepend(newEle, container) {
var firstEle = this.firstChild(container);
if(firstEle) {
container.insertBefore(newEle, firstEle);
return;
}
this.append(newEle, container);
}
function insertBefore(newEle, oldEle) {
oldEle.parentNode.insertBefore(newEle, oldEle);
}
function insertAfter(newEle, oldEle) {
var next = this.next(oldEle);
if(next) {
oldEle.parentNode.insertBefore(newEle, next);
return;
}
oldEle.parentNode.appendChild(newEle);
}
function hasClass(curEle, className) {
var reg = new RegExp("(^| +)" + className + "( +|$))");
return reg.test(curEle.className)
}
function addClass(curEle, className) {
//防止传递的多个类名,先拆分成数组
var ary = this.trim(className).split(/ +/g);
for(var i = 0; i < ary.length; i++) {
var curClass = ary[i];
if(!this.hasClass(curEle, curClass)) {
curEle.className += " " + curClass;
}
}
}
function removeClass(curEle, className) {
//防止传递的多个类名,先拆分成数组
var ary = this.trim(className).split(/ +/g);
var reg = new RegExp("(^| +)" + className + "( +|$))", "g");
for(var i = 0; i < ary.length; i++) {
var curClass = ary[i];
if(this.hasClass(curEle, curClass)) {
curEle.className = curEle.className.replace(reg, " ");
}
}
}
function getEleByClass(className, context) {
context = context || document;
if(flag) {
return this.listToArray(context.getElementsByClassName(className));
}
var ary = [];
var classNameAry = this.trim(className).split(/ +/g);
var nodeList = context.getElementsByTagName("*");
for(var i = 0, len = nodeList.length; i < len; i++) {
var curNode = nodeList[i];
var isOk = true;
for(var j = 0; j < classNameAry.length; j++) {
var curName = classNameAry[j];
var reg = new RegExp("(^| +)" + curName + "( +|$)")
if(!reg.test(curNode.className)) {
isOk = false;
break;
}
}
if(isOk) {
ary.push(curNode);
}
}
return ary;
}
function setCss(curEle, attr, value) {
reg = /^(width|height|top|right|bottom|left|(margin|padding)(Top|Right|Bottom|Right|)?)$/;
if(attr === "float") {
curEle.style["cssFloat"] = value;
curEle.style["styleFloat"] = value;
return;
}
if(attr === "opacity") {
curEle.style["opacity"] = value;
curEle.style["filter"] = "alpha(opacity=" + value * 100 + ")";
return;
}
if(reg.test(attr)) {
if(!isNaN(value)) {
curEle.style[attr] = value + "px";
}
}
curEle.style[attr] = value;
}
function setGroupCss(curEle, obj) {
obj = obj || 0;
if(obj.toString() !== "[object Object]") {
return;
}
for(var key in obj) {
if(obj.hasOwnProperty(key)) {
this.setCss(curEle, key, obj[key]);
}
}
}
function css(curEle) {
var arg2 = arguments[1];
if(typeof arg2 === "string") {
var arg3 = arguments[2];
if(typeof arg3 === "undefined") {
return this.getCss.call(curEle, arguments);
}
this.setCss.call(curEle, arguments);
}
arg2 = arg2 || 0;
if(arg2.toString() === "[object Object]") {
this.setGroupCss.apply(this, arguments);
}
}
return {
win: win, //操作浏览器盒子模型
listToArray: listToArray, //类数组转换为数组
trim: trim, //去除字符串首尾空格
jsonParse: jsonParse, //格式化JSON
offset: offset, //获取元素偏移量
children: children, //获取元素所有子节点
prev: prev, //获取哥哥节点
prevAll: prevAll, //获取所有哥哥节点
next: next, //获取弟弟节点
nextAll: nextAll, //获取所有弟弟节点
sibling: sibling, //获取相邻两个节点
siblings: siblings, //获取所有兄弟节点
index: index, //获取当前元素索引
firstChild: firstChild, //获取当前元素第一个子节点
lastChild: lastChild, //获取当前元素最后一个子节点
append: append, //向当前元素末尾追加一个元素
prepend: prepend, //向当前元素之前追加一个元素
insertBefore: insertBefore, //把当前元素追加指定元素之前
insertAfter: insertAfter, //把当前元素追加指定元素之后
hasClass: hasClass, //判断元素是否有某个类名
addClass: addClass, //给元素增加样式
removeClass: removeClass, //删除元素样式
getEleByClass: getEleByClass, //通过类名获取元素
getCss: getCss, //获取元素样式
setCss: setCss, //设置元素样式
css: css //获取设置css
}
})(window)
var ul=$('#lists');
var lis=$$(ul,'li')
//#lists $('#lists')
function $(selector){
return document.getElementById(selector.substr(1));
}
function $$(elem,selector){
//一个参数情况下 //$$('.list')或 $$('li')
if(arguments.length==1){
selector=elem;
elem=document;
}
//两个参数情况下
if(selector.charAt(0)=='.'){//$$(content,'.list')
return elem.getElementsByClassName(selector.substr(1))
}else{//$$(content,'li')
return elem.getElementsByTagName(selector)
}
}
网友评论