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;
}
![](./img/1.jpg)
![](./img/2.jpg)
![](./img/3.jpg)
![](./img/4.jpg)
![](./img/5.jpg)
- 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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
最后
由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处即可获取!!!。
讲义、实战项目、讲解视频,并且会持续更新!**
如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)
最后
[外链图片转存中…(img-OoCe5WOu-1711692150001)]
[外链图片转存中…(img-H8mtd3Zu-1711692150001)]
由于文档内容过多,为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的JavaScript面试题文档,或更多前端资料可以点此处即可获取!!!。