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 相关文章推荐
原生js和jquery中有关透明度设置的相关问题
Jan 08 Javascript
javascript轻量级模板引擎juicer使用指南
Jun 22 Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
javascript实现自动输出文本(打字特效)
Aug 27 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
详解jquery事件delegate()的使用方法
Jan 25 Javascript
jquery实现无刷新验证码的简单实例
May 19 Javascript
bootstrap的工具提示实例代码
May 17 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
Nov 26 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 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中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
Python实现嵌套列表去重方法示例
2017/12/28 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
python中删除某个元素的方法解析
2019/11/05 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
移动端rem布局的两种实现方法
2018/01/03 HTML / CSS
canvas实现圆绘制的示例代码
2019/09/11 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
音乐表演专业毕业生求职信
2013/10/14 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
机房搬迁方案
2014/05/01 职场文书
活动总结怎么写啊
2014/05/07 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
学习普通话的体会
2014/11/07 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
部分武汉产收音机展览
2022/04/07 无线电
小程序自定义轮播图圆点组件
2022/06/25 Javascript