> 웹 프론트엔드 > JS 튜토리얼 > js_javascript 기술로 구현한 다채로운 사각형의 비행 판타지 효과

js_javascript 기술로 구현한 다채로운 사각형의 비행 판타지 효과

WBOY
풀어 주다: 2016-05-16 15:17:47
원래의
1426명이 탐색했습니다.

이 기사의 예에서는 js로 구현된 색상 사각형이 날아다니는 판타지 효과를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

런닝 효과 스크린샷은 다음과 같습니다.

구체적인 코드는 다음과 같습니다.

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

106

107

108

109

110

111

112

113

114

115

116

<!DOCTYPE html>

<html>

 <head>

  <title>demo</title>

  <style type="text/css">

   body {

    margin:0; padding:0;

   }

   ul {

    list-style:none; margin:0; padding:0;

   }

   li {

    position:absolute;

   }

   #power {

    font-size:50px; line-height:100px; border:2px solid green; color:green;

    position:absolute; right:20px; bottom:20px;

   }

  </style>

 </head>

 <body>

  <ul id="canvas"></ul>

 </body>

 <script type="text/javascript">

  var $ = function(id) {

   return document.getElementById(id);

  }

  var $_name = function(tag) {

   return document.getElementsByTagName(tag);

  }

  var color = function() {

   var _color = "rgb(";

   _color += Math.round(Math.random()*255);

   _color += ",";

   _color += Math.round(Math.random()*255);

   _color += ",";

   _color += Math.round(Math.random()*255);

   _color += ")";

   return _color;

  }

  var createLi = function(attr) {

   var ele = document.createElement("li");

   ele.style.backgroundColor = attr.bgColor || "black";

   ele.style.left = attr.left + "px";

   ele.style.top = attr.top + "px";

   ele.style.width = ele.style.height = "15px";

   ele.onmouseover = function() {

    var _self = this;

    var _rotate = 0;

    if(_self.interval) {

     clearInterval(_self.interval);

     _self.style.backgroundColor = _self._backgroundColorBK;

    }

    _self._backgroundColorBK = _self.style.backgroundColor;

    _self.style.backgroundColor = color();

    _self.interval = setInterval(function() {

     _self.style.webkitTransform = "rotate("+_rotate+"deg)";

     _rotate += 30;

     if(_rotate > 360) {

      clearInterval(_self.interval);

      _self.onmouseover = null;

      _self.style.backgroundColor = _self._backgroundColorBK;

      move(_self);

      return;

     }

    }, 100);

   }

   return ele;

  }

  var loca = {

   x: 1000,

   y: 0

  };

  var move = function(obj) {

   var _self = obj;

   var curX = parseInt(_self.style.left);

   var curY = parseInt(_self.style.top);

   var sX = loca.x - curX;

   var sY = loca.y - curY;

   var addX = sX/36;

   var addY = sY/36;

   var rotate = 0;

   var backgroundColorBK = _self.style.backgroundColor;

   _self.interval = setInterval(function() {

    _self.style.width = _self.style.height = (parseInt(_self.style.height) + 5) + "px";

    _self.style.webkitTransform = "rotate("+rotate+"deg)";

    curX += addX;

    curY += addY;

    _self.style.left = curX + "px";

    _self.style.top = curY + "px";

    _self.style.backgroundColor = color();

    rotate += 10;

    if(rotate > 360) {

     _self.style.left = loca.x + "px";

     _self.style.top = loca.y + "px";

     clearInterval(_self.interval);

     _self.style.backgroundColor = backgroundColorBK;

     return;

    }

   }, 30);

  }

  var init = function() {

   var ul = $("canvas");

   for(var i=50; i<90; i++) {

    for(var j=50; j<90; j++) {

     var color = "rgb("+i+","+j+","+Math.round(Math.random()*255)+")";

     ul.appendChild(createLi({bgColor: color, left:(j-50)*16 ,top:(i-50)*16}));

    }

   }

  }

  var main = function() {

   init();

  }

  main();

 </script>

</html>

로그인 후 복사

js 특수 효과와 관련된 더 많은 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제를 확인할 수 있습니다: "jQuery 애니메이션 및 특수 효과 사용 요약", "일반적인 클래식 요약 jQuery의 특수 효과" 및 " JavaScript 애니메이션 특수 효과 및 기법 요약

이 기사가 JavaScript 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿