如何在一个网站或者一个页面,去书写你的JS代码
// JavaScript Document
//如何在一个网站或者一个页面,去书写你的JS代码:
//1.js的分层(功能) : jquery(tools) 组件(ui) 应用(app), mvc(backboneJs)
//2.js的规划(管理) : 避免全局变量和方法(命名空间,闭包,面向对象) , 模块化(seaJs,requireJs)
window.onload = function(){
mv.app.toTip();
mv.app.toBanner();
mv.app.toSel();
mv.app.toRun();
};
var mv = {}; //命名空间
mv.tools = {};
mv.tools.getByClass = function(oParent,sClass){
var aEle = oParent.getElementsByTagName('*');
var arr = [];
for(var i=0;i<aEle.length;i++){
if(aEle[i].className == sClass){
arr.push(aEle[i]);
}
}
return arr;
};
mv.tools.getStyle = function(obj,attr){
if(obj.currentStyle){
return obj.currentStyle[attr];
}
else{
return getComputedStyle(obj,false)[attr];
}
};
mv.ui = {};
mv.ui.textChange = function(obj,str){
obj.onfocus = function(){
if(this.value == str){
this.value = '';
}
};
obj.onblur = function(){
if(this.value == ''){
this.value = str;
}
};
};
mv.ui.fadeIn = function(obj){
var iCur = mv.tools.getStyle(obj,'opacity');
if(iCur==1){ return false; }
var value = 0;
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var iSpeed = 5;
if(value == 100){
clearInterval(obj.timer);
}
else{
value += iSpeed;
obj.style.opacity = value/100;
obj.style.filter = 'alpha(opacity='+value+')';
}
},30);
};
mv.ui.fadeOut = function(obj){
var iCur = mv.tools.getStyle(obj,'opacity');
if(iCur==0){ return false; }
var value = 100;
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var iSpeed = -5;
if(value == 0){
clearInterval(obj.timer);
}
else{
value += iSpeed;
obj.style.opacity = value/100;
obj.style.filter = 'alpha(opacity='+value+')';
}
},30);
};
mv.ui.moveLeft = function(obj,old,now){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var iSpeed = (now - old)/10;
iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
if(now == old){
clearInterval(obj.timer);
}
else{
old += iSpeed;
obj.style.left = old + 'px';
}
},30);
};
mv.app = {};
mv.app.toTip = function(){
var oText1 = document.getElementById('text1');
var oText2 = document.getElementById('text2');
mv.ui.textChange(oText1,'Search website');
mv.ui.textChange(oText2,'Search website');
};
mv.app.toBanner = function(){
var oDd = document.getElementById('ad');
var aLi = oDd.getElementsByTagName('li');
var oPrevBg = mv.tools.getByClass(oDd,'prev_bg')[0];
var oNextBg = mv.tools.getByClass(oDd,'next_bg')[0];
var oPrev = mv.tools.getByClass(oDd,'prev')[0];
var oNext = mv.tools.getByClass(oDd,'next')[0];
var iNow = 0;
var timer = setInterval(auto,3000);
function auto(){
if(iNow == aLi.length-1){
iNow = 0;
}
else{
iNow++;
}
for(var i=0;i<aLi.length;i++){
mv.ui.fadeOut(aLi[i]);
}
mv.ui.fadeIn(aLi[iNow]);
}
function autoPrev(){
if(iNow == 0){
iNow = aLi.length-1;
}
else{
iNow--;
}
for(var i=0;i<aLi.length;i++){
mv.ui.fadeOut(aLi[i]);
}
mv.ui.fadeIn(aLi[iNow]);
}
oPrevBg.onmouseover = oPrev.onmouseover = function(){
oPrev.style.display = 'block';
clearInterval(timer);
};
oNextBg.onmouseover = oNext.onmouseover = function(){
oNext.style.display = 'block';
clearInterval(timer);
};
oPrevBg.onmouseout = oPrev.onmouseout = function(){
oPrev.style.display = 'none';
timer = setInterval(auto,3000);
};
oNextBg.onmouseout = oNext.onmouseout = function(){
oNext.style.display = 'none';
timer = setInterval(auto,3000);
};
oPrev.onclick = function(){
autoPrev();
};
oNext.onclick = function(){
auto();
};
};
mv.app.toSel = function(){
var oSel = document.getElementById('sel1');
var aDd = oSel.getElementsByTagName('dd');
var aUl = oSel.getElementsByTagName('ul');
var aH2 = oSel.getElementsByTagName('h2');
for(var i=0;i<aDd.length;i++){
aDd[i].index = i;
aDd[i].onclick = function(ev){
var ev = ev || window.event;
var This = this;
for(var i=0;i<aUl.length;i++){
aUl[i].style.display = 'none';
}
aUl[this.index].style.display = 'block';
document.onclick = function(){
aUl[This.index].style.display = 'none';
};
ev.cancelBubble = true;
};
}
for(var i=0;i<aUl.length;i++){
aUl[i].index = i;
(function(ul){
var aLi = ul.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++){
aLi[i].onmouseover = function(){
this.className = 'active';
};
aLi[i].onmouseout = function(){
this.className = '';
};
aLi[i].onclick = function(ev){
var ev = ev || window.event;
aH2[this.parentNode.index].innerHTML = this.innerHTML;
ev.cancelBubble = true;
this.parentNode.style.display = 'none';
};
}
})(aUl[i]);
}
};
mv.app.toRun = function(){
var oRun = document.getElementById('run1');
var oUl = oRun.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
var oPrev = mv.tools.getByClass(oRun,'prev')[0];
var oNext = mv.tools.getByClass(oRun,'next')[0];
var iNow = 0;
oUl.innerHTML += oUl.innerHTML;
oUl.style.width = aLi.length * aLi[0].offsetWidth + 'px';
oPrev.onclick = function(){
if(iNow == 0){
iNow = aLi.length/2;
oUl.style.left = -oUl.offsetWidth/2 + 'px';
}
mv.ui.moveLeft(oUl,-iNow*aLi[0].offsetWidth,-(iNow-1)*aLi[0].offsetWidth);
iNow--;
};
oNext.onclick = function(){
if(iNow == aLi.length/2){
iNow = 0;
oUl.style.left = 0;
}
mv.ui.moveLeft(oUl,-iNow*aLi[0].offsetWidth,-(iNow+1)*aLi[0].offsetWidth);
iNow++;
};
};
如何在一个网站或者一个页面,去书写你的JS代码的更多相关文章
- 如何在一个网站或者一个页面规划JS
规划主要分为两部分:1.JS的分层,2.Js的规划 1.JS的分层(功能) 1-1.底层的库 : jquery 1-2.组件(ui) : 比如拖拽等,模块之间没有必然的联系,可以重复利用 1-3. ...
- Js 日期选择,可以的一个页面中重复使用本JS日历,兼容IE及火狐等主流浏览器,而且界面简洁、美观,操作体验也不错。
<html> <head> <title>Js日期选择器并自动加入到输入框中</title> <meta http-equiv="con ...
- 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码
比如 想跳到 mao.aspx 的页面 的div id="s" 的位置 那么 只用<a href="mao.aspx#s"> 就可实现跳转到指定位置 ...
- 常见的页面效果,相关的js代码
1.焦点图 $(document).ready(function(){ var i=0; var autoChange= setInterval(function(){ if(i<$(" ...
- 页面怎么引用外部css+js代码
外部css样式:把css样式写到一个文件内,方便使用,减少冗余. 如果使用的是外部css样式,页面怎么引用: 使用 <link rel="stylesheet" type=& ...
- 检测一个页面所用的时间的js
window.onload = function () { var loadTime = window.performance.timing.domContentLoadedEventEnd-wind ...
- jquery实现页面控件拖动效果js代码
;(function($) { var DragPanelId = "divContext"; var _idiffx = 0; var _idiffy = 0; var _Div ...
- html页面控制字体大小的js代码
dom对象控制显示文章字体大小的js代码 <head> <script type="text/javascript"> function check(siz ...
- 记录一个在线压缩和还原压缩js代码的工具
packer – javascript 压缩工具 http://dean.edwards.name/packer/ Javascript Beautifier ---可以恢复某些压缩工具压缩的js代码 ...
随机推荐
- yii中上传图片及文件
Yii 提供了 CUploadedFile 来上传文件,比如图片,或者文档. 官方关于这个类的介绍 : http://www.yiichina.com/api/CUploadedFile CUploa ...
- table 的thead th 固定 tbody滚动例子
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- JAVA 面向对象-2-继承(Inheritance)
i.继承(Inheritance) 1.继承的概念 继承:在面向对象编程的过程中,通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类. 继承是面向对象编程最重要的特征之一. 继承的优点:1 ...
- 微信开发第6章 通过accesstoken获取用户粉丝列表
上一章我们讲解到open_id获取用户基本信息,那么open_id哪儿来的呢?就是粉丝列表中可以看到的.本次讲解如何获取粉丝列表. 获取粉丝列表 可以查看文档 http://mp.weixin.qq. ...
- postgresql9.4新特性jsonb学习-update更新操作
先科普下概念:PgSQL9.4 新增 JSONB 数据类型, JSONB 同时属于 JSON (JavaScript Object Notation) 数据类型,jsonb 和 json 的输入数据几 ...
- [Usaco2006 Nov]Corn Fields牧场的安排 壮压DP
看到第一眼就发觉是壮压DP 然后就三进制枚举子集吧. 这题真是壮压入门好题... 对于dp[i][j] 表示第i行,j状态下前i行的分配方案数. 那么dp[i][j]肯定是从i-1行转过来的 那么由于 ...
- 启动MYSQL密码审计插件
http://www.innomysql.com/article/25717.html [root@server-mysql plugin]# pwd /usr/local/mysql56/lib/p ...
- 去掉cajviewer 右上角的“中国知网数字出版物超市
cajviewer软件是一款可以提取pdf字码的软件(即使pdf是扫描版的) 下面是转的一个博文可以去除软件右上角图标的方法: 去掉cajviewer 7.1.2右上角的“中国知网数字出版物超市” 1 ...
- linux 进程综合指令
1. 查询当前机器运行的进程总数: ps -ef | wc -l ps -ef | grep httpd | wc -l 2. ulimit命令 表 1. ulimit 参数说明 选项 [option ...
- ASP.NET Web API(二):安全验证之使用HTTP基本认证
在前一篇文章ASP.NET Web API(一):使用初探,GET和POST数据中,我们初步接触了微软的REST API: Web API. 我们在接触了Web API的后就立马发现了有安全验证的需求 ...