飞道的博客

使用JavaScript 实现最简单最基本的轮播图样式

390人阅读  评论(0)

目录

一、效果展示

二、H5的布局

三、CSS的布局

第一步

第二步

第三步

四、JS的布局

第一步

第二步

第三步

五、源码评论区自取


一、效果展示

主要通过,设置点击事件,定时器,if判断,排他思想来实现,简单的轮播图效果,是非常普通的轮播样式。

二、H5的布局

可以使用自己的图片,需要注意路径,不注意路径会出现错误,呈现不出所需要的效果。 

可以使用自己的图片,需要注意路径,不注意路径会出现错误,呈现不出所需要的效果。 

可以使用自己的图片,需要注意路径,不注意路径会出现错误,呈现不出所需要的效果。


  
  1. <div class="banner">
  2. <ul class="imgList">
  3. <li> <img src="1.png"/> </li>
  4. <li> <img src="2.jpg"/> </li>
  5. <li> <img src="3.jpg"/> </li>
  6. <li> <img src="4.jpg"/> </li>
  7. </ul>
  8. <div class="circle">
  9. </div>
  10. </div>

三、CSS的布局

第一步

第一个盒子的布局


  
  1. *{
  2. padding: 0px;
  3. margin: 0px;
  4. }
  5. .banner{
  6. width: 600px;
  7. margin: auto;
  8. border: 10px solid green;
  9. height: 350px;
  10. position: relative;
  11. overflow: hidden;
  12. position: relative;
  13. }

第二个盒子

主要注意两个盒子之间的定位,还有浮动


  
  1. .imgList img{
  2. width: 600px;
  3. height: 350px;
  4. }
  5. .imgList{
  6. /* 绝对定位 */
  7. position: absolute;
  8. }
  9. .imgList li{
  10. float :left;
  11. margin-right: 20px;
  12. list-style: none;

第二步

给图片下的小圆点进行布局,需要注意,定位,浮动,在这里可以设置一个hover,来为JS实现排他思想做布局,这样所呈现的效果就是,可以明确的显示出我点击了那个小圆点,有很直观的效果。


  
  1. .circle{ position: absolute; bottom: 15px; left: 50%; transform: translateX(- 50%);}
  2. .circle a{
  3. width: 15px;
  4. height: 15px;
  5. background: green;
  6. display: block;
  7. border-radius: 50%;
  8. opacity: . 8;
  9. float: left;
  10. margin-right: 10px;
  11. }
  12. .circle a .hover{
  13. background: black;
  14. opacity: . 7;
  15. }

第三步

给图片实现,滑动效果,要给left设置一个初始值,这样就会减少不会移动的BUG,需要注意一下的小小细节。


  
  1. ul {
  2. transition-duration: 0.3s;
  3. left: 0px;
  4. }

四、JS的布局

第一步

基本的获取元素


  
  1. // 确定ul的宽度 动态的创建小圆点
  2. var imgList = document. querySelector( '.imgList');
  3. var circle = document. querySelector( '.circle');
  4. var flag = true;
  5. //给ui标签设置宽度
  6. imgList. style. width =imgList. children. length* 620+ 'px';
  7. //下面动态创建a标签
  8. for ( var i = 0; i < imgList. children. length; i++) {
  9. var aNode = document. createElement( 'a');
  10. //我们在这里创建index属性来记录索引值
  11. aNode. setAttribute( 'index',i);
  12. circle. appendChild(aNode);
  13. }

第二步

使用点击事件,可以通过小圆点来切换图片,还有排他思想,来呈现更加直观的点击效果


  
  1. circle. addEventListener( 'click', function( e){
  2. var cirCle = e. target. getAttribute( 'index');
  3. if(e. target. nodeName== 'A'){
  4. imgList. style. left = cirCle*- 620+ 'px';
  5. for(j= 0;j<circle. children. length;j++){
  6. circle. children[j]. className= '';
  7. } this. children[cirCle]. className= 'hover';
  8. }
  9. })

第三步

通过,定义新的值,设置一个定时器,在里面使用if判断来实现自动点击小圆点,从而实现自动播放的效果,主要注意其中i值的变化,来进行判断,输出,不然会出现混乱现象,需要多加注意。

有大致的逻辑后,在通过值来实现自动点击的效果的定时器,实现最简单的轮播,也可以使用滑动动画实现,本人觉得这种实现方式比较简单,所以使用此方法。


  
  1. var i = 1;
  2. setInterval( function( ){
  3. if(i<= 3){
  4. circle. children[i]. click();
  5. i++;
  6. } else{
  7. i= 0;
  8. circle. children[ 0]. click();
  9. i++;
  10. }
  11. }, 2000)

五、源码评论区自取

在评论区留下自己的QQ邮箱,看到会立马发送。还有很多可以优化和添加各种实用的效果,我会在以后的时间,发表更加完善的轮播图,更具有使用性。也可以关注博主互相分享经验,非常欢迎大佬指导。(本人小白,可能不是很完善,会在今后补齐)


转载:https://blog.csdn.net/yzq0820/article/details/125712299
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场