点击div掉下和上升

摘要:
HTMLCSS*{margin:0;padding:0;}#boxdiv{50px;height:50px;background:red;position:absolute;top:10px;}JSvaroBox=document.getElementById("box");varaDiv=oBox.getElementsByTagName("div");va

点击div掉下和上升第1张

HTML

<div id="box"></div>

CSS

*{
	margin: 0;
	padding: 0;
}
#box div{
	 50px;
	height: 50px;
	background: red;
	position: absolute;
	top: 10px;
}

JS

var oBox=document.getElementById("box");
var aDiv=oBox.getElementsByTagName("div");
var num=0;
var timer=null;
//生成div
for (var i=0;i<10;i++) {
	oBox.innerHTML+="<div style='left: "+(i+1)*60+"px;'></div>"
}
//点击div往下掉
var onOff=true;
document.onclick=function(){
	clearInterval(timer);
	var oTop=parseInt(getStyle(aDiv[aDiv.length-1],"top"));
	if(oTop==400){
			onOff=false;
	}else{
		onOff=true;
	}
	timer=setInterval(function(){
		if(onOff){
			moveTo(aDiv[num],"top",400,10);
		}else{
			moveTo(aDiv[num],"top",10,10);
		}
		num++;
		if(num>=aDiv.length){
			clearInterval(timer);
			num=0;
		}
	},1000)
}

function moveTo(obj,attr,target,dir,endFn){
	clearInterval(obj.timer);
	dir=parseInt(getStyle(obj,attr))<target?dir:-dir;
	obj.timer=setInterval(function(){
		var speed=parseInt(getStyle(obj,attr))+dir;
		if(speed>target&&dir>0||speed<target&&dir<0){
            speed=target;
        }
		obj.style[attr]=speed+"px";
		 //清除定时器
        if(speed==target){
            clearInterval(obj.timer);
            if(endFn){
                endFn();
            }
        }
	},30)
}
function getStyle(obj,attr){
	if(obj.currentStyle){
		return obj.currentStyle[attr];
	}else{
		return getComputedStyle(obj)[attr];
	}
}

免责声明:文章转载自《点击div掉下和上升》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MVC中两种实体:View Model和Business Model的简化(转载)Centos 开启telnet-service服务下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Oracle- 存储过程和异常捕捉

我学习了ORACLE存储过程的基础知识,并做了一些备注以供将来参考。创建一个无参数存储过程createprocedure_myPro1isbegininsertintdepthvalues;终止修改无参数存储过程createorreplaceprocedure_myPro1开始插入深度值;终止创建和修改参数存储过程createorreplaceprocedu...

redis实现二级缓存

Mybatis也会做缓存,也会有一级缓存和二级缓存:一级缓存:是SqlSession级别的缓存,使用HashMap数据结构来用于存储缓存数据的二级缓存:是mapper级别的缓存,其作用域是mapper的同一个namespace,不同的SqlSession执行两次相同namespace下的sql语句,并且传递的参数相同,返回的结果也相同时,第一次执行sql语句...

com.aliyun.openservices.shade.com.alibaba.fastjson.JSONException: exepct '[', but {, pos 1, line 1, column 2

错误报告的原因:您放置了一个非List对象,但希望从packagetest中取出List对象;导入java.text。SimpleDateFormat;导入java.util。阵列列表;导入java.util。日期导入java.util。列表importcom.alibaba.fastjson。JSON;导入com.alibaba.fastj...

MySQL锁详解

MySQL锁详解update语句执行流程MySQL的锁介绍按照锁的粒度来说,MySQL主要包含三种类型(级别)的锁定机制:全局锁:锁的是整个database。由MySQL的SQLlayer层实现的表级锁:锁的是某个table。由MySQL的SQLlayer层实现的行级锁:锁的是某行数据,也可能锁定行之间的间隙。...

HTTP请求报文

不仅报表样式可以传递请求参数,请求url也可以以类似于键值对的方式传递数据...

NodeJs使用jwt生成token以及使用express-jwt校验和解密token

=0){//当数据库有当前用户时,它返回tokenlettoken=jwt.sign;res.send}else{res.send}}catch{//p抛出异常并将其发送到错误中间件以处理console.log;next;}})//注册接口路由器。post('/register',异步(req,res,next)=˃{let{用户名,密码,昵称}=req-b...