博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js+css3 轮播
阅读量:6771 次
发布时间:2019-06-26

本文共 3006 字,大约阅读时间需要 10 分钟。

hot3.png

1,css3动画性能高于js动画原因

    css3的 transform 属性 将使dom单独为一个层,重渲染时只要改变该层,再合并图层

    而js的动画可能同时涉及多个层,当页面复杂时,重渲染非常消耗性能

2,关键代码

    transition: all 0.5s ease-out;

    所有属性改变进行0.5s的延时变化,使用缓出的缓动公式来进行补间动画

3,所有代码

html:

css

.page-5{  position: absolute;  top: 400%;  overflow: hidden;  .slide-box{    width: 400%;    transition: all 0.5s ease-out 0s;    .img-box{      width: 25%;      height: 100%;      display: inline-block;      img{        width: 101%;        height: auto;      }    }  }  .left-icon{    position: absolute;    top:45%;    left:5%;    width: 1.3rem;    height: 2.4rem;    background: url('../images/left-icon.png') no-repeat;    background-size: contain;    display: none;  }  .right-icon{    position: absolute;    top:45%;    right:5%;    width: 1.3rem;    height: 2.4rem;    background: url('../images/right-icon.png') no-repeat;    background-size: contain;    display: none;  }  .active{    .left-icon{      display: block;    }    .right-icon{      display: block;    }  }  .slide-option-box{    position: absolute;    top: 90%;    left:48%;    div{      background: url('../images/no_active.png') no-repeat;      background-size: cover;      width: 0.8rem;      height: 0.8rem;      display: inline-block;    &.active{      background: url('../images/active.png') no-repeat;      background-size: cover;      }    }  }}

js部分

var slide = function(){    var index = 0;    var oldIndex = 0;    var lastIndex = 0;    var width = document.body.clientWidth;    var left = 0;    var dir = 0;    var timeout = 0;    var dom = document.getElementsByClassName('slide-box')[0];    var options = document.getElementsByClassName('slide-option-box')[0].getElementsByTagName('div');    var imgLists = document.getElementsByClassName('img-box');    var leftList = document.getElementsByClassName('right-icon');    var rightList = document.getElementsByClassName('left-icon');    for(var i=0;i
2){ index = 0; left = 0; } options[index].className = 'active'; imgLists[index].className = 'img-box active'; lastIndex = index; slideStep(); } function slideStep(){ left = (index) * width; dom.setAttribute('style','margin-left:-'+left+'px;'); if(dir > 0){ if(left >= width * (index)){ timeout = setTimeout(function(){ slideChange(1); },5000); return; } }else{ if(left <= width * (index)){ timeout = setTimeout(function(){ slideChange(1); },5000); return; } } } slideChange(1);};slide();

转载于:https://my.oschina.net/wisdomofgod/blog/719639

你可能感兴趣的文章
Android Studio第八期 - 自定义布局无网有网状态
查看>>
读《Go并发编程实战》第4章 流程控制方式
查看>>
IT168:数据库安全审计用户需求调查报告
查看>>
Lync Server 2010不同规模拓扑图详解
查看>>
QQ群排名优化:“小百度”大蓝海有搞头
查看>>
写在毕业季(四):是做IT?IT?还是IT呢?
查看>>
Gtk-WARNING **: 无法在模块路径中找到主题引擎:“pixmap”
查看>>
验证控件收藏
查看>>
安装配置Varnish3.0手记
查看>>
舌尖上的职场(三)我来买单!
查看>>
HighChartS cpu利用率动态图(Java版)
查看>>
extern int *a与extern int a[]
查看>>
转: 测试云服务器的工具相关
查看>>
分布式事务 & 两阶段提交 & 三阶段提交
查看>>
linux下编译upx 3.93
查看>>
MySQL 优化
查看>>
MCMC采样理论的一点知识
查看>>
bram和dram差别
查看>>
让人头疼的关键用户
查看>>
poj2001 Shortest Prefixes
查看>>