目标效果:

1.当鼠标进入(鼠标进入被选元素的时候mouseenter 不会冒泡)sliderbar小盒子(宽40px,高40px,里面有个span内容为⬅)的时候,con小盒子(宽200px,高40px)向左移动160px(con小盒子的宽200px-sliderbar小盒子的宽40px),当con小盒子移动完毕后,span中的⬅变为➡

初始状态 :

当鼠标进入(鼠标进入被选元素的时候mouseenter 不会冒泡)sliderbar小盒子之后:

2.当鼠标离开(鼠标离开被选元素的时候mouseleave 不会冒泡)sliderbar小盒子(宽40px,高40px)的时候,con小盒子(宽200px,高40px)恢复初始状态,当con小盒子恢复初始状态后,span中的➡变为⬅

animate.js中

function animate(obj, target, callback) {//先清除之前的定时器,只保留当前的一个定时器clearInterval(obj.timer);obj.timer = setInterval(function () {// 1.步长值写在定时器里面 步长值=(目标值-现在的位置)/10var step = Math.ceil(target - obj.offsetLeft) / 10;//判断步长的正负// 如果步长为正,往大里取整 Math.ceil// 如果步长为负,往小里取整 Math.floorstep = step > 0 ? Math.ceil(step) : Math.floor(step);// 2.当盒子位置=目标位置,停止定时器if (obj.offsetLeft == target) {//用停止定时器的方式 停止动画clearInterval(obj.timer);// 如果有回调函数,调用回调函数if (callback) {callback();}}// 3.把之前每次加1,改为一个慢慢变小的步长值 步长值=(目标值-现在的位置)/10obj.style.left = obj.offsetLeft + step + 'px';//记得加单位}, 15)
}

html中

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>Document</title>

<style>

.sliderbar {

position: fixed;

right: 0;

/*设置动画一定要有定位*/

bottom: 100px;

width: 40px;

height: 40px;

text-align: center;

line-height: 40px;

cursor: pointer;

color: #fff;

}

.con {

position: absolute;

left: 0;

top: 0;

/*设置动画一定要有定位*/

width: 200px;

height: 40px;

background-color: purple;

z-index: -1;

}

</style>

<script src="./animate.js"></script>

 <!-- 引入封装好的动画js文件 -->

</head>

<body>

<div class="sliderbar">

<span>←</span>

<div class="con">问题反馈</div>

</div>

<script>

//1.获取元素

var sliderbar = document.querySelector('.sliderbar');

var con = document.querySelector('.con');

sliderbar.addEventListener('mouseenter', function () {

animate(con, -160, function () {

// 当con盒子向左移动的动画执行完毕后,将⬅改为➡

sliderbar.children[0].innerHTML = '➡';

});

})

sliderbar.addEventListener('mouseleave', function () {

animate(con, 0, function () {

// 当con盒子向右移动的动画执行完毕后,将➡改为⬅

sliderbar.children[0].innerHTML = '⬅';

});

})

</script>

</body>

</html>

b站pink老师JavaScript的PC端网页特效 案例代码——引用animate.js案例相关推荐

  1. 【重点案例】b站pink老师JavaScript的PC端网页特效 案例代码——网页轮播图

    目录 代码段: 1.index.js部分(全是重点) 2.animate.js部分(重点,是之前封装好的动画函数) 3.index.html部分(重点在标红区) 4.index.css部分(重点在标红 ...

  2. b站pink老师JavaScript的PC端网页特效 案例代码——仿淘宝返回顶部(带有动画的返回顶部)

    目标效果: 在之前写好的 的代码基础上 实现点击返回顶部字样,即可用缓动动画返回顶部[见代码段中4.和动画函数部分] 重点语法: 滚动窗口至文档中的特定位置 window.scroll(x,y) x, ...

  3. b站pink老师JavaScript的PC端网页特效 案例代码——仿京东放大镜效果

    目录 原理讲解: 代码段: 1. detail.html部分(重点在标红区) 2. detail.js部分(全部都是重点) 3. detail.css部分(重点在标红区) 4. base.css部分( ...

  4. b站pink老师JavaScript的PC端网页特效 案例代码——仿淘宝固定侧边栏

    目标效果: 1.当页面滚动到banner区域的顶部碰到页面顶部时,右边的侧边栏sliderbar,由之前距离页面顶部300px的固定定位,变为    侧边栏sliderbar距离页面顶部的距离=页面滚 ...

  5. b站pink老师JavaScript的PC端网页特效 案例代码——筋斗云案例

    目标效果: 1.最开始的时候cloud筋斗云处于最左边 2.当鼠标经过(mouseenter 不冒泡)对应li,cloud筋斗云就移到那个li(lis[i].offsetLeft获得li相对有定位的父 ...

  6. JavaScript—— PC 端网页特效

    目录 一.PC 端网页特效 1. 元素偏移量 offest 系列 1.1 offset 概述 1.2 offset 与 style 区别 案例:获取鼠标在盒子内的坐标 案例:模拟框拖拽 html cs ...

  7. javaScript PC端网页特效

    PC端网页特效 1. 元素偏移量 offset 系列 1.1 offset 概述 1.2 offset 与 style 区别 2. 元素可视区 client 系列 2.1 立即执行函数 2.2 loa ...

  8. 移动端、PC端 网页特效

    移动端网页特效 标题触屏事件 移动端浏览器兼容性较好,不需要考虑以前 JS 的兼容性问题,可以放心的使用原生 JS 书写效果,但是移动端也有自己独特的地方.比如触屏事件 touch(也称触摸事件),A ...

  9. PC端网页特效二:mouseenter 和 mouseover 的区别、动画函数封装

      目录 5.mouseenter 和 mouseover 的区别 6.动画函数封装 动画实现原理 简单动画函数封装 动画函数给不同元素记录不同定时器 缓动效果原理 动画函数多个目标值之间移动 缓动函 ...

  10. 05【JS 高级】-【PC端网页特效】元素偏移量 offset 系列, 元素可视区 client 系列, 元素滚动 scroll 系列, 动画函数封装, 常见网页特效案例

    04[JS 高级]-[PC端网页特效] 学习内容: 元素偏移量 offset 系列, 元素可视区 client 系列, 元素滚动 scroll 系列, 动画函数封装, 常见网页特效案例 1. 元素偏移 ...

最新文章

  1. 最新县及县以上行政区划代码(截止2009年12月31日)
  2. 上海大学c语言基础题目,求c语言大神学长学姐解答题目
  3. http 301 和 302的区别
  4. php常量定义表达式,从表达式创建PHP类常量的最佳解决方法?
  5. bind-utils.x86_64(dig) 安装失败解决办法
  6. URAL1519 Formula 1 —— 插头DP
  7. 《MySQL——order by逻辑(全字段排序与rowid排序)》
  8. C语言如何动态分配空间:malloc
  9. hashtable资料
  10. 游戏筑基开发之广度优先搜索算法(C语言)
  11. 论文笔记_S2D.62_VIL-SLAM_立体视觉惯性激光雷达同时定位和建图
  12. Delphi 集合和字符串互转
  13. C# NOPI读取Excel
  14. Lightweight OpenPose
  15. 用计算机制作一张家庭年收支表,简洁明了的家庭收支记账表格
  16. python 进化树_SCHISM 构建克隆进化树
  17. 一个电脑白痴和一个黑客的超爆笑的对话
  18. Python爬虫练习:JS解密,爬取某音漫客网站数据
  19. 删除Maven骨架Archetype
  20. 计算机房配备空调,信息机房空调配置的计算

热门文章

  1. 2015恒生电子校招笔试题
  2. JAVA将多个PDF文件合并成一个PDF
  3. vue中使用v-if出现闪现然后消失
  4. 收集一些电子书下载的网站
  5. 【观察】华为云:决胜拉美市场“正当时”,做出海企业的“好帮手”
  6. java 短链跳转原理_短连接跳转的原理
  7. 使用fedora32桌面图标
  8. 《正念领导力》承诺14:创造共赢
  9. C++刷题: 逆波兰表达式(力扣150题)
  10. 一个毕业设计 儿童趣味数学 app