返回顶部
首页 > 资讯 > 前端开发 > html >JavaScript运动框架之多值运动的示例分析
  • 318
分享到

JavaScript运动框架之多值运动的示例分析

2024-04-02 19:04:59 318人浏览 薄情痞子
摘要

这篇文章主要介绍javascript运动框架之多值运动的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!多值运动,也就是对于某个对象来说,不仅仅只是其中一个属性值在变化,而是好

这篇文章主要介绍javascript运动框架之多值运动的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

多值运动,也就是对于某个对象来说,不仅仅只是其中一个属性值在变化,而是好多个,比如宽,高,字体,透明度等等同时变化

当然了,多值运动会产生一个问题,就是定时器何时关闭的问题!当然是所有的属性值都运动到目标值了才能清理定时器,也就是等最慢的。就好比十个人一起聚餐,不能等到来一个人就开吃!

前几篇讲的都是一个元素对象中某一个属性的运动,这次讲同一个元素对象中多个属性值的缓冲运动,那么每个属性都有个终点(目标点),我们把这些属性及其目标值写成一个对象的形式,或者是JSON状!容易产生的问题就是上面说的,这里用了共同的速度函数,但有的属性值从100 –> 101, 有的属性值从100 –> 600,你得等耗时最长的属性值到达目标值才能关闭该obj所拥有的定时器,设计的思路就是每次执行轮询函数设置一个bStob = true;在遍历扫描json中属性的时候,只要有没到到目标值的属性,就设为false,这样定时器就不会关闭,即使有的属性值已经到达终点,此时轮询依旧会执行扫描,只不过此时该属性运动速度为0了,也不会运动了。也就是之前:

if(attr == cur) {
 cleartInterval(obj.timer);
}

要增强为:

if (bStop) {
 clearInterval(obj.timer);
}
<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>运动框架(四):多值运动</title>
 <style type="text/CSS">
 div {
  width: 100px;
  height: 100px;
  background: orange;
  margin: 10px;
  float: left;
 }
 </style>
</head>
<body>
 <div id="div1"></div>

 <script type="text/javascript">
 var oDiv = document.getElementById('div1');
 oDiv.onmouseover = function() {
  var json = {
  width: 600,
  height: 200,
  opacity: 30
  };
  startMove(this, json);
 };
 oDiv.onmouseout = function() {
  var json = {
  width: 100,
  height: 100,
  opacity: 100
  };
  startMove(this, json);
 };
 function getStyle(obj, attr) {
  if (obj.currentStyle) {
  return obj.currentStyle[attr];
  } else {
  return getComputedStyle(obj, false)[attr];
  }
 }

 function startMove(obj, json) {
  clearInterval(obj.timer);
  obj.timer = setInterval(function() {
  var bStop = true;
  for (var attr in json) {
   var cur = 0;
   if (attr === 'opacity') {
   cur = Math.round(parseFloat(getStyle(obj, attr)) * 100);
   } else {
   cur = parseInt(getStyle(obj, attr));
   }
   var speed = (json[attr] - cur) / 10;
   speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
   if (cur != json[attr]) {//凡是有未到达目标点的,一律不让定时器停下,否则有的属性不能到达目标值
   bStop = false;
   }
   if (attr === 'opacity') {
   cur += speed;
   obj.style.filter = 'alpha(opacity:' + cur + ')';
   obj.style.opacity = cur / 100;//Chrome,IE
   } else {
   obj.style[attr] = cur + speed + 'px';
   }
  }
  //整个循环结束后,仍然保持着true,说明没有没到达目标值的属性,也就是都到了
  if (bStop) {
   clearInterval(obj.timer);//说明所有的属性都到达了目标值
  }

  }, 30);
 }
 </script>
</body>
</html>

JavaScript运动框架之多值运动的示例分析

以上是“JavaScript运动框架之多值运动的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网html频道!

--结束END--

本文标题: JavaScript运动框架之多值运动的示例分析

本文链接: https://lsjlt.com/news/79221.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JavaScript运动框架之多值运动的示例分析
    这篇文章主要介绍JavaScript运动框架之多值运动的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!多值运动,也就是对于某个对象来说,不仅仅只是其中一个属性值在变化,而是好...
    99+
    2024-04-02
  • JavaScript运动框架之多物体任意值运动的示例分析
    小编给大家分享一下JavaScript运动框架之多物体任意值运动的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!多物体的...
    99+
    2024-04-02
  • JavaScript运动框架之链式运动的示例分析
    这篇文章主要介绍了JavaScript运动框架之链式运动的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。链式运动就是运动完后接着再运...
    99+
    2024-04-02
  • JS运动特效之任意值添加运动的示例分析
    这篇文章主要介绍JS运动特效之任意值添加运动的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:回顾一下上个例子JS实现多物体运动的方法:<script> ...
    99+
    2024-04-02
  • 分享JavaScript运动框架
    本篇内容介绍了“分享JavaScript运动框架”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!JavaSc...
    99+
    2024-04-02
  • JS运动特效之链式运动的示例分析
    这篇文章将为大家详细讲解有关JS运动特效之链式运动的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。链式运动:一个运动接着一个运动。比如:鼠标移入div先让宽变大,...
    99+
    2024-04-02
  • 原生JS封装animate运动框架的示例分析
    小编给大家分享一下原生JS封装animate运动框架的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如下所示:<!DOCTYPE html> <html...
    99+
    2024-04-02
  • JavaScript运行的示例分析
    这篇文章给大家分享的是有关JavaScript运行的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.1 语法分析预编译之前,先通篇扫描看看有没有语法错误1.2 预编译 1.2.1 函数声明整体...
    99+
    2023-06-29
  • jquery中animate动画持续运动的示例分析
    这篇文章给大家分享的是有关jquery中animate动画持续运动的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如下所示:function fingers()...
    99+
    2024-04-02
  • PHP中CI框架运行模式的示例分析
    小编给大家分享一下PHP中CI框架运行模式的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Java、Perl以及php自创新的语...
    99+
    2023-06-14
  • css中运动路径动画Motion Path的示例分析
    这篇文章给大家介绍css中运动路径动画Motion Path的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。CSS 中有一个非常有意思的模块 -- CSS Motion Pat...
    99+
    2024-04-02
  • JavaScript运行原理的示例分析
    这篇文章主要介绍JavaScript运行原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript是一种基于对象的动态、弱类型脚本语言(以下简称JS),是一种解...
    99+
    2024-04-02
  • PHP之CI框架的示例分析
    这篇文章将为大家详细讲解有关PHP之CI框架的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、前言CodeIgniter 是一个简单快速的PHP MVC框架。EllisLab 的工作人员发布了 ...
    99+
    2023-06-20
  • html5中图片抛物线运动的示例分析
    这篇文章主要介绍html5中图片抛物线运动的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!常见的, 物体/图片做抛物线或者更准确的说是沿贝塞尔曲线运动是H5开发中常见的需求,...
    99+
    2024-04-02
  • vue移动UI框架滑动加载数据的示例分析
    小编给大家分享一下vue移动UI框架滑动加载数据的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果展示先上一个gif图...
    99+
    2024-04-02
  • 数值运算shell脚本的示例分析
    这篇文章给大家分享的是有关数值运算shell脚本的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。这次的shell案例比较简单,但有其特点。#!/bin/sh# scriptbc -&n...
    99+
    2023-06-09
  • web开发中基于匀速运动的示例分析
    这篇文章主要介绍web开发中基于匀速运动的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript中,如何让一个元素(比如div)运动起来呢?设置基本的样式,一定要...
    99+
    2024-04-02
  • python中自动化运维工具ansible的示例分析
    这篇文章主要介绍python中自动化运维工具ansible的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ansible 简介ansible 是什么?  ansible是新出现的自动化运维工具,基于Pytho...
    99+
    2023-06-20
  • J-Focus0.4.0中JS动画应用框架的示例分析
    本篇文章给大家分享的是有关J-Focus0.4.0中JS动画应用框架的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。J-Focus (...
    99+
    2024-04-02
  • JavaScript插件化框架MinimaJS的示例分析
    这篇文章将为大家详细讲解有关JavaScript插件化框架MinimaJS的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript编写的插件化框架——...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作