• 使用JavaScript制作一个好看的轮播图


    使用JavaScript制作出好看的轮播图效果

    准备材料

    1.图片若干张(包括轮播图和按钮的图片)


    1.jpg

    2.jpg

    3.jpg

    4.jpg

    1.png

    2.png

    3.png

    4.png

    a1.png

    a2.png

    2.将按钮的图片应用到按钮上的CSS样式文件

    我取名为b1-2a1-4.css,其中b1和b2是左右选择的按钮,a1-4是跳转到1到4中的一张图的按钮。

    .b1 {
    	 62px;
    	height: 94px;
    	background: url(image/a1.png);
    	position: absolute;
    	top: 200px;
    	left: 7px;
    }
    
    .b2 {
    	 62px;
    	height: 94px;
    	background: url(image/a2.png);
    	float: left;
    	position: absolute;
    	top: 200px;
    	left: 677px;
    }
    
    .a1 {
    	 29px;
    	height: 29px;
    	background: url(image/1.png);
    	position: absolute;
    	top: 420px;
    	left: 600px;
    }
    
    .a2 {
    	 29px;
    	height: 29px;
    	background: url(image/2.png);
    	position: absolute;
    	top: 420px;
    	left: 630px;
    }
    
    .a3 {
    	 29px;
    	height: 29px;
    	background: url(image/3.png);
    	position: absolute;
    	top: 420px;
    	left: 660px;
    }
    
    .a4 {
    	 29px;
    	height: 29px;
    	background: url(image/4.png);
    	position: absolute;
    	top: 420px;
    	left: 690px;
    }
    

    3.实现轮播和点击跳转的JavaScript代码

    1. 其中用一个变量i的余数来判断当前是第几张图片。
    2. 通过changeImg函数来控制图片的切换。
    3. 有一个2秒的计时器,每2秒i值加1。
    4. b3是100ms执行一次,检测i值是否改变,并调用changeImg函数来切换图片。
    5. b1和b2是左右切换,a1-a4是任意切换,他们除了要完成相应的切换(i++/i--/i=400/401/...)之外,还要调用changeImg函数,最后要重置一下2秒自动轮播的定时器。
    6. 这个文件的名字,嗯,就是b1-3a1-4.js
    var i = 400;
    var img = document.getElementById("img1");
    var timeID;
    timeID = setInterval("i++", 2000);
    
    function changeImg(i) {
    	var imgs;
    	if(i % 4 == 0) {
    		imgs = "image/1.jpg";
    	} else if(i % 4 == 1) {
    		imgs = "image/2.jpg";
    	} else if(i % 4 == 2) {
    		imgs = "image/3.jpg";
    	} else {
    		imgs = "image/4.jpg";
    	}
    	return imgs;
    }
    
    function b1() {
    	i--;
    	var img = document.getElementById("img1");
    	img.src = changeImg(i);
    	clearInterval(timeID);
    	timeID = setInterval("i++", 2000);
    }
    
    function b2() {
    	i++;
    	var img = document.getElementById("img1");
    	img.src = changeImg(i);
    
    	clearInterval(timeID);
    	timeID = setInterval("i++", 2000);
    }
    
    function a1() {
    	i = 400;
    	var img = document.getElementById("img1");
    	img.src = changeImg(i);
    	clearInterval(timeID);
    	timeID = setInterval("i++", 2000);
    }
    
    function a2() {
    	i = 401;
    	var img = document.getElementById("img1");
    	img.src = changeImg(i);
    
    	clearInterval(timeID);
    	timeID = setInterval("i++", 2000);
    }
    
    function a3() {
    	i = 402;
    	var img = document.getElementById("img1");
    	img.src = changeImg(i);
    	clearInterval(timeID);
    	timeID = setInterval("i++", 2000);
    }
    
    function a4() {
    	i = 403;
    	var img = document.getElementById("img1");
    	img.src = changeImg(i);
    
    	clearInterval(timeID);
    	timeID = setInterval("i++", 2000);
    }
    
    function b3() {
    	var img = document.getElementById("img1");
    	img.src = changeImg(i);
    }
    setInterval("b3()", 100);
    

    4.用html将他们联系起来!

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<link rel="stylesheet" href="b1-2a1-4.css" />
    		<script src="b1-3a1-4.js" type="text/javascript"></script>
    	</head>
    	<body>
    		<img src="image/1.jpg" id="img1"/>
    		<input type="button" class="b1" onclick="b1()"/>
    		<input type="button" class="b2" onclick="b2()"/>
    		<input type="button" class="a1" onclick="a1()"/>
    		<input type="button" class="a2" onclick="a2()"/>
    		<input type="button" class="a3" onclick="a3()"/>
    		<input type="button" class="a4" onclick="a4()"/>
    	</body>
    </html>
    
    

    完工!(这其实是之前做的,拿来凑数233333)话说我真的觉得挺好看的做的~

  • 相关阅读:
    nginx高级玩法之根据来源ip分流
    ubuntu上的 /dev/loop0 到 /dev/loop18占到100%的处理
    nginx: [warn] conflicting server name "aaa.bbbb.com" on 0.0.0.0:80, ignored
    nginx报警:nginx: [warn] could not build optimal server_names_hash, you should increase either server_names_hash_max_size: 512 or server_names_hash_bucket_size: 64; ignoring server_names_hash_bucket_size
    nginx配置socket连接
    Syntax error: "(" unexpected shell里面的报错解决
    docker批量操作容器
    ubuntu18.04安装docker和开通对外2375端口(方便portainer管理)
    Cadence OrCad Allegro SPB 16.6 下载及安装破解指南
    关于XILINX芯片IO管脚的上拉电阻的疑问
  • 原文地址:https://www.cnblogs.com/zhangA/p/9832599.html
Copyright © 2020-2023  润新知