JS实现的简单折叠展开动画效果示例


Posted in Javascript onApril 28, 2018

本文实例讲述了JS实现的简单折叠展开动画效果。分享给大家供大家参考,具体如下:

<!DOCTYPE = html>
<html>
 <head>
  <title>3water.com JS折叠展开动画</title>
  <style>
  body{
   margin: 0px;
   padding: 0px;
  }
  .red{
   background-color:red;
   width:200px;
   height:200px;
   position:relative;
   left:-200px;
   top:0px;
  }
  .blue{
   background:blue;
   width:20px;
   height:50px;
   position:absolute;
   left:200px;
   top:75px;
  }
  </style>
 </head>
 <body>
  <div class="red" id="cf1"><div class="blue" id="cf">分享</div></div>
  <script>
  window.onload = function(){
   var onDiv = document.getElementById("cf1");
   onDiv.onmouseover = function(){
    startmove(0);
   }
   onDiv.onmouseout = function(){
    startmove(-200);
   }
  }
  var timer ;
  function startmove(target){
   clearInterval(timer);//清除定时器,以免多次触发定时器导致速度越来越快而不是匀速前进
   var onDiv1 = document.getElementById("cf1");
   timer = setInterval(function(){
   var speed = 0;
   if(onDiv1.offsetLeft<target){
    speed = 10;
   }else{
    speed = -10;
   }
   if(onDiv1.offsetLeft==target){
    clearInterval(timer);
   }
   else{
   onDiv1.style.left = onDiv1.offsetLeft+speed+'px';
   }
   },30)
  }
  </script>
 </body>
</html>

运行效果:

JS实现的简单折叠展开动画效果示例

小结:

一、css部分:

1、别忘记样式初始化;
2、复习css文件的引用方式;(类引用方式)
3、复习绝对定位和相对定位关系(父关系用relative;子关系用absolute

二、js部分:

1、element.style.left & element.offsetLeft区别:

① 前者单位是px,是字符串;后者单位是数值;
② 其他参见:https://3water.com/article/43981.htm

2、思路开始不够清晰,未能抽象出鼠标放上和移开关键变量——目标位置不同而已

3、函数参数尽可能少(在能达成目标的情况下)

4、鼠标作用对象设置为父级div最好,不然会出现闪烁情况(刚调用onmouseover,目标移除,又调用了onmouseout

5、注意清除定时器(①、防止移动时速度不稳定 ②、到目标位置停止运动)

三、其他:

Q:谷歌浏览器解除禁止弹出窗口?

A:设置——高级设置——隐私设置——内容设置——弹出式窗口,进行相关设置。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
php实例分享之实现显示网站运行时间
May 20 Javascript
基于jQuery实现文本框只能输入数字(小数、整数)
Jan 14 Javascript
深入理解JavaScript程序中内存泄漏
Mar 17 Javascript
js时间控件只显示年月
Jan 08 Javascript
Node.js中流(stream)的使用方法示例
Jul 16 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
浅入深出Vue之自动化路由
Aug 06 Javascript
微信小程序日历插件代码实例
Dec 04 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
Jul 31 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
Apr 28 #Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 #Javascript
详解Angular5 路由传参的3种方法
Apr 28 #Javascript
深入理解Vue nextTick 机制
Apr 28 #Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 #jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 #jQuery
Vue实现PopupWindow组件详解
Apr 28 #Javascript
You might like
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
深入解析php中的foreach问题
2013/06/30 PHP
浅谈本地WAMP环境的搭建
2015/05/13 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
js canvas仿支付宝芝麻信用分仪表盘
2016/11/16 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
JavaScript中BOM对象原理与用法分析
2019/07/09 Javascript
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
[38:39]完美世界DOTA2联赛循环赛 IO vs GXR BO2第二场 11.04
2020/11/05 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
python绘制简单彩虹图
2018/11/19 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
python regex库实例用法总结
2021/01/03 Python
html5需遵循的6个设计原则
2016/04/27 HTML / CSS
汇智创新科技发展有限公司
2015/12/06 面试题
大学生实习感言
2014/01/16 职场文书
文明市民先进事迹
2014/05/15 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
企业趣味活动方案
2014/08/21 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
元宵节寄语大全
2015/02/27 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python