ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript は Web ページに関わる単純な動作 (幅、高さ、透明度、位置の変更) を実装します_JavaScript スキル

JavaScript は Web ページに関わる単純な動作 (幅、高さ、透明度、位置の変更) を実装します_JavaScript スキル

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-05-16 15:29:03
オリジナル
1127 人が閲覧しました

仕事でWebページを書く際の動作は、幅、高さ、透明度、位置の変更など、最もよく使われるフォームなので、手間を省くために統合しました。次のようなものがあります:

互換性のあるもの: IE シリーズ、Chrome、Firefox、Opera、Safari、360

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

/*

 javascript简易运动

  

 Move.action(dom对象,json格式属性值对,缓动参考值,回调方法)

 

 示例:

 var box = document.getElementById('Ele');

 Move.action(box,{width:500,height:200,left:200,top:100,marginLeft:10,opacity:.5},5,function(){

  console.log('end');

 });

 

*/

 

 

var Move = {

 

 version: '1.5',

 

 //判断是否空对象

 isEmptyObject: function(obj) {

 for (var attr in obj) {

 return false;

 }

 return true;

 },

 //取CSS样式值

 getStyle: function(obj, attr) {

 if (obj.currentStyle) { //IE

 return obj.currentStyle[attr];

 } else {

 return getComputedStyle(obj, null)[attr];

 }

 },

 //运动

 action: function(obj, json, sv, callback) {

 

 _this = this;

 

 //obj是否为空

 if (_this.isEmptyObject(obj)) {

 return false;

 }

 

 //运动开始

 clearInterval(obj.timer);

 obj.timer = setInterval(function() {

 var isAllCompleted = true, //假设全部运动都完成了

 speed, //速度

 attrValue, //当前值

 targetV; //目标值

 for (attr in json) {

 attrValue = _this.getStyle(obj, attr);

 switch (attr) {

  case 'opacity':

  attrValue = Math.round((isNaN(parseFloat(attrValue)) ? 1 : parseFloat(attrValue)) * 100);

  speed = (json[attr] * 100 - attrValue) / (sv || 4);

  targetV = json[attr] * 100;

  break;

  default:

  attrValue = isNaN(parseInt(attrValue)) ? 0 : parseInt(attrValue);

  speed = (json[attr] - attrValue) / (sv || 4);

  targetV = json[attr];

 }

 

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

 //如果循环过程中存在尚未结束的运动,isAllCompleted为假

 if (attrValue != targetV) {

  isAllCompleted = false;

 }

 

 switch (attr) {

  case 'opacity':

  {

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

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

  };

  break;

  default:

  obj.style[attr] = attrValue + speed + 'px';

 }

 }

 

 //所有循环结束后,只有当全部运动结束后(isAllCompleted=true)时才关闭定时器

 if (isAllCompleted) {

 clearInterval(obj.timer);

 

 if (typeof callback === 'function') {

  callback();

 }

 

 }

 }, 30);

 }

 

};

ログイン後にコピー

上記では、JavaScript を使用して Web ページに単純な動きを実装する方法を説明しました。これが、皆さんが JavaScript で単純な動きを実装するきっかけとなることを願っています。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート