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 相关文章推荐
jQuery使用技巧简单汇总
Apr 18 Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
jQuery插件Validate实现自定义校验结果样式
Jan 18 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
jQuery中 $ 符号的冲突问题及解决方案
Nov 04 Javascript
基于Vuejs框架实现翻页组件
Jun 29 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 Javascript
如何让微信小程序页面之间的通信不再变困难
Jun 03 Javascript
浅谈layui里的上传控件问题
Sep 26 Javascript
公众号SVG动画交互实战代码
May 31 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
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
JavaScript前端图片加载管理器imagepool使用详解
2014/12/29 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
Bootstrap Validator 表单验证
2016/07/25 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
微信小程序 Page()函数详解
2016/10/17 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
python+pandas生成指定日期和重采样的方法
2018/04/11 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
python实现海螺图片的方法示例
2019/05/12 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
物流专业大学的自我评价
2014/01/11 职场文书
清洁工岗位职责
2014/01/29 职场文书
科长竞争上岗演讲稿
2014/05/12 职场文书
服务标语大全
2014/06/18 职场文书
班级标语大全
2014/06/21 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
黄埔军校观后感
2015/06/10 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python