1.题目的去随机值去重

(当时做的是每次点击取出一个随机数,并删除数组中位置,后来改成获取10个随机数组成的数组,二者略有差距,修改颇长时间)

function getArr(num){
totalArr = [];
for(var i = 0; i < num; i++){
totalArr.push(i);
}
} function getRam(){
var ram = Math.floor(0 + (totalArr.length - 0) * Math.random());
return Number(totalArr.splice(ram,1));
} function getRamTen(index,num){ //index 从多少开始;num 去几个随机数
getArr(25); //重复调用,在getRam时会发生变化,所以每次执行要再次填满25个
var exam = [];
for(var i = 0 ; i < num ; i ++){
var ram = 'q'+(getRam()+index)+'.html';
exam.push(ram);
}
console.log("2 " , exam.sort() , exam.length);
} getRamTen(0,10);

2.无缝滚动

(如果是后台获取数据,还需做一些优化处理,因为可能数据开始获取不到)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
.bar {
width: 100%;
height: 45px;
line-height: 45px;
background-color: #fe0000;
clear: both;
position: relative;
overflow: hidden;
} .bar ul {
position: absolute;
left: 0;
top: 0;
} .bar li {
float: left;
color: #fff;
list-style: none;
margin-right: 20px;
} </style>
<script type="text/javascript">
function $$(id){return document.getElementById(id);}
window.onload=function(){
var oDiv = $$("bar");
var oUl = oDiv.getElementsByTagName("ul")[0];
var oLi = oUl.getElementsByTagName("li"); var timer = null;
var iSpeed=-2; oUl.style.width=(oLi[0].offsetWidth+30)*oLi.length+"px";
oUl.style.left= oDiv.offsetWidth+"px"; timer=setInterval(function(){
oUl.style.left= oUl.offsetLeft + iSpeed +"px"; if(oUl.offsetLeft<-oUl.offsetWidth){
oUl.style.left= oDiv.offsetWidth+"px";
}
},30);
};
</script>
</head>
<body bgcolor="#FFFFFF">
<div class="bar" id="bar">
<ul>
<li>陈1 刚刚送出一份早餐</li>
<li>陈一 刚刚送出一份早餐</li>
<li>陈一 刚刚送出一份早餐</li>
<li>陈一 刚刚送出一份早餐</li>
<li>陈一 刚刚送出一份早餐</li>
<li>陈一 刚刚送出一份早餐</li>
<li>陈7 刚刚送出一份早餐</li>
</ul>
</div> </body>
</html>

3.判断手机型号

(windows phone貌似判断的不是很准确,且里面css会很混乱,js可能更加会有坑,总之水很深。)

var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i) ? true : false;
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i) ? true : false;
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i) ? true : false;
},
Windows2: function() {
return navigator.userAgent.match(/Windows Phone/i) ? true : false;
}, any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows() || isMobile.Windows2());
}
}; if( isMobile.any() ){
  //todo
}

4.js加载需要用到的js,或者css文件

function loadjscssfile(filename, filetype){
if (filetype=="js"){ //判定文件类型
var fileref=document.createElement('script')//创建标签
fileref.setAttribute("type","text/javascript")//定义属性type的值为text/javascript
fileref.setAttribute("src", filename)//文件的地址
}
else if (filetype=="css"){ //判定文件类型
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}

5. iframe 不仅仅有跨域的问题,还会有加载慢的问题,这次只用了onload来加载,还有可以用preload来预加载。放在dropbox里面了;iframe里面的页面访问父级window.parent

kellogg项目总结的更多相关文章

  1. Fis3前端工程化之项目实战

    Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...

  2. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  3. 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目

    最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...

  4. Hangfire项目实践分享

    Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...

  5. Travis CI用来持续集成你的项目

    这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...

  6. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  7. 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新

    上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...

  8. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  9. 【分享】标准springMVC+mybatis项目maven搭建最精简教程

    文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...

随机推荐

  1. Dev GridControl导出

    问题一. DevExpress GridView导出到Excel中不能导出自定义日期 问题描述: 我有一个第一列为日期列的GridView.它在运行时会绑定到日期,但他们通过CustomColumnD ...

  2. ubuntu下mysqli_connect()显示未定义,mysqli_fetch_all()显示未定义 解决方法

    mysqli_connect()显示未定义解决方法: http://www.cnblogs.com/misoag/archive/2013/01/24/2874439.html 让apache.php ...

  3. firefox渗透师必备的利器

    工欲善必先利其器,firefox一直是各位渗透师必备的利器,小编这里推荐34款firefox渗透测试辅助插件,其中包含渗透测试.信息收集.代理.加密解密等功能. 1:Firebug Firefox的 ...

  4. SQL 根据指定字符拆分字符串

    CREATE FUNCTION [dbo].[F_StringSplit] ( @STR NVARCHAR(MAX)='', )='') )) AS BEGIN DECLARE @NUM INT, @ ...

  5. switch语句和for循环

    switch语句: 1. switch 后面小括号中表达式的值必须是整型或字符型 2. case后面的值可以是常量数值,如:1.日:也可以是一个常量表达式,如:2+2:但 不能是变量或带有变量的表达式 ...

  6. win8下安装matlab7.0

    在win8下安装matlab7.0会出现一些兼容性的问题,需要设置系统环境变量,修改方式如下. 1.设置环境变量,方法:在你的安装目录的\MATLAB7\bin\win32有一个叫做atlas_Ath ...

  7. STORM_0004_windows下zookeeper的伪集群的搭建

    -----------------------------------------------------START------------------------------------------ ...

  8. js实现页面传值

    今天做东西用到,在网上查到了这样的一种方法,学习学习: 来源:http://bbs.csdn.net/topics/310229114 Page1: <!DOCTYPE html PUBLIC ...

  9. 自定义CSS博客(转)

    摘自:http://www.cnblogs.com/libaoheng/archive/2012/03/19/2406836.html 前  言 一个好的阅读体验,对技术博客来说,也许算是锦上添花.入 ...

  10. 最近用到这个强大的工具 PhysicsEditor (转)

    今天收到PhysicsEditor作者发过来的license key,所以顺便把PhysicsEditor也尝试了一下.主要是尝试将PhysicsEditor与cocos2dx,box2d结合开发的一 ...