轮播图

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>轮播图</title>

<style type="text/css">

* {

margin: 0;

padding: 0;

}

#wrap {

width: 350px;

height: 200px;

margin:100px auto;

border:3px solid red;

position: relative;

overflow:hidden;

}

#contentDiv {

/*width: 2100px;*/

height: 200px;

position: absolute;

top: 0;

left: 0;

}

#contentDiv img{

width: 350px;

height: 200px;

float:left;

}

ul {

list-style: none;

position: absolute;

margin:0 auto;

left: 30%;

bottom: 0;

}

li {

width: 20px;

height: 20px;

border-radius:50%;

background:white;

text-align: center;

line-height: 20px;

float:left;

margin:0 auto;

}

a {

color:black;

text-decoration:none;

}

#left, #right{

width: 30px;

height: 30px;

position: absolute;

top: 50%;

background: black;

opacity:0.3;

color:white;

text-align: center;

line-height: 30px;

}

#right{

right:0px;

}

.lis {

background: red;

}

</style>

</head>

<body>

<div id="wrap"

<div id="contentDiv">

<img src="img/01.jpg" alt="" />

<img src="img/02.jpg" alt="" />

<img src="img/03.jpg" alt="" />

<img src="img/04.jpg" alt="" />

<img src="img/05.jpg" alt="" />

<img src="img/06.jpg" alt="" />

<img src="img/01.jpg" alt="" />

</div>

<!--图案上小点-->

<ul>

<li class="lis"><a href="###">1</a></li>

<li><a href="###">2</a></li>

<li><a href="###">3</a></li>

<li><a href="###">4</a></li>

<li><a href="###">5</a></li>

<li><a href="###">6</a></li>

</ul>

<div id="left"><</div>

<div id="right">></div>

</div>

<script src="JS/tween.js"  type="text/javascript"></script>

<script type="text/javascript">

//内容div

var contentDiv = document.getElementById("contentDiv");

// contentDiv.innerHTML += contentDiv.innerHTML;

//图片数组

var imgs = document.getElementsByTagName("img");

contentDiv.style.width = imgs[0].offsetWidth * imgs.length + "px";

//小球

var lis = document.getElementsByTagName("li");

//左按钮

var leftbtn = document.getElementById("left");

//右按钮

var rightbtn = document.getElementById("right");

/*

把换小球和换图片分别封装成两个函数

点击按钮时调用换小球与换图片的函数

当鼠标移入小球时调用换图片函数

当鼠标不在可视区域时,使用定时器调用换小球函数与换图片函数

当鼠标移入可视区域时,清除定时器

*/

//声明一个变量记录当前是第几张图片

var index = 0;

//左边按钮点击事件

leftbtn.onclick = function(){

if(index == 0){

index = 6;

contentDiv.style.left = -imgs[0].offsetWidth * index + "px";

}

index--;

//换图片

scrollImg();

//换小球

changePoint();

}

//右边按钮点击事件

rightbtn.onclick = function(){

if(index == 6){

index = 0;

contentDiv.style.left = imgs[0].offsetWidth * index + "px";

}

index++;

scrollImg();

changePoint();

}

//换图片函数

function scrollImg(){

var t = 0;

//offsetLeft 获取对应元素距离父级最左端的位置

var b = contentDiv.offsetLeft;

var c = index * -imgs[0].offsetWidth - b;

var d = 20;

function move(){

t++;

contentDiv.style.left = Tween.Linear(t, b, c, d) + "px";

if(t == d){

clearInterval(timer);

}

}

var timer = setInterval(move, 20);

}

//换小球函数

function changePoint(){

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

if(index == i){

lis[i].style.background = "red";

}

else{

lis[i].style.background = "white";

}

}

if(index == 6){

lis[0].style.background = "red";

}

}

//为每一个小球绑定鼠标移入事件

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

lis[i].onmouseenter = (function(nowIndex){

return function(){

index = nowIndex;

scrollImg();

changePoint();

}

})(i);

}

function autoScrollImg(){

if(index == 6){

index = 0;

contentDiv.style.left = imgs[0].offsetWidth * index + "px";

}

index++;

scrollImg();

changePoint();

}

var timer2 = setInterval(autoScrollImg, 1000);

var wrap = document.getElementById("wrap");

wrap.onmouseenter = function(){

clearInterval(timer2);

}

wrap.onmouseleave = function(){

timer2 = setInterval(autoScrollImg, 1000);

}

</script>

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现轮播图图片切换背景根据图片颜色渐变的效果,可以使用CSS和JavaScript来实现。下面是一种实现方式的示例代码: HTML部分: ```html <div class="slideshow"> <div class="slide"> <img src="image1.jpg" alt="Image 1"> </div> <div class="slide"> <img src="image2.jpg" alt="Image 2"> </div> <div class="slide"> <img src="image3.jpg" alt="Image 3"> </div> </div> ``` CSS部分: ```css .slideshow { position: relative; } .slide { position: absolute; top: 0; left: 0; opacity: 0; transition: opacity 1s ease-in-out; } .slide.active { opacity: 1; } .slideshow img { width: 100%; height: auto; } .slideshow::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to right, rgba(0,0,0,0.8), rgba(0,0,0,0)); z-index: -1; } ``` JavaScript部分: ```javascript const slides = document.querySelectorAll('.slide'); let currentIndex = 0; function changeSlide() { slides[currentIndex].classList.remove('active'); currentIndex = (currentIndex + 1) % slides.length; slides[currentIndex].classList.add('active'); } setInterval(changeSlide, 3000); ``` 上述代码中,通过CSS设置了轮播图容器的样式以及背景渐变效果。JavaScript部分实现了切换轮播图的逻辑,并使用setInterval函数定时调用changeSlide函数来切换图片。每次切换图片时,会为当前显示的图片添加active类,从而使其显示出来。 你可以根据实际需要修改CSS样式和JavaScript代码,来适应你的项目需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值