JS实现小图放大轮播效果

摘要:
JS实现小图放大轮播页面效果入下(图片为优行商旅页面照片):实现效果:图片自动轮播,鼠标移入停止,移出继续轮播点击下方小图可以实现切换步骤一:建立HTML布局,具体如下:˂liclass

JS实现小图放大轮播页面效果入下(图片为优行商旅页面照片):

JS实现小图放大轮播效果第1张

实现效果:
图片自动轮播,鼠标移入停止,移出继续轮播
点击下方小图可以实现切换

步骤一:建立HTML布局,具体如下:

<body>
    <div id="carousel"class="carousel"onmouseover="stop()"onmouseout="again()">
        <ul class="list"id="ulctrl">
            <li class="trans"><span></span></li>
            <li><span></span></li>
            <li><span></span></li>
            <li><span></span></li>
        </ul>
    </div>
</body>

其中div为图片轮播区域,li用于放置小图

步骤二:CSS布局

*{margin:0;padding:0;
        }ul{list-style:none;height:auto;position:absolute;top:95%;left:32%;
        }#carousel{width:100%;height:400px;background-image:url(images/1.jpg);background-repeat:no-repeat;background-position:center;position:relative;
        }li{float:left;margin-right:20px;
        }span{display:block;width:110px;height:41px;background-size:110px 41px;border:none;
        }li:nth-child(1) span{background-image:url(images/1.jpg);border:2px solid orange;
        }li:nth-child(2) span{background-image:url(images/2.jpg);
        }li:nth-child(3) span{background-image:url(images/3.jpg);
        }li:nth-child(4) span{background-image:url(images/4.jpg);
        }

通过定位使小图显示在下方,此时轮播区域显示的为第一张图片

步骤三:添加JS逻辑(其中该代码注释中的圆点是指轮播图下方小图)

let cnt=1;//计数器
let ulctrl=document.getElementById("ulctrl");//圆点控制器
let lis=ulctrl.children;//圆点们
let linow=lis[0];//初始化当前圆点为第一个
let clock;//声明计时器
var carousel=document.getElementById("carousel");//背景容器
for(let i=0;i<lis.length;i++){
    //给圆点绑定函数,点击改变圆点样式和图片
    lis[i].onclick=function(){
        cnt=i+1;
        carousel.style.backgroundImage="url(images/"+cnt+".jpg)";
        for(let li of lis){
             li.children[0].style.border = 'none';
        }
         this.children[0].style.border = '2px solid orange';
    }
}
//改变圆点样式
functionctrl(){
    linow.children[0].style.border = 'none';
    linow=lis[cnt-1];
    linow.children[0].style.border = '2px solid orange';
}
//鼠标覆盖轮播图,停止轮播
functionstop(){
    clearInterval(clock);//清除计时器
}
//鼠标离开轮播图,继续轮播
functionagain(){
    clock=setInterval(this.start, 2000);//创建计时器
}
//轮播函数
functionstart(){ 
    if(cnt==4){
        cnt=1;
    }else{
        cnt++;//更新计数器
}
    carousel.style.backgroundImage="url(images/"+cnt+".jpg)";
    ctrl();//轮播状态下改变圆点样式
}
(functionmove(){
    clock=setInterval(this.start, 2000);//创建计时器,2秒执行一次start函数
})();//自执行函数

免责声明:文章转载自《JS实现小图放大轮播效果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇lua 暂停写法jquery动态添加列表后样式失效解决方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

在html静态网页中实现include包含功能

对于全站网页制作有用,不用配iis就可以把整站的头部导航和尾部以一个外部文件的方式引入,就好像asp php中的include功能。原理是从网上找的,后用js做了些改进。js文件代码: Codevar urls = document.getElementsByTagName("script");var urls = urls[urls.length-...

使用js设置input标签只读 readonly 属性

先上代码: <html> <head> <title> test </title> <meta charset="utf-8"> </head> <script language="JavaScript"> function setReadon...

C#动态执行JS和VBS脚本

 ======================================================================== 方法1:直接调用 System.Diagnostics.Process proc = new System.Diagnostics.Process();proc.StartInfo.FileName = "ws...

原生JS代码封装(输入id名、class名、标签名 返回 "object HTMLDivElement")

object HTMLDivElement,即 HTMLDivElement 对象, 而这个对象是哪里来的呢? 查阅 《JavaScript权威指南》中文第六版363页, 我们可以知道: HTMLDivElement 是 HTMLElement 的一个子对象, 而 HTMLElement 又是 Element 的子对象。   function $(se...

JS异步加载,JQ事件不被执行解决方法

一,在我们实现动态生成HTML代码时会出现,使用JQ方法会不被执行,解决方法,如下:使用jquery的委托事件,将该方法委托到页面已经存在的一个节点上 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-...

【js重学系列】作用域

作用域 在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。 在 Javascript 中,作用域分为 全局作用域 和 函数作用域 什么是作用域呢,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。 全局变量 变量在函数外定义,即为全局变量。 全局变量有 全局作用域: 网页中所有脚本和函数均可使...