前端-js网页特效(三)动画效果及原理


 

目录

 前言

一、动画效果实现过程

结构搭建

解析部分

效果部分:

二、缓动动画效果实现过程

结构搭建(其实一样)

解析部分

细节部分:

效果部分:

三、结束语


前言


       在小糖上一篇文章中,小糖提到了制作动画效果中至关重要的offsetLeft对象,还没看的小伙伴可以先补补课,(链接)
那么,本文主要讲解动画效果的实现过程及应该注意的细节。

一、动画效果实现过程

结构搭建

我们先书写一个跳绳的小狗

     css    

 * {
            padding: 0;
        }
        .box {
            background-color: #fff;
            width: 100px;
            height: 100px;
            position: absolute;
            top: 100px;
        }
        img {
            width: 100%;
            height: 100%;
        }

        

    html

<button>移动</button>
<div class="box">
    <img src="./img/jumping dog.gif" alt="">
</div>

解析部分

js动画部分,我们选择书写成一个函数 animate(obj,target)


1、声明一个形参是对象目标位置的函数 animate(obj,target)

2、获取元素的当前位置,与目标值作比较,小于目标值则开启计时器向右加5px

3、关闭定时器的条件:元素的当前位置大于目标值

4、利用按钮点击调用该函数

最后还要注意给元素添加css定位,不然小狗可不动哦

这样小狗就可以移动啦,代码如下
    

var box = document.querySelector('.box');
            var btn = document.querySelector('button');
    function animate(obj,target){
                var timer = setInterval(function(){
                if( obj.offsetLeft >= target){    //结束条件
                    clearInterval(timer);
                }
                obj.style.left = obj.offsetLeft + 10 +'px';
              },20);
            };
            btn.addEventListener('click',function(){
                    animate(box,200);
            })

效果部分:

 

上面的小狗是匀速移动的,但网页移动图片常常不是匀速移动,而是一种看起来更为舒服的缓动效果,如何实现呢?

    这次我们换成小海豚~

二、缓动动画效果实现过程

结构搭建(其实一样)

 css

* {
            padding: 0;
        }
        .box {
            background-color: #fff;
            width: 100px;
            height: 100px;
            position: absolute;
            top: 100px;
        }
        img {
            width: 100%;
            height: 100%;
        }

      html

<button>移动</button>
<div class="box">
    <img src="./img/hantun.gif" alt="">
</div>

解析部分

js动画部分,我们还是书写成一个函数 animate(obj,target)
1、声明一个形参是对象目标位置的函数 animate(obj,target)

2、获取元素的当前位置,与目标值作比较,小于目标值则开启计时器

3、速度由匀速改为缓动,公式为:(目标位置 - 当前位置)/ 10,声明为一个变量

4、在定时器中,每40ms添加到元素的offsetLeft实现移动

5、关闭定时器的条件:元素的当前位置大于目标值

6、利用按钮点击调用该函数

细节部分:

(1)在每次开启计时器之前都要清除所有计时器,这样不会出现bug
(2)还要注意数据的取整,不然会造成偏差!

最后还要注意给元素添加css定位,不然小海豚也不动哦!

这样小海豚就可以移动啦,代码如下
      

 var box = document.querySelector('.box');
        var btn = document.querySelector('button');
        function animate(obj,target){
            clearInterval(obj.timer);                    //保证只有一个计时器 避免出现bug
             obj.timer = setInterval(function(){
                //步数加在计时器里
                var step = (target - obj.offsetLeft)/10;            //公式声明为一个变量
                step = step > 0? Math.ceil(step) : Math.floor(step);//取整 防止实际效果偏差
            if( obj.offsetLeft >= target){  
                clearInterval(obj.timer);                           //关闭计时器
            }
            obj.style.left = obj.offsetLeft + step +'px';
        },40);
        };
        //按钮调用该函数
        btn.addEventListener('click',function(){
            animate(box,400);
        })

效果部分:

 

三、结束语

希望本篇文章可以帮到求知若渴的众多同学吖~
若能帮到 也欢迎点赞、收藏、关注我,后续也会持续发布新文章,祝大家学有所成!
欢迎各位前端大佬留言讨论指教! 
小糖谢谢各位啦~❤  ❤  ❤  ❤

 

  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
目录 -------------------------------------------------------------------------------- 第1章 javascript概述 1 1.1 什么是脚本语言 2 1.2 javascript简介 2 1.3 javascript与java的关系 3 1.4 javascript的基本构成 4 1.4.1 基本数据类型 4 1.4.2 变量 4 1.4.3 常量 5 1.4.4 表达式 6 1.4.5 运算符 6 1.5 javascript的基本语法 10 1.5.1 if条件选择语句 10 1.5.2 switch选择语句 11 1.5.3 do…while语句 12 1.5.4 while循环语句 13 1.5.5 for循环语句 14 1.5.6 break语句与continue语句 15 1.6 javascript的函数调用 16 1.6.1 函数的定义与调用 17 1.6.2 全局变量与局部变量 17 1.6.3 可变参数的函数 17 1.6.4 预定义函数 17 1.7 javascript的对象 19 1.7.1 对象的基本概述 19 1.7.2 对象属性 19 1.7.3 创建对象 20 1.7.4 使用对象 22 1.7.5 其他内部对象 24 1.8 小结 26 第2章 javascript中事件. 窗口和框架的处理 27 2.1 事件处理的基本概念 28 2.2 常用事件及处理 28 2.2.1 浏览器事件 29 2.2.2 鼠标事件 29 2.2.3 文本框事件 30 2.2.4 其他事件 31 2.3 什么是框架 31 2.4 使用框架 32 2.5 小结 32 第3章 链接类特效 33 3.1 按时消失的链接 34 3.2 带滚动提示的链接 36 3.3 动态变换的链接 37 3.4 滚动链接 38 3.5 不断闪动的链接 39 3.6 在按钮上定时显示不同的链接 40 3.7 带链接的滚动字幕 42 3.8 单击链接显示菜单 43 3.9 鼠标右键链接 44 3.10 显示当前页的所有链接 45 3.11 查看网址源代码 46 3.12 将站点加入收藏夹 47 3.13 单击按钮返回默认主页 47 3.14 给指定的人员发信 48 3.15 弹出菜单式链接 49 3.16 图片选择器 50 3.17 链接导航框 51 3.18 小球跟踪链接 52 3.19 单击按钮打开全屏窗口 56 3.20 单选按钮选择链接 56 3.21 隐藏的链接 57 3.22 变换链接颜色 58 3.23 固定链接的位置 59 第4章 时间类特效 61 4.1 时间的水中倒影 62 4.2 简单的日历 63 4.3 带有农历的日历 65 4.4 标题栏显示日期 68 4.5 标题栏显示时间 69 4.6 不同时间的不同问候 69 4.7 记录进入网站的时间 70 4.8 页面的最后更新日期 71 4.9 节日倒计时 72 4.10 定时打开指定页面 72 4.11 显示在背景上的时钟 73 4.12 动态显示访问时间 75 4.13 在指定时间内保存页面 76 4.14 离今天最近的两个星期天 78 4.15 记录在网站停留的时间 79 4.16 带开关的时钟 80 4.17 每天显示一条不同的信息 81 4.18 模拟时钟 82 4.19 英文式的文本时钟 84 4.20 关闭页面时弹出时间警告框 85 4.21 显示在按钮上的时间 86 4.22 计算出生时间 88 4.23 计算几天后将是什么日期 92 第5章 鼠标类特效 95 5.1 让鼠标悬停来开关窗口 96 5.2 鼠标的十字星准星 96 5.3 鼠标的文字跟踪 97 5.4 鼠标经过时改变文本颜色 99 5.5 鼠标驱动图片变化 100 5.6 鼠标悬停时背景色改变 101 5.7 鼠标右键弹出对话框 102 5.8 鼠标的图片旋转跟踪 103 5.9 旋转的鼠标光环 105 5.10 跟随鼠标旋转的文字 107 5.11 单击鼠标右键打开网站 109 5.12 跟着鼠标的烟花 109 5.13 跟随鼠标的时钟 111 5.14 屏蔽鼠标右键 115 5.15 跟随鼠标的滚动字幕 116 5.16 鼠标悬停打开新的页面 117 5.17 鼠标的指针踪迹效果 118 5.18 跟随鼠标跳动的星星 119 5.19 冒水泡的鼠标 121 5.20 跟随鼠标的幻影文字 123 5.21 非图片鼠标跟踪 124 5.22 自动变化的鼠标指针 127 5.23 跟随鼠标的流星 128 第6章 图片类特效 133 6.1 鼠标控制图片的明暗效果 134 6.2 来回摆动的图片 134 6.3 随意飘动的图像 136 6.4 随意走动的图片 137 6.5 图片的水中倒影效果 140 6.6 可以随意拖动的图片 140 6.7 “雷达”扫描图片效果 142 6.8 图片的变形效果 143 6.9 会抖动的图片 144 6.10 不停闪烁的图片 146 6.11 图片分割显示 146 6.12 图片穿行页面效果 148 6.13 自由移动的图片 149 6.14 图片代替按钮效果 150 6.15 图片的翻转效果 151 6.16 向外扩展的图片 152 6.17 鼠标悬停改变图片 153 6.18 图片模糊效果 155 6.19 图片的探照灯效果 156 6.20 跟随屏幕移动的图片 157 6.21 图片的模糊显示 158 6.22 图片的渐隐渐现 159 6.23 一堆开放的花朵 160 第7章 文字类特效 165 7.1 闪烁的按钮文字 166 7.2 逐个显示的变色文字.. 167 7.3 垂直滚动的文字 168 7.4 文字的渐隐渐显的效果 169 7.5 文字跳动的效果 170 7.6 状态栏的打字效果 172 7.7 文字的逐条显示 172 7.8 文字的旋转效果 174 7.9 文字的心跳效果 175 7.10 文字在文本框中坠落 176 7.11 文字飞舞的效果 178 7.12 横向移动的跑马灯 181 7.13 可随便移动的文字 182 7.14 水波形的文字 183 7.15 首字母大小写的变化 184 7.16 状态栏文字飞出效果 186 7.17 链接文字的滚动效果 188 7.18 不停变色的文字 189 7.19 文字颜色变化的显示效果 190 7.20 选中文本框中的全部文字 192 7.21 按钮上的滚动文字 193 7.22 从天而降的文字 194 7.23 鼠标悬停显示提示文字 200 第8章 页面类特效 203 8.1 下雨的页面效果 204 8.2 网页中的loading条 206 8.3 页面的制作完成时间 207 8.4 在状态栏显示输入字符的页面 208 8.5 页面的加密功能 209 8.6 调色板更换页面背景 211 8.7 滚动信息公告页面 213 8.8 页面背景的颜色变化 215 8.9 页面背景的随机显示 216 8.10 单击按钮打印当前页面 217 8.11 记录用户的来访次数 218 8.12 可选择的页面信息 219 8.13 文本框消失的页面 220 8.14 随机播放背景音乐的页面 221 8.15 能自动滚屏的页面 222 8.16 密码保护页面 223 8.17 检测ie所装插件的页面 224 8.18 页面向右滚屏 225 8.19 渐渐消失的页面 226 8.20 按钮锁定页面 226 8.21 在线改变背景颜色 227 8.22 雪花纷飞的页面 228 8.23 页面直接显示 230 第9章 窗口类特效 233 9.1 按指定要求打开的窗口 234 9.2 控制窗口的打开和关闭 235 9.3 从天而降的窗口 235 9.4 打开慢慢变大的窗口 236 9.5 打开一个四面变大的窗口 237 9.6 定时打开新的窗口 238 9.7 转动出现的窗口 239 9.8 自动弹出的窗口 241 9.9 自动消失的广告窗口 242 9.10 窗口的震动效果 243 9.11 同时打开10个窗口 244 9.12 检测系统信息窗口 245 9.13 测试链接速度的窗口 248 9.14 关闭窗口打开收藏夹 250 9.15 关闭窗口打开指定地址 250 9.16 显示载入时间的窗口 251 9.17 显示浏览器信息的窗口 252 9.18 显示访客登录信息的窗口 253 9.19 标题渐变的窗口 255 9.20 绝对全屏打开链接网页 257 9.21 打开一个频道窗口 258 9.22 在页面中打开窗口 258 9.23 自动滚动的窗口 259 第10章 其他特效 261 10.1 显示下载进度 262 10.2 打开或关闭隐藏层 263 10.3 打字速度测试 264 10.4 改变图片提示背景颜色 266 10.5 渐变色表格 269 10.6 列表内容相互转换 270 10.7 身体健康测试 273 10.8 网络知识测试 275 10.9 方框线上的闪耀效果 278 10.10 自动隐藏的菜单 281 10.11 自动收缩的菜单 283 10.12 爆炸式菜单链接 285 10.13 显示边框的菜单 287 10.14 右键菜单链接 289 10.15 首页导航菜单 291 10.16 ftp登录页面 292 10.17 html颜色代码表 293 10.18 计算平面上两点之间的距离 294 10.19 测试点击速度 295 10.20 元素周期表 297 10.21 计算器 299 10.22 自信测试 302 10.23 滚动交换链接 304 第11章 javascript与activex技术 311 11.1 activex组件 312 11.1.1 什么是activex组件 312 11.1.2 activex的内容 312 11.1.3 activex控制和internet 312 11.2 activex组件的应用 313 11.2.1 网页中的flash对象 313 11.2.2 flash对象的调用 314 11.3 asp与activex组件 315 11.4 asp与javascript语言 315 11.4.1 脚本语言 316 11.4.2 设置脚本语言 316 11.4.3 服务器端的脚本 316 11.4.4 javascript和vbscript的区别 317 11.5 asp与表单处理 317 11.5.1 form数据集合 317 11.5.2 form集合的提交方式 318 11.6 小结 319 第12章 javascript中的数据库调用 321 12.1 数据库的构建 322 12.2 数据库查询语句 323 12.2.1 sql数据库 323 12.2.2 asp中的sql语句 323 12.3 数据库的连接 324 12.3.1 odbc的dsn连接方法 324 12.3.2 odbc的直接连接方法 325 12.3.3 ole db的连接方法 325 12.4 数据库的查询 325 12.4.1 使用connection对象查询数据库 326 12.4.2 使用recordset对象查询数据库 327 12.5 使用javascript访问数据库 330 12.6 小结 331 第13章 综合实例 333 13.1 勇闯迷宫 334 13.2 记忆力游戏 338 13.3 贪吃蛇游戏 342 13.4 打蜜蜂 345 13.5 射击游戏 350 13.6 螃蟹赛跑 353 13.7 数字拼图 358 13.8 填格子游戏 363 13.9 棒球动画 367 13.10 礼花动画 372
JavaScript动画小游戏是一种使用JavaScript编程语言开发的小型游戏。这种游戏通常具有简单的规则和操作,但是通过使用JavaScript动画功能,可以给玩家带来更加丰富和有趣的游戏体验。 在这种类型的游戏中,开发者可以使用JavaScript中的动画库或自定义动画函数来创建各种动画效果。比如,可以通过改变元素的位置、大小、颜色等属性来实现平滑的动画过渡。这种动画效果的应用可以使得游戏场景更加生动和沉浸式。 除了动画效果JavaScript动画小游戏还可以包括玩家的操作,比如点击、拖拽等。通过监听用户的交互事件,可以触发相应的动画效果或游戏行为,增加游戏的交互性和挑战性。 例如,一个简单的JavaScript动画小游戏可以是一个跳跃的小球避开障碍物的游戏。玩家控制小球的移动,通过点击屏幕或按键来让小球跳起,同时要躲避障碍物。通过改变小球的位置和障碍物的出现位置,可以创建出具有挑战性和变化性的游戏体验。 除了开发过程中的动画效果和交互操作,JavaScript动画小游戏还可以通过添加音效、计分系统、关卡设置等功能来增加游戏的趣味性和可玩性。 总之,JavaScript动画小游戏是一种利用JavaScript编程语言创建的小型游戏,通过运用动画效果和交互操作,为玩家提供丰富,有趣和具有挑战性的游戏体验。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值