js-组件-轮播
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>轮播</title>
<style>
*{
margin: 0;
padding: 0;
border: 0;
list-style: none;
vertical-align: baseline;
}
img{
display: block;
float: left;
}
#container{
position: relative;
width: 500px;
overflow: hidden;
height: 375px;
margin: 0 auto;
}
#list{
position: absolute;
z-index: 1;
width: 3500px;
}
#list img{
width: 500px;
}
#prev,#next,#button{
position: absolute;
z-index: 2;
}
#button{
left: 190px;
bottom: 20px;
}
#button a{
display: block;
float: left;
width: 20px;
height: 20px;
background-color: #fff;
border-radius: 10px;
margin: 2px;
}
#button a.on{
background-color: #000;
}
#prev,#next{
background-color: rgba(0,0,0,0.3);
width: 80px;
height: 80px;
top: 150px;
display: none;
}
#prev:hover,#next:hover{
background-color: rgba(0,0,0,0.7);
cursor: pointer;
}
#next{
right: 0;
}
#prev span,#next span{
display: block;
border: 1px solid #fff;
border-left: none;
border-bottom: none;
width: 50px;
height: 50px;
transform:rotate(45deg);
margin-top: 15px;
}
#container:hover #next,#container:hover #prev{
display: block;
}
#prev span{
transform:rotate(-135deg);
margin-left: 25px;
}
</style>
</style>
<script>
window.onload=function(){
var container=document.getElementById('container');
var list=document.getElementById('list');
var prev=document.getElementById('prev');
var next=document.getElementById('next');
var buttons=document.getElementById('buttons').getElemenstByTagName('a');
var index=1;
var timer=setInterval(function(){
next.onclick();
},2000);
var moved=false;
function move(offset){
var newleft=parseInt(list.style.left)+offset;
var time=300;
var interval=30;
var speed=offset/(time/interval);
function go(){
if((speed<0&&newleft>list.style.left)||(speed>0&&newleft<list.style.left)){
moved=true;
parseInt(list.style.left)+speed+'px';
setTimeout=(go,interva);
}else{
moved=false;
list.style.left=newleft+'px';
if(newleft<-2500){
list.style.left=-500+'px';
}
if(newleft>-500){
list.style.left=-2500+'px';
}
}
}
go();
}
function showbutton(){
for(var i=0;i<buttons.length;i++){
if(buttons[i].className=='on'){
buttons[i].className='';
break;
}
}
buttons[index-1].className='on';
}
next.onclick=function(){
if(!moved){
move(-500);
if(index==5){
index=1;
}
index+=1;
showbutton();
}
}
prev.onclick=function(){
if(!moved){
move(500);
if(index==1){
index=5;
}
index-=1;
showbutton();
}
}
}
for(var i=0;i<buttons.length;i++){
buttons[i].onclick=function(){
if(this.className='on'){
return;
}
newindex=i+1;
var offset=(newindex-index)*(-500);
if(!moved){
move(offset);
index=newindex;
showbutton();
}
}
}
container.onmouseover=function(){
clearInterval(timer);
}
container.onmouseout=function(){
timer=setInterval(function(){
next.onclick();
},2000);
}
</script>
</head>
<body>
<div id="container">
<div id="list" syle="left:-500px">
<img src="5.jpg">
<img src="1.jpg">
<img src="2.jpg">
<img src="3.jpg">
<img src="4.jpg">
<img src="5.jpg">
<img src="1.jpg">
</div>
<div id="prev"><span></span></div>
<div id="next"><span></span></div>
<div id="buttons">
<a href="javascript:;" class="on"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
</div>
</div>
</body>
</html>
js-组件-轮播的更多相关文章
- 使用原生js将轮播图组件化
代码地址如下:http://www.demodashi.com/demo/11316.html 这是一个轮播图组件,这里是代码地址,需要传入容器的id和图片地址,支持Internet Explor ...
- 原生js焦点轮播图
原生js焦点轮播图主要注意这几点: 1.前后按钮实现切换,同时注意辅助图2.中间的button随着前后按钮对应切换,同时按button也能跳转到相应的index3.间隔调用与无限轮播.4.注意在动画时 ...
- 原生js实现轮播图
原生js实现轮播图 很多网站上都有轮播图,但找到一个系统讲解的却很难,因此这里做一个简单的介绍,希望大家都能有所收获,如果有哪些不正确的地方,希望大家可以指出. 原理: 将一些图片在一行中平铺,然后计 ...
- js实现轮播图效果(附源码)--原生js的应用
1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- js编写轮播图,广告弹框
1.轮播图 js编写轮播图,需要用到setInterval(计时器):先给一个div,里面放轮播图的图片,将轮播图的图片明明为相同样式的:如:banner1.jpg,banner2.jpg,banne ...
- js原生轮播
js原生轮播 今天用js做了轮播图,做的不怎么好,希望大家能够看懂. 效果: 1.鼠标放在轮播图上自动停止 2.鼠标离开轮播图自动播放 3.鼠标点击轮播图上的小圆点跳转到相应的图上. 代码: < ...
- js实现轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 封装一个简单的原生js焦点轮播图插件
轮播图实现的效果为,鼠标移入左右箭头会出现,可以点击切换图片,下面的小圆点会跟随,可以循环播放(为了方便理解,没有补2张图做无缝轮播).本篇文章的主要目的是分享封装插件的思路. 轮播图我一开始是写成非 ...
- 原生JS实现轮播图的效果
原生JS实现轮播图的效果: 只要缕清了全局变量index的作用,这个轮播图也就比较容易实现了:另外,为了实现轮这个效果,有几处clearInterval()必须写上.废话不多说,直接上代码,修复了几个 ...
- vue 组件轮播联动
组件轮播联动我使用的是 el-carousel 组件,具体代码如下: <el-carousel trigger="click" :interval="3000&qu ...
随机推荐
- tp框架实现ajax注册验证
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- iOS常用的第三方库GitHub地址
MJRefresh https://github.com/CoderMJLee/MJRefresh#期待 Facebook-POP https://github.com/facebook/pop /* ...
- HTML5离线应用与客户端存储
序言 本篇文章会详细介绍使用HTML5开发离线应用的步骤,以及本地存储与cookie的一些异同,最后利用上面所学例子来实现一个购物车场景. 使用HTML5离线存储的基本过程如下: 离线检测:首先要对设 ...
- IOS开发中摇一摇是怎么实现的
三个方法,分别是开始摇一摇,结束摇一摇,取消摇一摇,我们可以在里面对应的进行事件处理,或者在ui上进行信息展示: 1.开始摇一摇:(在实际app中用需要处理的语句替换NSLog(@"开始摇一 ...
- 命名空间“Microsoft.AspNet”中不存在类型或命名空间名“Mvc”
问题: 错误 CS0234 命名空间"Microsoft.AspNet"中不存在类型或命名空间名"Mvc"(是否缺少程序集引用?) 解决方案: 打开文件夹 Us ...
- android TextView实现滚动显示效果
在android中,如果设置了TextView控件为单行显示,且显示的文本太长的话,默认情况下会造成显示不全的情况,这种情况下我们需要设置该控件属性如下: <TextView android:i ...
- 安装oracle后不能连接问题
在安装oracle之前,还特意找了几篇博客和百度经验看过,因为知道oracle的只能安装一次,如果装不上,OK,基本排除安装的可能了(安装的残留文件卸不完) 然而,我的问题没有出在这里,安装很顺利,一 ...
- iPhone的刷机 iPhone进UDF
首先是进入udf出现问题.. 要点是 黑屏后按电源键到屏幕亮了+HOME键再一直按 按到黑屏 4秒左右后 放开HOME键 再按大概7秒就是udf界面了 不是界面~全黑的.你可以电源键是开不了机的. 然 ...
- 3.2. 添加模板版本(Core Data 应用程序实践指南)
为了不像3.1那样崩溃,修改模型之前先创建新的模型版本.添加之后,会生成一个新的xcdatamodel文件,并且跟原来的内容完全一样,这有意思了,但是不要删除原来旧版的模型.旧的模型有助于把原来持久化 ...
- Delphi 常用函数记录
//判断是否是数字 function IsNumeric(sDestStr: string): Boolean; //简写多余汉字 function SimplifyWord(sWord: strin ...