原生js实现简单轮播的淡入淡出效果
2024-08-26 03:53:19
实现这种淡入淡出的轮播关键在于css的一种设置 首先它不能像传统的轮播显示隐藏 或者左右浮动
他应该让其固定定位使其重叠在一起 达到这种效果 然后设置c3动画属性 transition:1s;
具体代码如下 请君欣赏
* {
margin:;
padding:;
list-style: none;
} body {
width: 100%;
height: 100%;
background-color: #666;
} .container {
width: 650px;
height: 236px;
margin: 100px auto;
position: relative;
} .container ul {
width: 650px;
height: 236px;
} .container ul li {
width: 100%;
height: 100%;
position: absolute;
left:;
top:;
transition: 2s;
opacity:;
} .container ul li img {
width: 100%;
height: 100%;
} .container ul li:nth-child(1) {
opacity:;
} .container ol {
position: absolute;
left: 50%;
bottom: 10px;
transform: translate(-50%, 0);
} .container ol li {
float: left;
margin: 0 10px;
} .container ol li a {
width: 15px;
height: 15px;
background-color: #666;
display: inline-block;
border-radius: 50%;
} .container ol a.active {
background: yellow;
}
HTML部分
<body>
<div class="container">
<ul>
<li><img src="./img/1.jpg" alt=""></li>
<li><img src="./img/2.jpg" alt=""></li>
<li><img src="./img/3.jpg" alt=""></li>
<li><img src="./img/4.jpg" alt=""></li>
<li><img src="./img/5.jpg" alt=""></li>
<li><img src="./img/6.jpg" alt=""></li>
</ul>
<ol>
<li><a class="active" href="#1"></a></li>
<li><a href="#1"></a></li>
<li><a href="#1"></a></li>
<li><a href="#1"></a></li>
<li><a href="#1"></a></li>
<li><a href="#1"></a></li>
</ol>
</div>
<script src="./js/index.js"></script>
<script>
new Container();
</script>
</body>
JS部分
class Container{
constructor(){
this.oli=document.querySelectorAll("ul li");
this.ball=document.querySelectorAll("a");
this.box=document.querySelector(".container");
this.timer=null;
this.count=0;
this.init()
}
init(){
this.autoplay();
this.click();
this.mouse()
}
autoplay(){
this.timer=setInterval(()=>{
this.count++;
if(this.count==this.oli.length){
this.count=0;
}
this.change(this.count);
},2000)
}
change(index){
this.oli.forEach((item,i)=>{
item.style.opacity=0; this.ball[i].classList.remove("active"); }); this.oli[index].style.opacity=1; this.ball[index].classList.add("active")
}
click(){
//小圆点的点击事件
this.ball.forEach((item,index)=>{
item.onclick=()=>{
this.count=index
this.change(index)
}
})
}
mouse(){
//鼠标移入停止定时器 离开继续
this.box.onmouseover=()=>{
clearInterval(this.timer)
}
this.box.onmouseout=()=>{
this.autoplay()
}
}
}
最新文章
- font-size 兼容问题
- 跨应用程序域(AppDomain)的单例(Singleton)实现
- 新公司入职第一天遇到的 关于 CSS 单行溢出文本显示省略号...的问题
- 使用Groovy构建自己的脚本环境
- POJ2676-Sudoku(数独)
- http://www.cnblogs.com/yjmyzz/p/dubbox-demo.html
- jquery动态移除/增加onclick属性详解
- IEtester不靠谱
- Wide character in print at a2.pl line 返回json 需要encode_utf8
- Linux散列表(二)——宏
- [置顶] cJSON库(构建json与解析json字符串)-c语言
- destoon实现商铺管理主页设置增加新菜单的方法
- vs2010编译live555源码
- http://localhost:8080/ 演出Oracle说明
- JavaEE(5) - JMS实现企业Pub-Sub消息处理
- [js高手之路] dom常用节点属性兼容性详解与应用
- Reveal : Xcode辅助界面调试工具
- 集合-Collections工具
- C#给checkboxList设置js选中事件
- [vscode] pylint在虚拟环境下错误告警问题
热门文章
- Android setTag()/getTag()
- 任务十三:零基础JavaScript编码(一)
- [poj 2479] Maximum sum -- 转载
- SQL Server ->;>; SQL Server 2016新特性之 -- sp_set_session_context存储过程和SESSION_CONTEXT函数
- C#调用Excel VBA宏[转载]
- 一道算法题-从1到n整数中1出现的次数
- Win10安装msi程序报错2503和2502错误解决方案
- mysql主从同步与防火墙端口的设定
- EventBus事件总线
- Android(java)学习笔记208:Android下的属性动画高级用法(Property Animation)