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 字符串与数组转换函数[不用split与join]
Dec 13 Javascript
URL地址中的#符号使用说明
Feb 12 Javascript
引用外部js乱码问题分析及解决方案
Apr 12 Javascript
js判断屏幕分辨率的代码
Jul 16 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
Dec 10 Javascript
原生JS实现拖拽图片效果
Aug 27 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
May 12 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
JavaScript实现简单的星星评分效果
May 18 Javascript
underscore之function_动力节点Java学院整理
Jul 11 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
字节飞书面试promise.all实现示例
Jun 16 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
基于文本的访客签到簿
2006/10/09 PHP
分享下php5类中三种数据类型的区别
2015/01/26 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
php实现简单的权限管理的示例代码
2017/08/25 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
vue组件系列之TagsInput详解
2020/05/14 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
python列表操作使用示例分享
2014/02/21 Python
Python 可变类型和不可变类型及引用过程解析
2019/09/27 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
2019/10/09 Python
Pytorch之contiguous的用法
2019/12/31 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
专业销售业务员求职信
2013/11/18 职场文书
大学生就业意向书范文
2014/04/01 职场文书
家长对孩子的评语
2014/04/18 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
PHP基本语法
2021/03/31 PHP
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫