kellogg项目总结
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项目总结的更多相关文章
- Fis3前端工程化之项目实战
Fis3项目 项目目录结构: E:. │ .gitignore │ fis-conf.js │ index.html │ package.json │ README.md │ ├─material │ ...
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
- Hangfire项目实践分享
Hangfire项目实践分享 目录 Hangfire项目实践分享 目录 什么是Hangfire Hangfire基础 基于队列的任务处理(Fire-and-forget jobs) 延迟任务执行(De ...
- Travis CI用来持续集成你的项目
这里持续集成基于GitHub搭建的博客为项目 工具: zqz@ubuntu:~$ node --version v4.2.6 zqz@ubuntu:~$ git --version git versi ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- 【分享】标准springMVC+mybatis项目maven搭建最精简教程
文章由来:公司有个实习同学需要做毕业设计,不会搭建环境,我就代劳了,顺便分享给刚入门的小伙伴,我是自学的JAVA,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
随机推荐
- ruby学习总结03
1.方法的调用 对象.方法名(参数1,参数2,...) 可以省略参数列表的() 对象.方法名(参数1,...) do |变量1,变量2,...| 可以省略参数的() 块内 ...
- Margin and Padding in Windows Forms Controls
https://msdn.microsoft.com/en-us/library/ms229627.aspx Margin and Padding Precise placement of contr ...
- SAP、BW 权限控制设置
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- XML详解:第三部分 XML解析
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Linux c 下使用getopt()函数
命令行参数解析函数 —— getopt() getopt()函数声明如下: #include <unistd.h> int getopt(int argc, char * const ar ...
- monkeyrunner自动登录脚本
自己写了个平时测试的app的自动登录脚本,亲测可运行.读者参照时只需要改包名.activity名称.坐标值.账号和密码即可 查看坐标是多少的方法:使用手机的指针位置来实现:系统设置---开发者选项-- ...
- poj1696Space Ant(逆时针螺旋形)
链接 贪心做法,没次找最外面的点,也就是相对前面那条线偏转角度最小的点,除第一个点需要找到最下面的点即Y坐标最小,其余的每次进行极角排序. #include <iostream> #inc ...
- create table xxx as select 与 create table xxx like
create table xxx ) | NO | PRI | NULL | auto_increment | | Name | varchar() | NO | ...
- Android开发中退出程序几种方法
参考:http://johncookie.iteye.com/blog/890734 Android程序有很多Activity,比如说主窗口A,调用了子窗口B,子窗口B又调用子窗口C,back返回子窗 ...
- Android 面试题总结
Android 面试题总结(不断更新) 1.INETNT几种有关Activit的启动方式FLAG_ACTIVITY_BROUGHT_TO_FRONT 将ACTIVITY带到最前面FLAG_ACTIVI ...