【JavaScript】固定布局轮播图特效
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Banner</title>
<style type="text/css">
*{margin:0;padding: 0;}
.container{width: 1079px;height: 500px;overflow: hidden;margin:0 auto;position: relative;}
#list{width: 7553px;height: 500px;position: absolute;}
#list img{width: 14.285715%;;float: left;}
.arrow{position: absolute;color:#fff;text-decoration: none;bottom: 20px;text-align: center;width: 40px;height: 40px;font-size: 30px;top:230px;font-weight: bold;background: rgba(0,0,0,0.3);}
#left{left:20px;}
#right{right: 20px;}
</style>
</head>
<body>
<div class="container" id="container">
<div id="list">
<img alt="5" src='http://i1.piimg.com/576342/a59848cad8818bd4.jpg'>
<img alt="1" src='http://i1.piimg.com/576342/9bc3a6f38f9eca10.jpg'>
<img alt="2" src='http://i1.piimg.com/576342/82507633c9d21ebf.jpg'>
<img alt="3" src='http://image60.360doc.com/DownloadImg/2013/04/1613/31674132_21.jpg'>
<img alt="4" src='http://i1.piimg.com/576342/5935e1921d2d5fb0.jpg'>
<img alt="5" src='http://i1.piimg.com/576342/a59848cad8818bd4.jpg'>
<img alt="1" src='http://i1.piimg.com/576342/9bc3a6f38f9eca10.jpg'>
</div>
<a href="javascript:void(0)" class="arrow" id="left" disabled="false"><</a>
<a href="javascript:void(0)" class="arrow" id="right" disabled="false">></a>
</div> <script type="text/javascript">
window.onload = function(){
var oContainer = document.getElementById('container');
var oList = document.getElementById('list');
var oLi = oList.getElementsByTagName('img');
var oLeft = document.getElementById('left');
var oRight = document.getElementById('right');
var oWidth = oContainer.offsetWidth;
var animated = false;
oList.style.left = -oWidth + 'px'; function animate(offset){
console.log("offset:" + offset);
console.log("oWidth:" + oWidth);
animated = true;
var newLeft = parseInt(oList.offsetLeft) + offset;
var time = 300;
var interval = 10;
var speed = offset / (time / interval); function go(){
if((speed > 0 && oList.offsetLeft < newLeft) || (speed < 0 && oList.offsetLeft > newLeft)){
oList.style.left = oList.offsetLeft + speed + 'px'; //动画效果
setTimeout(go,interval); //递归
}else{
oList.style.left = newLeft + 'px';
if(newLeft > -oWidth){ //判断图片是第一张还是最后一张
oList.style.left = -oWidth * 5 + 'px';
}
if(newLeft < (-oWidth * 5)){
oList.style.left = -oWidth + 'px';
}
animated = false;
}
}
go();
} oRight.onclick = function(){
if(animated){
return ;
}
animate(-oWidth);
}
oLeft.onclick = function(){
if(animated){
return;
}
animate(oWidth);
}
}
</script>
</body>
</html>
可直接运行
放7张图片的原因是为了动画效果更加平滑
不会造成第一张图片或者最后一张图片过渡效果的时候是空白
本来打算用CSS3来做动画效果
但是发现多次点击后会图片会偏移原来的位置
所以使用原生JavaScript来编写动画
下一篇准备写个百分比自适应布局的轮播图
【JavaScript】固定布局轮播图特效的更多相关文章
- javascript原生js轮播图
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【jQuery】百分比自适应屏幕轮播图特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 2、原生js实现轮播图特效
很多很多网站经常会用到一个特效,那就是轮播图,对于日新月异的前端技术来说其实就是一个框架一个接口的事,但轮播的原理是什么?用最原始的javascript来写又是怎样的呢?本人是一枚菜鸟,这篇文章就当做 ...
- Web前端原生JavaScript浅谈轮播图
1.一直来说轮播图都是困扰刚进业内小白的一大难点,因为我们不仅需要自己作出一个比较完美的运动框架(虽然网上一抓一大把,但是哪有比自己做出来实现的有成就感,不是吗?^_^),还必须需要非常关键性的把握住 ...
- 从零开始学习前端JAVASCRIPT — 11、JavaScript运动模型及轮播图效果、放大镜效果、自适应瀑布流
未完待续...... 一.运动原理 通过连续不断的改变物体的位置,而发生移动变化. 使用setInterval实现. 匀速运动:速度值一直保持不变. 多物体同时运动:将定时器绑设置为对象的一个属性. ...
- javascript写的轮播图
欢迎指点! 先放上效果图: 鼠标移入界面后: <body onselectstart="return false;" style="-moz-user-select ...
- 用JavaScript制作banner轮播图
JavaScript_banner轮播图 让我们一起来学习一下用js怎么实现banner轮播图呢? 直接看代码: <!DOCTYPE html> <html> <head ...
- JavaScript实现动态轮播图效果
功能描述: 1.鼠标经过 左右侧箭头显示,鼠标离开 箭头隐藏 2.动态添加底部小圆圈并绑定单击事件,并且让小圆圈的点击事件和左右箭头点击事件同步 3.拷贝第一张图片添加到ul最后可以实现动态添加图片 ...
- JS实现轮播图特效(带二级导航)
按照国际惯例先放效果图 index.html <!DOCTYPE html> <html lang="en"> <head> <meta ...
随机推荐
- COG注释--转载
http://blog.sina.com.cn/s/blog_670445240102uxwy.html 一 COG简介 COG,即Clusters of Orthologous Groups of ...
- Linux C相关基础
系统求助 man 函数名 man 2 函数名 - 表示函数是系统调用函数 man 3 函数名 - 表示函数是C的库函数 eg:man fread man 2 w ...
- table布局的简单网页
---恢复内容开始--- 由于<body>标签的图片不能够拉伸, 解决办法: 1.图片不够大,又background属性不能拉伸图片: 2.只能用个div,把其z-index值设为负,并使 ...
- Goppa code
上面的公式定义了长度为n的Goppa码[1].n=2^m, 其维度 k≥n- t·m. 最小距离d≥ 2t+1. 存在运行时间与 n·t 成正比的快速译码算法. 从形式上看,右边是分式,相当于线性分组 ...
- Table样式
.tb_org th { background-color: #; color: #ffffff; } .tb_org { border-right: 1px solid silver; border ...
- 【C++】 struct结构自动对齐的问题
#pragma pack (push) #pragma pack (1) struct XXXX{}; #pragma pack (pop) 这样写就不会自动对齐了. 在写MFC下的winpcap捕a ...
- PE文件学习系列笔记四-C++实现PE文件的分析
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: 首 ...
- TextMate 通用快捷键
原来一直在Windows上使用notepad++文本编辑器,现在换了MAC,发现notepad++ 官方没有MAC版本的,在MAC上使用也有办法,只不过实在是太麻烦了. 通过查看网友的建议,发现了Te ...
- 关于如何在cenos7.0上实现mysql数据库远程连接
设置mysql允许别的客户机控制的权限 mysql -uroot -p #此处为本地linux帐号密码 select user,host from mysql.user; #查看mysql表对应use ...
- html/css小练习1
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAywAAAFgCAIAAADW6Wr0AAAgAElEQVR4nOzdd1xT5+L48bJlhUAGCY