Jadual Kandungan
下面是我们做的一个例子
Rumah hujung hadapan web tutorial js javascript中多物体运动的实例代码

javascript中多物体运动的实例代码

Aug 31, 2018 am 11:14 AM
javascript

本篇文章给大家带来的内容是关于javascript中多物体运动的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

前面我们都是用定时器实现单物体运动,在项目中我们往往不是做单物体运动,而是做多物体多个值变化。
这里我们将通过改变参数实现多物体、任意值的运动。一个运动框架,可以改变物体的宽度、高度、边框、字体大小、透明度等等。

注意:上面章节中,我们都是用offsetWidth(offsetWidth包含边框和padding等)等设置、获取样式,因为使用方式简单,但是如果物体包含border和padding等样式的时候,就会报错,所以这里我们用更加严谨的方式currentStyle和getComputedStyle来获取样式。
注意:在电脑中我们并不能真正的存储一些具体的数值,我们存储的是一些近似值,比如0.07*100,最终结果并不是7,所以在下面我们会四舍五入转换为整数。
注意注意:在多物体运动时,定时器和一些参数一定不要共用,否则会到这这个运动没有完成就被清除然后触发了其他运动,一些参数也不可以共用,会导致一些参数没有达到固定值就被重新操作。所以,下例中的定时器都是放在元素上。

下面是我们做的一个例子

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

<!DOCTYPE html>

<html>

 

<head>

  <title>运动改变宽度、高度、边框、字体、透明度</title>

  <style>

    div {

      width: 200px;

      height: 200px;

      background: red;

      margin: 10px;

      float: left;

      border:1px solid #000;

      font-size:14px;

    }

    div:nth-child(5) {

      filter: alpha(opacity:30);

      opacity:0.3;

    }

  </style>

  <script>

    window.onload = function() {

      var oDiv1 = document.getElementById("div1");

      var oDiv2 = document.getElementById("div2");

      var oDiv3 = document.getElementById("div3");

      var oDiv4 = document.getElementById("div4");

      var oDiv5 = document.getElementById("div5");

      oDiv1.onmouseover=function(){

        startMove(this,"height", 400)

      }

      oDiv1.onmouseout=function(){

        startMove(this,"height", 200)

      }

      oDiv2.onmouseover=function(){

        startMove(this,"width", 400)

      }

      oDiv2.onmouseout=function(){

        startMove(this, "width",200)

      }

      oDiv3.onmouseover=function(){

        startMove(this,"fontSize", 50)

      }

      oDiv3.onmouseout=function(){

        startMove(this, "fontSize",14)

      }

 

      oDiv4.onmouseover=function(){

        startMove(this,"borderWidth", 100)

      }

      oDiv4.onmouseout=function(){

        startMove(this, "borderWidth",1)

      }

      oDiv5.onmouseover=function(){

        startMove(this,"opacity", 100)

      }

      oDiv5.onmouseout=function(){

        startMove(this, "opacity",30)

      }

    }

 

    function getStyle(obj,name){

      if(obj.currentStyle){

        return obj.currentStyle[name];

      }

      else{

        return getComputedStyle(obj,false)[name];

      }

    }

 

    function startMove(obj, attr, iTarget) {

      clearInterval(obj.timer);

      obj.timer = setInterval(function() {

        var cur=0;

        if(attr==="opacity"){

          cur=Math.round(parseFloat(getStyle(obj,attr))*100);//有可能会出现误差0.07*100

        }

        else{

          cur=parseInt(getStyle(obj,attr));

        }

        var speed = (iTarget - cur) / 6;

        speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

        if (cur === iTarget) {

          clearInterval(obj.timer);

        else {

          if(attr==="opacity"){

            obj.style.filter="alpha(opacity:"+cur+speed+")";

            obj.style.opacity=(cur+speed)/100;

          }else{

            obj.style[attr]=cur+speed+"px";

          }

        }

      }, 30)

    }

  </script>

</head>

 

<body>

  <div id="div1">变宽</div>

  <div id="div2">变高</div>

  <div id="div3">文字变大</div>

  <div id="div4">borderwidth</div>

  <div id="div5">透明度</div>

</body>

 

</html>

Salin selepas log masuk

相关推荐:

javascript多物体运动实现方法分析_javascript技巧

JS实现多物体运动实例分享

Atas ialah kandungan terperinci javascript中多物体运动的实例代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 am 09:39 AM

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Dec 17, 2023 pm 12:09 PM

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah

Bagaimana untuk menggunakan insertBefore dalam javascript Bagaimana untuk menggunakan insertBefore dalam javascript Nov 24, 2023 am 11:56 AM

Bagaimana untuk menggunakan insertBefore dalam javascript

See all articles