原生javaScript实现图片透明渐变轮播(代码)

文章详细描述了如何使用JavaScript控制CSS3动画(如透明渐变和元素运动),包括设置定时器、处理鼠标事件(如鼠标移入移出和按钮点击)、以及隐藏和显示元素的方法。作者还分享了个人经验和一套前端开发学习资源。
摘要由CSDN通过智能技术生成

height: 400px;

margin:20px auto;

border:1px solid red;

position: relative;

}

.divImg img{

width: 600px;

height: 400px;

position: absolute;

top:0px;

left: 0px;

opacity: 0.2;

}

.arrow{

font-size: 30px;

font-weight: bold;

position: absolute;

top:48%;

display: none;

z-index: 10;

}

.box:hover .arrow{

display: inline;

}

.left{

left:20px;

}

.right{

right: 20px;

}

ul{

list-style: none;

position: absolute;

bottom:20px;

left:50px;

z-index: 10;

}

ul li{

width: 25px;

height: 25px;

line-height: 25px;

text-align: center;

font-weight: bold;

background-color: #666;

border-radius: 50%;

color: #fff;

float: left;

margin-left: 5px;

}

.bg{

background-color: pink;

}

<

>

    • 1
    • 2
    • 3
    • 4
    • 5
    • //获取操作对象

      var box=document.querySelector(‘.box’)

      var leftBtn=document.querySelector(‘.left’)

      var rightBtn=document.querySelector(“.right”)

      var imgs=document.querySelectorAll(‘img’)

      var lis=document.querySelectorAll(‘li’)

      var dsq1 //图片切换的定时器名称

      var index=0 //图片和按钮同时的下标

      //先显示第一张图片

      move(imgs[index],{opacity:100})

      //让图片进行切换

      function moveMent(){

      hide1()

      index++

      if(index>4){

      index=0

      }

      show1()

      }

      dsq1=setInterval(moveMent,3000)

      //给大盒子对象绑定鼠标移入移出事件

      box.οnmοuseοver=function(){

      clearInterval(dsq1)

      }

      box.οnmοuseοut=function(){

      dsq1=setInterval(moveMent,3000)

      }

      //给右边按钮绑定点击事件

      rightBtn.οnclick=function(){

      moveMent()

      }

      leftBtn.οnclick=function(){

      hide1()

      index–

      if(index<0){

      index=4

      }

      show1()

      }

      //遍历li对象

      for(let i=0;i<lis.length;i++){

      //给每个li对象绑定点击事件

      lis[i].οnclick=function(){

      hide1()

      //把当前点击的按钮下标赋值给index

      index=i

      show1()

      }

      }

      //隐藏图片

      function hide1(){

      //把当前图片的zindex属性设置为1

      imgs[index].style.zIndex=1

      //把当前图片设置为透明

      imgs[index].style.opacity=0.1

      }

      //显示当前图片

      function show1(){

      //让将要显示的图片

      imgs[index].style.zIndex=2

      move(imgs[index],{opacity:100})

      //先把所有的li对象中的class属性值清空

      for(var j=0;j<lis.length;j++){

      lis[j].className=‘’

      }

      //给指定的li对象添加class属性值

      lis[index].className=‘bg’

      }

      实现透明渐变和元素运动函数代码如下:

      function move(dom,obj,cb){

      //创建对象,存放每个属性的定时器

      var o1={}

      //遍历传入的obj对象

      for(let attr in obj){

      //给o1对象添加键值

      o1[attr]=setInterval(function(){

      //获取起始值

      var start

      //判断当前键名是否为透明度

      if(attr==“opacity”){

      start=getStyle(dom,attr)*100

      }else{

      start=parseInt(getStyle(dom,attr))

      }

      //终点

      var end=obj[attr]

      //判断终点是否大于起点

      if(end>start){
      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

      img

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

      如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

      最后

      前15.PNG

      前16.PNG

      由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处即可获取!!!

      讲义、实战项目、讲解视频,并且会持续更新!**

      如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

      最后

      [外链图片转存中…(img-OoCe5WOu-1711692150001)]

      [外链图片转存中…(img-H8mtd3Zu-1711692150001)]

      由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处即可获取!!!

    • 3
      点赞
    • 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、付费专栏及课程。

    余额充值