轮播图的做法(更换背景颜色)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>简单的轮播图</title>
<style>

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

.father{
width: 960px;
height: 400px;
background-color: red;
border: 1px solid black;
margin:50px auto;
position: relative;
transition: all 2s;

}
.childs{

text-align: center;
position: absolute;
bottom: 20px;
right: 20px;
}
/*love i hate*/
.childs span{
display: inline-block;
height: 20px;
width: 20px;
background-color: #777;
border-radius: 10px;

}
.childs span:hover{
background-color: white;
}

.childs .selected{
background-color: black;
}
</style>
</head>
<body>

<div class="father">

<div class="childs">
<span class="selected" data-color="red"></span>
<span data-color="yellow"></span>
<span data-color = "skyblue"></span>
<span data-color = "orangered"></span>
</div>

</div>

<script>
--------------------------分析-------------------------------------
// 1.考虑,大概4S实线一次功能
// setInterval(function(){

// //2.每过4S会找到slected的下一个兄弟标签,把这个兄弟标签变成selected
// //(1)找到当前的slected
// var selected = document.querySelector(".selected");
// // //(2)找到它的下一个兄弟标签,设置成selected
// // selected.nextElementSibling.className = "selected";
// // //(3)取消selected的类
// // selected.className = " ";

// //3.发现最后一个没用下一个兄弟标签,所以应该找父标签的第一个子标签
// if(selected.nextElementSibling != null){
// //(1)找到它的下一个兄弟标签,设置成selected
// selected.nextElementSibling.className = "selected";
// //(2)取消selected的类
// selected.className = " ";

// //(4)给背景加颜色
// document.querySelector(".father").style.backgroundColor =
// selected.nextElementSibling.getAttribute("data-color");

// }else{
// // (3)没有下一个兄弟
// selected.parentNode.firstElementChild.className = "selected";
// selected.className = " ";

// //(4)给背景加颜色
// document.querySelector(".father").style.backgroundColor = selected.parentNode.firstElementChild.getAttribute("data-color");

// }

// },4000);

//--------------------点击------------------------
//1.给4个span标签设置点击事件
//(1)找到四个span
// var arraySpan = document.querySelectorAll("span");
// //(2)循环遍历数组,增加点击事件
// for(var i =0;i<arraySpan.length;i++){
// //(3)找到每一个span,设置点击
// arraySpan[i].onclick = function () {
// //2.先给点击的标签设置成selected类(黑色背景)

// //(2)遇到问题?如何让其他的span变成灰色,class = " "
// for (var n =0;n<arraySpan.length;n++) {
// arraySpan[n].className = " ";
// }

//(1)
// this.setAttribute("class","selected");
//class是属性的一种,为了方便能够快速设置class,DOM允许用className 代替 setAttribute("class","");
// this.className = "selected";

// //3.如何变色,让谁变色??.father
// // (1)找到father
// var father = document.querySelector(".father");

// //4.考虑到每次点击和换颜色的时候,都有一个span标签被选中了
// father.style.backgroundColor = this.getAttribute("data-color");

// }

// }
// 找到当前的selected
setInterval(function(){
var selected= document.querySelector(".selected");
// 找到他的下一个兄弟标签,设置成 selected;
// selected.nextElementSibing.className = "selected";
// 取消selected的类;
// selected.className=" ";
// 发现最后一个没有下一个兄弟标签,所以应找到父标签的第一个子标签;

-----------------------定时器+点击部分----------------

if(selected.nextElementSibling!=null){
selected.nextElementSibling.className="selected";
selected.className=" ";
document.querySelector(".father").style.backgroundColor=selected.nextElementSibling.getAttribute("data-color");

}else{
selected.parentNode.firstElementChild.className="selected";
document.querySelector(".father").style.backgroundColor=selected.nextElementSibling.getAttribute("data-color");
}

},4000);

var arraySpan = document.querySelectorAll("span");

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

arraySpan[i].onclick = function () {

//1.清除之前的定时器
clearInterval(timer);

//2.新建一个开启
timer = setInterval(dingshiqi,4000);

for (var n =0;n<arraySpan.length;n++) {
arraySpan[n].className = " ";
}
this.className = "selected";
var father = document.querySelector(".father");
father.style.backgroundColor = this.getAttribute("data-color");
}

}

</script>

</body>
</html>

时间: 2024-12-14 18:13:48

轮播图的做法(更换背景颜色)的相关文章

轮播图的做法(更换背景图片)

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" <title>博客</title> <style> </style> .top-photo{ width: 670px; height: 280px; float: left; position:relative;}.top-photo img{ width:

eyou轮播图切换颜色

有这么一个场景,我们的网站需要个性化一点,通常可能设计把首页轮播图/banner拉通或全屏,这时候我们的logo.导航等元素就需要透明的浮动在轮播图上方.尴尬的地方就在于如果这些元素是白色,背景是白色或者黑色文字,背景也是黑色?如何切换css颜色?需求:我们需要能够定义浮动元素跟随banner进行切换css.动手: App/admin/tem/ad_po/edit.htm在新窗口checkbox处增加一个同样的bgcolor复选框下方JS也需要同样增加一个bgcolor App/admin/co

关于轮播图,我知道的不多。

关于轮播图,我确实是知道的不多,想来想去就只是那么的多,. 不过我还是打算将自己知道的写出来,首先轮播图的布局,我先来上一张照片 简单的布局,视窗中我能见到的只有一张照片和左右两个按钮还有下面两个按钮,视窗的大小就是单张图片的大小,几个按钮用position定位的方式将其定位到想要的位置了,那么四副图片的直接父元素的宽度是多少呢,那就是四副图片的宽度相加的总和,一定的让图片display:block;这样才能去掉图片默认距离,. 在给图片float:left,在让最外层的盒子超出部分隐藏就可以了

原生 js 左右切换轮播图

使用方法: 可能很多人对轮播图感兴趣,下面奉上本人的 原生 js 轮播代码复制 js 到页面的最底部,样式在 css 里改,js 基本不用动,有什么不懂的可以 加本人 QQ172360937 咨询 或者留言都可以,这个是用 原生写的 轮播图,样式可以写自己喜欢的样式,什么都不用改,只改变样式就行,页面结构的id 要与js的相对应li随便加.li 随便加的意思就是说你可以加无数个图片.每个li 里装一个图片,或者是其他什么元素, <!doctype html> <html lang=&qu

iOS: 无限循环轮播图简单封装

轮播图思路: 1.首先要有一个ScrollView和两张图片,把图片放到ScrollView上. 2.要想滚动ScrollView的宽度需设置屏宽的2倍. 3.循环滚动,当滚动到最后一张图片时,采用偏移的方法,将偏移量归零,回到第一张图片. 4.将第二张的图片上的所有值赋给第一张图片. 5.设置让它自己滚动,需添加定时器. 需要的第三方数据库:SDWebImage m.文件内: #imporst "ScrollView.h" @interface ScrollView ()<UI

模仿轮播图

模仿轮播图中用到了排他思想,定时器和一些方法,刚开始在第一张图片和最后一张图片的衔接处处理的不好,后来解决了bug,下面的是我的代码 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { padding: 0; margin: 0; list-style:

用原生的javascript 实现一个无限滚动的轮播图

说一下思路:和我上一篇博客中用JQ去写的轮播图有相同点和不同点 相同点: 首先页面布局是一样的 同样是改变.inner盒子的位置去显示不同的图片 不同点: 为了实现无限滚动需要多添加两张重复的图片 左右切换和前面的方法有所不同,前面是获取当前的索引值乘以-600px当做位移距离,现在是需要获取当前.inner的位置来加上或者减去-600来实现 下面来一步步的去实现轮播图: 首先是html <!DOCTYPE html> <html lang="en"> <

2015.7.29 第十三、十四课 jq实例(磁力图片、轮播图、腾讯课堂菜单、可弹出红色菜单、砸蛋游戏)

1.磁力图片: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/cs

使用JS实现轮播图的效果

其中的一些css样式代码就省略了,下面只把结构层html.行为层js的代码展示出来 ,看代码说事. 一.简单的轮播图 <div class="box" id="box"> <div class="inner"> <ul> <li><a href="#"><img src="images/01.jpg" alt=""/>