html js轮播图原理,新手必看 Web前端工程师 JavaScript原生轮播图原理参考

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

如果符合客官胃口,点关注!后续还会呈现更多原生js特效

不懂得在下面留言,时间允许会即时回复。

详细:用js制作切换动画,js切换图片。 看运行效果需复制代码到相关文件,浏览器运行查看效果。

轮播图html、css、JavaScript源码及效果图呈上

*注 块宽度590px;块高度470px;

效果图

9c7e8fa3287172586574342efa477d73.png

html文件

  • 1
  • 2
  • 3
  • 4
  • 5

<

>

css文件

*{ margin:0px; padding:0px; }

.Carousels{ width:590px; height:470px; margin-left:auto; margin-right:auto; border:2px solid #CCC; position:relative; overflow:hidden;}

.Carousels ul{ width:2950px; height:470px; position:absolute; left:0px; top:0px;}

.Carousels ul li{ width:590px; height:470px; display:block; float:left;}

#sigedian{ width:116px; height:25px; position:absolute; bottom:10px; left:50%; margin-left:-50px;}

#sigedian p{ width:25px; height:25px; float:left; color:#000; font-size:30px; line-height:25px; font-weight:bold; text-align:center;}

.anniu{ width:50px; height:50px; font-size:18px; margin-top:-25px; background:#FFF; line-height:50px; text-align:center;}

#lf{ position:absolute; left:0px; top:50%; z-index:10;}

#rg{ position:absolute; right:0px; top:50%; z-index:10;}

#mengban{ width:590px; height:470px; position:absolute; z-index:15; display:none;}

JavaScript文件

//蒙版

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

//四个点的变化

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

var sigedianp=sigedian.getElementsByTagName('p');

//按钮轮播

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

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

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

var dmax=0;

var dqjl=0;//当前距离

var djgd=0;//第几个点

var b=0;

var liwidth=590; //li的宽度同窗口宽度

//向左运动

rg.οnclick=function (){

mengban.style.display='block';//防止连点,出现加速的bug

dmax=dmax-liwidth;//单击一次距离减590

timer=setInterval(function(){

if(dqjl > dmax){

dqjl=dqjl-10;

lunbo.style.left=dqjl+"px";

//小点变化

b=Math.abs(dmax);

djgd = b/liwidth;

for(var i=0;i

sigedianp[i].style.color='#000';

}

sigedianp[djgd].style.color='#fff';

}else{

clearInterval(timer);

dqjl=dmax; //让当前距离获得当前的距离

mengban.style.display='none';//防止连点,出现加速的bug

if(dqjl== -liwidth*4){

dmax=0;

dqjl=0;

lunbo.style.left=dqjl+"px";

}

}

},10);

}

//向右运动

lf.οnclick=function(){

mengban.style.display='block';//防止连点,出现加速的bug

if(dmax==0){

dmax=-liwidth*4;

dqjl=-liwidth*4;

lunbo.style.left=dqjl+"px";

}

dmax=dmax+liwidth;//单击一次距离加590

timer=setInterval(function(){

if(dqjl < dmax){

dqjl=dqjl+10;

lunbo.style.left=dqjl+"px";

}else{

clearInterval(timer);

dqjl=dmax; //让当前距离获得当前的距离

mengban.style.display='none';//防止连点,出现加速的bug

}

//小点变化

b=Math.abs(dmax);

djgd = b/liwidth;

for(var i=0;i

sigedianp[i].style.color='#000';

}

sigedianp[djgd].style.color='#fff';

},10);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常好的问题!以下是一个基本的原生 JavaScript 轮播图实现: HTML ```html <div class="slider"> <div class="slider-wrapper"> <div class="slider-item"></div> <div class="slider-item"></div> <div class="slider-item"></div> </div> <div class="slider-nav"> <a class="slider-prev" href="#">Prev</a> <a class="slider-next" href="#">Next</a> </div> </div> ``` CSS ```css .slider { position: relative; width: 100%; height: 300px; overflow: hidden; } .slider-wrapper { position: absolute; top: 0; left: 0; height: 100%; width: 300%; display: flex; transition: transform 0.3s ease-in-out; } .slider-item { height: 100%; width: 33.333%; } .slider-nav { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; } .slider-prev, .slider-next { margin: 0 10px; padding: 5px 10px; background-color: #ddd; border-radius: 3px; } .slider-prev:hover, .slider-next:hover { background-color: #bbb; } ``` JavaScript ```js const sliderWrapper = document.querySelector('.slider-wrapper'); const prevBtn = document.querySelector('.slider-prev'); const nextBtn = document.querySelector('.slider-next'); const sliderItems = document.querySelectorAll('.slider-item'); const itemWidth = sliderItems[0].offsetWidth; let position = 0; nextBtn.addEventListener('click', () => { position -= itemWidth; if (position < -itemWidth * (sliderItems.length - 1)) { position = 0; } moveToPosition(); }); prevBtn.addEventListener('click', () => { position += itemWidth; if (position > 0) { position = -itemWidth * (sliderItems.length - 1); } moveToPosition(); }); function moveToPosition() { sliderWrapper.style.transform = `translateX(${position}px)`; } ``` 这个例子通过改变 sliderWrapper 的 transform 属性来移动轮播图的位置。prevBtn 和 nextBtn 的点击事件分别减小或增加 position 值,而 moveToPosition 函数将新的 position 值应用到 sliderWrapper 上,实现轮播图的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值