一个js清楚定时器的问题 求大神解答

qingwadaxia_1 2017-12-06 04:55:59
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>

<meta content="yes" name="apple-mobile-web-app-capable">

</head>
<style type="text/css">
*{padding:0;margin:0;}
#cc{
background:#ccc;
width:200px;
height:260px;
position:absolute;
bottom:0;
right:0;
white-space:nowrap;
overflow:hidden;

}
</style>
<body style="height:2000px;">

<div id="cc">111</div>


<script type="text/javascript">
var cc = document.getElementById("cc");
var hqys = window.getComputedStyle ? window.getComputedStyle(cc,"") : cc.currentStyle;
var hqchang = parseInt(hqys.width);
var hqgao = parseInt(hqys.height);
var pmc = document.documentElement.clientWidth;
var pmg = document.documentElement.clientHeight;
var jzr = (pmc - hqchang) / 2;
var jzb = (pmg - hqgao) / 2;
var ydr = 6;
var ydd = ydr * jzb / jzr;
var bottom = null;
var right = null;
var time = null;

setTimeout(function zz(){

time = setInterval(function ccc(){

right += ydr;
bottom += ydd;
cc.style.bottom = bottom + "px";
cc.style.right = right +"px";
if(right >= jzr || bottom >= jzb){

clearInterval(time);
cc.onclick = function(){
clearInterval(time);

ydr = -ydr;
ydd = -ydd;
setTimeout(function(){
time = setInterval(ccc,30);
},30)

}


}

if(right<=0 || bottom <= 0){
clearInterval(time);
cc.style.opacity = 1;
setInterval(function bn(){

cc.style.opacity -= 0.1;

if(cc.style.opacity<=0){
cc.style.opacity = 0;
clearInterval(bn);
}


},80)
}
},30);

},30);


</script>

</body>
</html>


上面是一个div斜向移入和移出的效果, 当div移入到正中间位置的时候,点击一下div 会斜向移出,但是如果在移出的过程中,再次点击div 又会移入 不停的点击 就会不停的反复拉扯, 如何让div不受点击的影响,移出的时候,无论怎么点击都不会影响移出的过程
...全文
202 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
s1os5210 2017-12-07
大神能把代码发出来吗
  • 打赏
  • 举报
回复
zk_Kang 2017-12-07
引用 4 楼 qingwadaxia_1 的回复:
引用 3 楼 zhang_kang_user 的回复:
[quote=引用 2 楼 qingwadaxia_1 的回复:] [quote=引用 1 楼 qq_29594393 的回复:] 获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
s啥意思 。。
就是加一个判断,判断当前div是不是在动画效果,,如果是那么就return;不是,就继续;[/quote]我感觉你没理解我的意思。[/quote] 想让人直接告诉你怎么判断??还是什么??
  • 打赏
  • 举报
回复
qingwadaxia_1 2017-12-07
引用 3 楼 zhang_kang_user 的回复:
引用 2 楼 qingwadaxia_1 的回复:
[quote=引用 1 楼 qq_29594393 的回复:] 获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
s啥意思 。。
就是加一个判断,判断当前div是不是在动画效果,,如果是那么就return;不是,就继续;[/quote]我感觉你没理解我的意思。
  • 打赏
  • 举报
回复
zk_Kang 2017-12-07
引用 2 楼 qingwadaxia_1 的回复:
引用 1 楼 qq_29594393 的回复:
获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
s啥意思 。。
就是加一个判断,判断当前div是不是在动画效果,,如果是那么就return;不是,就继续;
  • 打赏
  • 举报
回复
qingwadaxia_1 2017-12-07
错了 不是清除浮动 是清除定时器
  • 打赏
  • 举报
回复
qingwadaxia_1 2017-12-07
引用 8 楼 zhang_kang_user 的回复:
引用 7 楼 qingwadaxia_1 的回复:
[quote=引用 5 楼 zhang_kang_user 的回复:] [quote=引用 4 楼 qingwadaxia_1 的回复:] [quote=引用 3 楼 zhang_kang_user 的回复:] [quote=引用 2 楼 qingwadaxia_1 的回复:] [quote=引用 1 楼 qq_29594393 的回复:] 获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
s啥意思 。。
就是加一个判断,判断当前div是不是在动画效果,,如果是那么就return;不是,就继续;[/quote]我感觉你没理解我的意思。[/quote] 想让人直接告诉你怎么判断??还是什么??[/quote]是div在中间之后,点击div 会斜向移动回去, 在移动回去的过程中, 再点div 它又会移到中间去, 我希望在移动回去的过程中, 无论怎么点div 都不会对它造成影响[/quote] 对啊,就这意思啊,就是再次点击的时候会判断div是否在动画效果啊,跟你说话好累,。。[/quote]怎么改啊? 不是清楚浮动吗。
  • 打赏
  • 举报
回复
zk_Kang 2017-12-07
引用 7 楼 qingwadaxia_1 的回复:
引用 5 楼 zhang_kang_user 的回复:
[quote=引用 4 楼 qingwadaxia_1 的回复:] [quote=引用 3 楼 zhang_kang_user 的回复:] [quote=引用 2 楼 qingwadaxia_1 的回复:] [quote=引用 1 楼 qq_29594393 的回复:] 获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
s啥意思 。。
就是加一个判断,判断当前div是不是在动画效果,,如果是那么就return;不是,就继续;[/quote]我感觉你没理解我的意思。[/quote] 想让人直接告诉你怎么判断??还是什么??[/quote]是div在中间之后,点击div 会斜向移动回去, 在移动回去的过程中, 再点div 它又会移到中间去, 我希望在移动回去的过程中, 无论怎么点div 都不会对它造成影响[/quote] 对啊,就这意思啊,就是再次点击的时候会判断div是否在动画效果啊,跟你说话好累,。。
  • 打赏
  • 举报
回复
qingwadaxia_1 2017-12-07
引用 5 楼 zhang_kang_user 的回复:
引用 4 楼 qingwadaxia_1 的回复:
[quote=引用 3 楼 zhang_kang_user 的回复:] [quote=引用 2 楼 qingwadaxia_1 的回复:] [quote=引用 1 楼 qq_29594393 的回复:] 获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
s啥意思 。。
就是加一个判断,判断当前div是不是在动画效果,,如果是那么就return;不是,就继续;[/quote]我感觉你没理解我的意思。[/quote] 想让人直接告诉你怎么判断??还是什么??[/quote]是div在中间之后,点击div 会斜向移动回去, 在移动回去的过程中, 再点div 它又会移到中间去, 我希望在移动回去的过程中, 无论怎么点div 都不会对它造成影响
  • 打赏
  • 举报
回复
qingwadaxia_1 2017-12-06
引用 1 楼 qq_29594393 的回复:
获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
s啥意思 。。
  • 打赏
  • 举报
回复
当作看不见 2017-12-06
获取div 当前所在位置,根据div 相对于父元素的偏移量,看是移入还是移出, 如果是移出的话,点击就直接返回(不做任何操作)
  • 打赏
  • 举报
回复
相关推荐
课程设计-基于C++的mfc框架的学生社团管理系统(源码+数据库+报告).zip 本系统实现的功能 本程序为单文档应用程序,主程序界面能实现查询社团信息、修改社团信息、删除社团信息、添加社团信息、入团、退团、用户登录、和用户管理功能其中修改社团信息、删除社团信息、添加社团信息和用户管理需要用户登录后才能使用,未登录就点击使用的会会弹出对话框显示您还没有登录,点击登录按钮会弹出用户登录对话框输入正确的用户名称和密码若验证成功则会显示登录成功并显示出您用有的权限高级管理员或者是普通管理员,高级管理员则可以对社团信息进行修改、删除、添加。点击入团按钮会弹出加入社团对话框,在对话框内填上相应的信息后点击确定成功加入后会有相关提示,若没有成功则有可能您输入的社团不存在,点击退团按钮弹出退出社团对话框,输入您要退出的社团名称和学号点击确定如果成功退出会显示成功的标志,否则的话就是您没有假如该社团活着您填的信息不完全。在主程序对话框中可以直接在控件内输入要修改的社团信息,然后点击修改按钮,分别输入控件中的内容然后点击添加按钮,若要添加的社团当前没有的话则添加成功,否则会失败。登录了以后点击用户管理按钮则会弹出用户管理对话框,在该对话框内可以修改用户密码,高级管理员还能注册新用户。
发帖
JavaScript
加入

8.6w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
申请成为版主
帖子事件
创建了帖子
2017-12-06 04:55
社区公告
暂无公告