简易轮播图、内含定时器。熟练JS操作
HTML部分:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src = "lunbotu.js"></script>
<style>
#kuai{
width: 50%;
height: 300px;
margin: auto;
position: relative;
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
}
#kuai img{
width: 100%;
height: 100%;
}
#btn_1{
position: absolute;
top: 50%;
left: 0px;
}
#btn_2{
position: absolute;
top: 50%;
right: 0px;
}
#botBtn{
width: 300px;
height: 25px;
background-color: #ccc;
position: absolute;
bottom: 0px;
left: 30%;
}
.redC{
color: red;
}
</style>
</head>
<body>
<div id="kuai">
<!-- 在页面上显示一张图片 -->
<div id="tupian">
<img onmouseover="qingchudsq()" onmouseout="go_on()" src="data:image/J1.png" alt="">
</div>
<!-- 换行需要一个按钮需要一个按钮,叫下一页 -->
<button onclick="xiayiye()" id="btn_1">下一页</button>
<button onclick="shangyiye()" id="btn_2">上一页</button>
<div id="botBtn">
</div>
</div>
</body>
</html>
JS部分:
var imgObj = null;
// 定义一个数组存放src路径
var imgArrObj = ['image/J1.png','image/J2.png','image/J3.png','image/J4.png'];
var i = 0;//下标
var a = null;
var box = null;
window.onload = function(){
init();//初始化变量
dingshiqi();// 定时器
addBtn();//添加按钮
}
function init(){
imgObj = document.getElementsByTagName('img')[0];
box = document.getElementById('botBtn');
}
//变色
function bianse(){
//找到所有
var btns = box.getElementsByTagName('button');
// 删除class
for (var k = 0; k < btns.length; k++) {
btns[k].removeAttribute('class');
}
btns[i].setAttribute('class','redC');
}
// 下一页
function xiayiye(){
// 替换属性值
// 改变下标
i++;
if (i >= imgArrObj.length ){
i =0;
}
imgObj.setAttribute('src',imgArrObj[i]);
bianse();
}
//上一页
function shangyiye(){
i--;
if (i < 0) {
i = imgArrObj.length - 1;
}
imgObj.setAttribute('src',imgArrObj[i]);
bianse();
}
//定时器
function dingshiqi(){
a = setInterval(function(){
xiayiye();
// i++;
// if (i >= imgArrObj.length ){
// i =0;
// }
// imgObj.setAttribute('src',imgArrObj[i]);
},2000);
}
function addBtn(){
var str = '';
for (var k = 0;k < imgArrObj.length;k++) {
if (k==0) {
str += '<button class="redC" onclick="ch('+k+')">'+ (k+1) +"</button>";
}else{
str += '<button onclick="ch('+k+')">'+ (k+1) +"</button>";
}
}
box.innerHTML = str;
}
function ch(num){
i = num;
imgObj.setAttribute('src',imgArrObj[i]);
bianse();
}
// 清除定时器
function qingchudsq(){
clearInterval(a);
}
function go_on(){
dingshiqi();
}
简易轮播图、内含定时器。熟练JS操作的更多相关文章
- 原生JS实现简易轮播图
原生JS实现简易轮播图(渐变?) 最近做网页总是会用到轮播图,我就把之前写的轮播图单独拿出来吧,如果有...如果真的有人也需要也可以复制去用用啊..哈~.. window.onload = funct ...
- 原生js一行代码实现简易轮播图
这是一个简易的js无限循环轮播图,只用了一行js代码就实现了无限循环,记录一下三目运算符的伟大! <!DOCTYPE html><html lang="en"&g ...
- jQuery实现简易轮播图的效果
(图片素材取自于小米官网) 刚开始接触jQuery的学习,个人觉得如果为了实现多数的动态效果,jQuery的确很简易方便. 下面简易的轮播图效果,还请前辈多多指教~ (努力学习react vue an ...
- 纯js轮播图练习-2,js+css旋转木马层叠轮播
基于css3的新属性,加上js的操作,让现在js轮播图花样越来越多. 而现在出现的旋转木马层叠轮播的轮播图样式,却是得到了很多人都喜爱和投入使用. 尤其是在各大软件中,频繁的出现在大家的眼里,在web ...
- 轮播图切换 纯html+js+css
如图所示. 该图片切换特效实现很简单,而且兼容性很好. html页面如下 复制代码代码如下: <div class="wrapper"> <div id=&quo ...
- vue简易轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JQuery简易轮播图
html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...
- 用CSS代码编写简易轮播图
废话不多说,直接上代码 <!doctype html> <html> <head> <title></title> <meta cha ...
- JS 实现动态轮播图
JavaScript实现轮播图思路 + html/css + js源码 整个轮播图的效果是通过js代码,操作dom, 拿到html我们需要的元素,控制整个ul的距离浏览器左边的位置,让排好的图片依次出 ...
随机推荐
- ecshop 2.x 3.x sql injection/rce payload
首先,感谢ringk3y的分析:http://ringk3y.com/2018/08/31/ec ... %E6%89%A7%E8%A1%8C/ 大家跟一遍代码基本上都能弄明白漏洞的原理,整个漏洞的构 ...
- 原生ajax可变参数post
var Ajax = { post:function(){ xmlhttp = new XMLHttpRequest(); var len = arguments.length; var url = ...
- Java项目中启动Tomcat报错invalid LOC header
原因: 可能是jar包有问题. 解决方法: 1.找到加载不了的类对应的jar包. 2.在tomcat中webapps/INF/lib中找到对应的jar包,然后删除. 3.重新下载其它版本的jar包. ...
- Android 进程间的通信
localsocket: https://blog.csdn.net/azhengye/article/details/73863404 https://www.cnblogs.com/basta ...
- 解决C#中FileSystemWatcher类的Changed事件触发多次的问题
public static void WatchFile() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = ...
- Oracle 表空间恢复
为啥要写这个呢,因为之前遇到个场景.操作系统为Solaris的,oracle11.2.0.4. 一个运维把一张关键表drop了.然后发现recyclebin是off的,然后..然后好像只能从备份里面找 ...
- in与exists和not in 与 not exists的区别
1.in 与 exists: 外表大,用IN:内表大,用EXISTS: 原理: 用in:外表使用了索引,直接作hash连接: 用exists:内表使用了索引,外表作loop循环再进行匹配: 2.not ...
- Numpy增加一列,指定概率指定参数
这里主要应用到numpy.random.choice 可以根据需求,比如增加一列,A B C 为该列数据,随机概率生成 详见代码 import numpy as np import pandas as ...
- mysql统计库下所有表数据行数
一.执行下面sql select concat( 'select "', TABLE_name, '", count(*) from ', TABLE_SCHEMA, '.', T ...
- python练习题-day23
1.人狗大战(组合) class Person: def __init__(self,name,hp,aggr,sex,money): self.name=name self.hp=hp self.a ...