首頁 > web前端 > js教程 > 最簡單的JavaScript圖片輪播程式碼(兩種方法)_javascript技巧

最簡單的JavaScript圖片輪播程式碼(兩種方法)_javascript技巧

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-05-16 15:24:43
原創
1951 人瀏覽過

透過改變每個圖片的opacity屬性:

素材圖片:

代碼一:

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

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

<!DOCTYPE html>

 <html lang="en">

 <head>

  <meta charset="UTF-">

  <title>最简单的轮播广告</title>

  <style>

   body, div, ul, li {

    margin: ;

    padding: ;

   }

   ul {

    list-style-type: none;

   }

   body {

    background: #;

    text-align: center;

    font: px/px Arial;

   }

   #box {

    position: relative;

    width: px;

    height: px;

    background: #fff;

    border-radius: px;

    border: px solid #fff;

    margin: px auto;

   }

   #box .list {

    position: relative;

    width: px;

    height: px;

    overflow: hidden;

    border: px solid #ccc;

   }

   #box .list li {

    position: absolute;

    top: ;

    left: ;

    width: px;

    height: px;

    opacity: ;

    transition: opacity .s linear

   }

   #box .list li.current {

    opacity: ;

   }

   #box .count {

    position: absolute;

    right: ;

    bottom: px;

   }

   #box .count li {

    color: #fff;

    float: left;

    width: px;

    height: px;

    cursor: pointer;

    margin-right: px;

    overflow: hidden;

    background: #F;

    opacity: .;

    border-radius: px;

   }

   #box .count li.current {

    color: #fff;

    opacity: .;

    font-weight: ;

    background: #f

   }

  </style>

 </head>

 <body>

 <div id="box">

  <ul class="list">

   <li class="current" style="opacity: ;"><img src="img/images/.jpg" width="" height=""></li>

   <li style="opacity: ;"><img src="img/images/.jpg" width="" height=""></li>

   <li style="opacity: ;"><img src="img/images/.jpg" width="" height=""></li>

   <li style="opacity: ;"><img src="img/images/.jpg" width="" height=""></li>

   <li style="opacity: ;"><img src="img/images/.jpg" width="" height=""></li>

  </ul>

  <ul class="count">

   <li class="current"></li>

   <li class=""></li>

   <li class=""></li>

   <li class=""></li>

   <li class=""></li>

  </ul>

 </div>

 <script>

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

  var uls=document.getElementsByTagName('ul');

  var imgs=uls[].getElementsByTagName('li');

  var btn=uls[].getElementsByTagName('li');

  var i=index=; //中间量,统一声明;

  var play=null;

  console.log(box,uls,imgs,btn);//获取正确

  //图片切换, 淡入淡出效果我是用(transition: opacity .s linear)做的,不纠结、简单 在css里面

  function show(a){    //方法定义的是当传入一个下标时,按钮和图片做出对的反应

   for(i=;i<btn.length;i++ ){

    btn[i].className=''//很容易看懂吧?每个按钮都先设置成看不见,然后把当前按钮设置成可见。

    btn[a].className='current';

   }

   for(i=;i<imgs.length;i++){ //把图片的效果设置和按钮相同

    imgs[i].style.opacity=;

    imgs[a].style.opacity=;

   }

  }

  //切换按钮功能,响应对应图片

  for(i=;i<btn.length;i++){

   btn[i].index=i; //不知道你有没有发现,循环里的方法去调用循环里的变量体i,会出现调到的不是i的变动值的问题。所以我先在循环外保存住

   btn[i].onmouseover=function(){

    show(this.index);

    clearInterval(play); //这就是最后那句话追加的功能

   }

  }

  //自动轮播方法

 function autoPlay(){

    play=setInterval(function(){ //这个paly是为了保存定时器的,变量必须在全局声明 不然其他方法调不到 或者你可以调用auto.play 也许可以但是没时间试了

    index++;

    index>=imgs.length&&(index=);//可能有优先级问题,所以用了括号,没时间测试了。

    show(index);

   },)

  }

  autoPlay();//马上调用,我试过用window.onload调用这个方法,但是调用之后影响到了其他方法,使用autoPlay所以只能这样调用了

  //div的鼠标移入移出事件

  box.onmouseover=function(){

   clearInterval(play);

  };

  box.onmouseout=function(){

   autoPlay();

  };

  //按钮下标也要加上相同的鼠标事件,不然图片停止了,定时器没停,会突然闪到很大的数字上。 貌似我可以直接追加到之前定义事件中。

 </script>

 </body>

 </html>

登入後複製

代碼二:

首先第一步,下載好一個jquery庫的插件,jquery.js 網路上很多隨處可以下載.下載的插件要放在目錄下.然後在html文件中連結好

第二步,佈置好一個DIV,如:

1

2

3

4

5

6

7

8

9

10

11

<div id="scroll">

 <p class="subl">上一张<p/>

 <p class="subr">下一张<p/>

 <ul>

 <li style="background:red;display:block;"></li>

 //上面的li要设定为显示,因为是第一张图片.

 <li style="background:green;"></li>

 <li style="background:gray;"></li>

 <li style="background:orange;"></li>

 </ul>

 </div>

登入後複製

由於方便各位網友下載能夠清晰明了,我就沒有用圖片路徑了,因為到你們電腦上就看不到了,這裡用背景顏色.

第三步,就到了寫CSS的時候了.下面的CSS懂基礎的人都看得懂.

1

2

3

4

5

6

7

8

9

10

11

12

#scroll{width:100%; height:180px; background-color:white; position:relative;border-bottom:1px solid gray;}//这里是给整个大的DIV设定属性.

#scroll ul{height:180px; list-style:none;}//DIV下的UL属性.

#scroll ul li{width:100%; height:180px;margin:0px; padding:0px; display:none;}//DIV下的UL下的LI属性.注意:display:none;因为要将所有的li隐藏了先.当点击的时候在显示出来.

 .subl{position:absolute; bottom:20px; left:40%; width:80px;height:20px; line-height:20px; text-align:center;font-size:16px;font-weight:bold; cursor:pointer;}//上一张按钮的属性.注意一个绝对定位.

 .subr{

position:absolute;

bottom:20px; right:40%;

width:80px;height:20px; line-height:20px; text-align:center;font-size:16px;font-weight:bold;cursor:pointer;

}//下一张按钮的属性.注意一个绝对定位.

.subr:hover{ background:yellow;border-radius:10px;}

.subl:hover{ background:yellow;border-radius:10px;}

//以上两个hover是鼠标经过的效果.

登入後複製

第四步,就是jquery代碼了!也很簡單.先將程式碼看一遍,你就會用了!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<script type="text/javascript">

/*轮播*/

 $(function(){

 var i=0;

 var len=$("#scroll ul li").length-1;

 $(".subl").click(function(){

 if(i==len){

i=-1;

}

i++;

$("#scroll ul li").eq(i).fadeIn().siblings().hide();

 });

//到这里分开!上面的是上一张点击的效果代码,下面的是下一张点击的效果代码.

 $(".subr").click(function(){//获取类名的点击事件.

 if(i==0){

i=len+1;

}

i--;

$("#scroll ul li").eq(i).fadeIn().siblings().hide();

 });

 });

 /*轮播*/

</script>

登入後複製

四步驟輕鬆搞定一個簡單的輪!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板