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,所以我懂的.... (大图直接观看显示很模糊,请在图片上点击右键然后在新窗口打开看) ...
随机推荐
- Java多个数字求和输出
设计思想: 首先为了能够输入数字,先引入一个类import java.util.Scanner;因为是多个数字求和,所以为了方便声明一个数组double[] num;再声明一个变量int number ...
- C#(数据类型)
刚开始学c#!!!
- 。JavaSE------初识Java
我的老师告诉我,命运眷顾有志者,天道酬勤. 有时在梦里幻想的再多终究也只是梦, 不如脚踏实地一步步往前走来的踏实. ------------------------------------------ ...
- Apply Root Motion
Apply Root Motion 应用根动作: Should we control the character's position from the animation itself or fro ...
- An Example Of Validating Text Item In Oracle Forms Using When-Validate-Item Trigger
Example is given below to validate a Text Item in Oracle Forms with specific rules condition which c ...
- 在服务器上log4net没写日志
登录到服务器上,发现log4net没写日志 在相应文件夹加上User用户的写权限后恢复正常了.
- FLASH CC 2015 CANVAS (二)html中写JS调用flash中的元件、函数、变量
注意 此贴 为个人边“开荒”边写,所以不保证就是最佳做法,也难免有错误! 正式教程会在后续开始更新 当你导出第一个canvas后,你会在保存fla的文件夹里 (每个项目默认位置)看到 如下文件,(请先 ...
- 解析PHP中的file_get_contents获取远程页面乱码的问题【转】
在工作中,遇到一个问题.我需要将一个网址(该网址是一个json数据的接口,即 打开该网址,在浏览器中显示的是json数据),我使用file_get_contents($url),数据是乱码的. 通过查 ...
- MongoDB 权限
1.使用mongod 启动后(加入了--auth后操作数据库则需要权限) mongod --dbpath=D:\mongdb\db --logpath=D:\mongodb\log.txt --por ...
- 【FFT-快速傅立叶变换】
HDU-1402 A * B Problem Plus 题意:给定两个整数,整数的长度最多能达到50000位,输出两个整数的乘积. 分析:题意非常的明了,一个惊世骇俗的想法是使用两个数组将整数保留起来 ...