移动版轮播图

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>新型轮播图</title>
<link rel="stylesheet" href="index.css">

*{
margin:0px;
padding: 0px;

}

.lunbo{
width: 1000px;
height: 400px;
border: 2px solid black;
margin:20px auto;
position: relative;
overflow: hidden;
}

.nav-bar{
width: 90px;
height: 20px;
/*background-color: pink;*/
text-align: center;
position: absolute;
bottom: 20px;
right: 20px;
z-index: 1;
}
.nav-bar .nav-span{
width: 20px;
height: 20px;
display: inline-block;
background-color: black;
border-radius: 10px;
}
.nav-bar .nav-span.selected{
background-color: white;
}

/*这个三个模块的承载体*/
.nav-father{
width: 3000px;
height: 400px;
/*background-color: red;*/

transition: all 2s;

}

.nav-child{
width: 1000px;
height: 400px;
float: left;
}

</head>

<body>
<!-- 1.新建一个轮播div -->
<div class="lunbo">

<div class="nav-bar">
<span class="nav-span selected" data-num = "0px"></span>
<span class="nav-span" data-num = "-1000px"></span>
<span class="nav-span" data-num = "-2000px"></span>
</div>

<!-- 小页面的承载体 -->
<div class="nav-father">
<div class="nav-child" style="background-color: pink;"></div>
<div class="nav-child" style="background-color: skyblue;"></div>
<div class="nav-child" style="background-color: orange;"></div>

</div>

</div>

<script>

function time(){

//每次获得当前的selected,让下一个标签设置为selected
var selected = document.querySelector(".selected");
selected.className = "nav-span";
//让下一个兄弟节点变为selected
if(selected.nextElementSibling != null){
selected.nextElementSibling.className = "nav-span selected";
//获得selected.nextElementSibling.data-num
var number = selected.nextElementSibling.getAttribute("data-num");

var father = document.querySelector(".nav-father");
father.style.transform = "translate("+ number+",0px)";

}else{
selected.parentNode.firstElementChild.className = "nav-span selected";

//获得selected.nextElementSibling.data-num
var number = selected.parentNode.firstElementChild.getAttribute("data-num");
var father = document.querySelector(".nav-father");
father.style.transform = "translate("+ number+",0px)";
}

}

//定时器
//(1)每过4秒调用一次
//(2)每次首先获得当前的selected

var timer = setInterval(time,4000);

// 点击
//(1)找到所有的nav-span
var SpanArrays = document.querySelectorAll(".nav-span");
//(2)设置点击事件
for(var i = 0;i< SpanArrays.length;i++){

SpanArrays[i].onclick=function(){

clearInterval(timer);
//(3)让自己变成selected,让其他的变成正常
for(var j =0;j<SpanArrays.length;j++){
//还原成正常的
SpanArrays[j].className = "nav-span";

}
//(4)将点击的设置为 nav-span selected
this.className = "nav-span selected";

//换图片。。。指的是transform-translate
//找到nav-father
var father = document.querySelector(".nav-father");
//平移数值
var number = this.getAttribute("data-num");

father.style.transform = "translate("+ number+",0px)";

timer = setInterval(time,4000);
}
}

</script>

时间: 2024-10-12 02:42:00

移动版轮播图的相关文章

84JS插件:jQuery版轮播图

一.代码分两个部分:1.HTML部分,根据注释处理即可:2.基于jQuery的play.js插件部分,这里为了展示效果,直接写在<html></html>下的<script></script>标签里.3.效果包含:自动轮播,焦点对齐,前进后退,直走不返,鼠标进入.轮播停止且前进后退图标出现,鼠标离开.轮播重启且前进后退图标隐藏.4.这里可以预览效果.二.轮播图原理说明:(1)轮播图(假设)有7张图片,“一”字排列,把第1张图片复制一次,放到第8张的位置,这样

进阶版轮播图

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } li{ list-style: none; } body{ background: #CCCCCC; } #box{ width: 400px;

jq版轮播图

html部分 <div class="banner"> <ul class="img"> <li><img src="login_bj1.jpg" alt=""/></li> <li><img src="login_bj1.jpg" alt="" /></li> <li><i

bootstrapcss3触屏滑块轮播图

插件描述:bootslider响应bootstrapcss3触屏滑块轮播图 小海已经好久没分享技术性文章了,这个基于bootstrap的触屏版轮播图绝对满足大家的胃口,并且支持移动端触摸滑动.功能上,这款bootstrapcss3触屏滑块轮播图支持鼠标滑动.手机端触摸滑动.外观上,这款bootstrap的触屏版轮播图的两侧有淡化处理,因此更显立体效果. 本文由涂志海博客提供,想获取更多的资料请访问www.tuzhihai.com

js - 面向对象 - 小案例:轮播图、随机点名、选项卡、鼠标拖拽

面向对象 对象 : (黑盒子)不了解内部结构, 知道表面的各种操作. 面向对象 : 不了解原理的情况下 会使用功能 . 面向对象是一种通用思想,并非编程中能用,任何事情都能用. 编程语言的面向对象的特点: ? 封装 : 看不到里面的东西 , 用好表面功能. ? 继承 : 从父类继承一些方法 , 属性 , 子类又有一些新的特性. ? 多态 ? 抽象 : 抽取一个功能里面多个核心的功能模块. ? 思想: 高内聚.低耦合 ? 低耦合 :每个功能模块之间耦合度要低 ? 高内聚 :模块内部要紧密相连 面向

【原】运动版的轮播图,有左右按钮和单独分页

运动版的轮播图,有左右按钮和单独分页 这个例子重点在于: 运动框架的复习,要灵活运动回调函数 始终以全局变量iNum来控制oUl的移动目的地,每次有任何动作,都是先判断iNum并改变iNum后去调用运动函数 刚才在复查代码的时候发现个奇怪的现象,在ie11和cent browser打开的时候居然不会滚动,iNum倒是在变化,突然想到之前在看妙味课堂的时候有老师提到一句,给要运动的元素,在加上position:absolute后,如果不加上left:0;top:0会有兼容问题,所以,我给oUl加上

移动端 触屏轮播图(完善版)

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=320,user-scalable=no" /> <title>ios 轮播图简版<

js学习总结----轮播图之渐隐渐现版

具体代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin:0; padding:0; font-size:14px; -webkit-user-select:none; } ul,li{ list-style } im

轮播图---左右切换无长滚动效果轮播图-中级难度版

左右切换无长滚动轮播图思路:首先设有全局变量position(确定当前图片是第几张),arr数组:存放图片地址,方向:direction, 及lis小圆点数组,prev,记录小圆点的前一个, moveBool是否进入运动函数等1.点击事件:点击左边的leftBn,设置direction="right",position--,在这要确定position不能超出数组长度范围, 超出要重新赋值,点击小圆点把小圆点的当前是lis数组中的第几个赋值给position,然后图片生成2.图片生成:图