原生js焦点轮播图主要注意这几点:

1、前后按钮实现切换,同时注意辅助图
2、中间的button随着前后按钮对应切换,同时按button也能跳转到相应的index
3、间隔调用与无限轮播。
4、注意在动画时要停止按钮,或者说上一个动画完毕下一个动画才能执行
5、另外在切换图片的时候,底部的Button动画效果,是从底部开始往上升的,要用到transform:scale()和transform-origin:0 100%两个转换属性,代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewpoint" content="width=device-width,initial-scale=1,user-scalable="no">
<title>20170101</title>
<style type="text/css">
a{text-decoration:none;color:#3DBBF5;}
.wrapper{width:750px;height:350px;background:#001032;margin:20px auto;text-align:center;box-shadow:0 0 12px 2px hsla(0,20%,30%,0.5);padding:10px 15px;position:relative;}
.effect{position:relative;cursor:pointer;}
.effect:hover{color:#02a0e9;}
.effect:before{width:100%;display:inline-block !important;position:absolute;height:1px;background:#02a0e9;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(0,1);content:'';bottom:-5px;left:0;}
.effect:hover:before{transform:scale(1);-webkit-transform:scale(1);}
#lunBo{margin-top:20px;overflow:hidden;height:300px;width:750px;position:relative;}
#list{position:absolute;z-index:22;height:300px;width:5250px;}
#list img{float:left;}
#buttons { position: absolute; height: 20px; width: 150px; z-index: 99; bottom: 20px; left: 40%;}
span { cursor: pointer; float: left; width: 10px; height: 5px; background: #333; margin-right: 10px;}
.on { background: yellow;transition:all 0.4s ease-in-out;-webkit-transition:all 0.4s ease-in-out;-moz-transition:all 0.4s ease-in-out;transform:scale(1,4);-ms-transform:scale(1,4);-moz-transform:scale(1,4);-webkit-transform:scale(1,4);transform-origin:0% 0%;-webkit-transform-origin:0% 100%;-moz-transform-origin:0% 100%;}
.arrow { cursor: pointer; display: none; line-height: 39px; text-align: center; font-size: 36px; font-weight: bold; width: 40px; height: 100px; line-height:100px;position: absolute; z-index: 92; top: 30%; background-color: RGBA(0,0,0,.3); color: #fff;}
.arrow:hover { background-color: RGBA(0,0,0,.7);}
#lunBo:hover .arrow { display: block;}
#prev { left: 0px;}
#next { right: 0px;}
</style>
</head>
<body>
<div class="wrapper">
<a class="effect" href="#">2016完了,2017来了</a>
<div id="lunBo">
<div id="list" style="left:-750px;">
<img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856saeagzgsnwal15n5.jpg" alt=""/>
<img src="http://cdn.attach.qdfuns.com/notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg" alt=""/>
<img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856m1bhxxx1d8jfnblb.jpg" alt=""/>
<img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856z48mfrrr8u064rf6.jpg" alt=""/>
<img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856e95yze236lvq7y2a.jpg" alt=""/>
<img src="http://cdn.attach.qdfuns.com/notes/pics/201701/03/175856saeagzgsnwal15n5.jpg" alt=""/>
<img src="http://cdn.attach.qdfuns.com/notes/pics/201701/02/235009drzwcaxem2wfgmdc.jpg" alt=""/>
</div>
<div id="buttons">
<span index="1" class="on"></span>
<span index="2"></span>
<span index="3"></span>
<span index="4"></span>
<span index="5"></span>
</div>
<a href="javascript:;" id="prev" class="arrow"><</a>
<a href="javascript:;" id="next" class="arrow">></a>
</div>
</div>
<script>
window.onload = function(){
var lunBo = document.getElementById('lunBo');
var list = document.getElementById('list');
var buttons = document.getElementById('buttons').getElementsByTagName('span');
//console.log(buttons);
var prev = document.getElementById('prev');
var next = document.getElementById('next');
var index = 1;
var animated = false;
var interval = 3000;
var timer;
//显示按钮的索引
function showButton(){
for(var i = 0 ; i < buttons.length ; i++){
if( buttons[i].className == 'on' ){
buttons[i].className = '';
break;
};
};
buttons[index - 1].className='on';
};
function play(){
timer = setTimeout(function () {
next.onclick();
play();
}, interval);
};
function stop(){
clearTimeout(timer);
};
//向前按钮
next.onclick = function () {
if (animated) {
return;
}
if (index == 5) {
index = 1;
}
else {
index += 1;
}
animate(-750);
showButton();
};
prev.onclick = function () {
if (animated) {
return;
}
if (index == 1) {
index = 5;
}
else {
index -= 1;
}
animate(750);
showButton();
};
//parseInt()转换为纯数值
function animate(offset){
animated = true;
var newLeft = parseInt(list.style.left) + offset; //目标值
var time = 300; //位移总时间为300
var interval = 10; //
var speed = offset/(Math.floor(time/interval)); //每次位移量
function go(){
if( (speed < 0 && parseInt(list.style.left) > newLeft) || ( speed > 0 && parseInt(list.style.left) < newLeft) ){
list.style.left = parseInt(list.style.left) + speed + 'px';
setTimeout(go,interval);
}else{
animated = false;
list.style.left = newLeft+ 'px'; //现在的位移
if( newLeft > -750){ //假的辅助图
list.style.left = -3750 + 'px';
}
if( newLeft < -3750){
list.style.left = -750 + 'px';
}
}
};
go();
};
//小按钮
for(var i=0;i < buttons.length;i++){
buttons[i].onclick = function(){
if(this.className == 'on'){
return;
};
var myIndex = parseInt(this.getAttribute('index'));
var offset = -750 * (myIndex - index);
animate(offset);
index = myIndex;
showButton();
}
}
lunBo.onmouseout = play;
lunBo.onmouseover = stop;
play();
}
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# 原生js
# 焦点
# 轮播
# 原生js实现轮播图的示例代码
# 原生js实现无限循环轮播图效果
# 原生js实现移动开发轮播图、相册滑动特效
# 原生js实现无缝轮播图效果
# 原生js实现旋转木马轮播图效果
# 原生JS实现层叠轮播图
# 原生JS轮播图插件
# 原生JS京东轮播图代码
# 原生js实现网易轮播图效果
# 无限循环轮播图之运动框架(原生JS实现)
# 原生JS实现的轮播图功能详解
# 来了
# 也能
# 是从
# 要用
# 几点
# 时间为
# 或者说
# 时要
# 转换为
# 跳转到
# 往上升
# effect
# hsla
# relative
# padding
# position
# auto
# margin
# background
# box
相关文章:
深入理解Android中的xmlns:tools属性
如何快速搭建高效WAP手机网站?
如何快速登录WAP自助建站平台?
建站之星会员如何解锁更多建站功能?
Python文件管理规范_工程实践说明【指导】
Swift开发中switch语句值绑定模式
大连 网站制作,大连天途有线官网?
如何在企业微信快速生成手机电脑官网?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
淘宝制作网站有哪些,淘宝网官网主页?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
南宁网站建设制作定制,南宁网站建设可以定制吗?
如何在搬瓦工VPS快速搭建网站?
如何快速搭建自助建站会员专属系统?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
制作网站外包平台,自动化接单网站有哪些?
高端网站建设与定制开发一站式解决方案 中企动力
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
为什么Go需要go mod文件_Go go mod文件作用说明
css网站制作参考文献有哪些,易聊怎么注册?
如何在香港免费服务器上快速搭建网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
建站之星代理平台如何选择最佳方案?
如何用好域名打造高点击率的自主建站?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
海南网站制作公司有哪些,海口网是哪家的?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
c++怎么用jemalloc c++替换默认内存分配器【性能】
怎么将XML数据可视化 D3.js加载XML
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站之星如何保障用户数据免受黑客入侵?
学校为何禁止电信移动建设网站?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
建站为何优先选择香港服务器?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
如何选择高性价比服务器搭建个人网站?
建站之星云端配置指南:模板选择与SEO优化一键生成
网站制作模板下载什么软件,ppt模板免费下载网站?
建站之星安装需要哪些步骤及注意事项?
如何快速生成凡客建站的专业级图册?
5种Android数据存储方式汇总
如何通过宝塔面板实现本地网站访问?
网站代码制作软件有哪些,如何生成自己网站的代码?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
中山网站推广排名,中山信息港登录入口?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
*请认真填写需求信息,我们会在24小时内与您取得联系。