首页 > web前端 > js教程 > 正文

javascript实现自动左滑的轮播图(代码示例)

不言
发布: 2018-10-27 15:15:50
转载
2070人浏览过

本篇文章给大家带来的内容是关于javascript实现自动左滑的轮播图(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近做项目总是只会调用别人做好的各种插件效果,想起很久没来自己写点小插件,久了会忘记的,就赶紧来补一下,前端程序员必备,实现一个js轮播图。

html代码:

<!DOCTYPE HTML>
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="./demo.css">
</head>
 
<body>
    <div class="slide">
        <div class="img">
            <ul id="slide_img">
                <li>@@##@@</li>  <!--处理无缝衔接的图片-->
                <li>@@##@@</li>
                <li>@@##@@</li>
                <li>@@##@@</li>
                <li>@@##@@</li>
            </ul>
        </div>
        <ul id="num">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
        <div class="btn">
            <span id="left"><</span>
            <span id="right">></span>
        </div>
    </div>
    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <!--通过百度CDN地址引用jQuery库-->
    <script type="text/javascript" src="./demo.js"></script>
</body>
登录后复制

此次的小demo样例用了4张图片,由于要实现无缝衔接,即最后一张顺畅地跳转到第一张,故在写html的时候,再重复了最后一张图片,然后通过直接定位,在轮播到最后一张图片的时候,将整个ul定位到第一张,由于第一张和最后一张是一样的,故效果看起来则顺畅自然的轮播。

css代码:

*{
	margin: 0;
	padding: 0;
}
.slide{
	position: relative;
	width: 1000px;
	height: 500px;
	margin: 40px auto;
	overflow: hidden;
}
.img ul{
	position: absolute;
	left: -1000px;
	width: 5000px;
}
.img li{
	list-style-type: none;
	float: left;
}
img{
	width: 1000px;
	height: 500px;
}
#num li{
	list-style-type: none;
	background-color: white;
	border: 1px solid red;
	border-radius: 100px;
	float: left;
	width: 10px;
	height: 10px;
	margin: 10px;
	cursor: pointer;
}
#num {
	position: absolute;
	top: 450px;
	left: 800px;
}
.btn{
	font-size: 30px;
	color: gray;
}
#left{
	position: absolute;
	top: 230px;
	left: 40px;
	cursor: pointer;
}
#right{
	position: absolute;
	top: 230px;
	right: 40px;
	cursor: pointer;
}
登录后复制

 css中需要注意的是定位的时候,整个外部的p是相对定位,而里面的内容ul则相对于外部p进行绝对定位,通过left,top等来设置位置

立即学习Java免费学习笔记(深入)”;

js代码:

$(document).ready(function () {
	initRadius();
});

var number = 1;  //设置为全局变量

//轮播图图片主体
function startSlide() {
	dealRadius(number);
	if(number == 4) {
		number = 0;
		$('#slide_img').css({left: '0px'});  //处理无缝衔接图
		 dealRadius(0); // 处理无缝衔接小圆点的跳转
	}
	number++;
	var imageLeft = -1000 * number;
	$('#slide_img').animate({left: imageLeft});
}	
var timer = setInterval(startSlide,3000);



//小圆点的轮播实现
function dealRadius(num) {
	var lis = $('#num li');
	lis.eq(num).css('background-color', 'red');
	for(var i = 0; i < num; i++) {
		lis.eq(i).css('background-color','white');
	}
	for(var i = num + 1; i < 4; i++) {
		lis.eq(i).css('background-color','white');
	}
}

//初始化小圆点
function initRadius() {
	var lis = $('#num li');
	lis.eq(0).css('background-color', 'red');
}


//左右按钮的实现
$('#left').mousedown (function() {
	clearInterval(timer);
	if(number == 0) {
		$('#slide_img').css({left: '-4000px'}); 
		number = 4;
	}
	var imageLeft = -1000 * (number-1);
	$('#slide_img').animate({left: imageLeft});
	number--;
	if(number == 0) {
		dealRadius(3);
	} else {
			dealRadius(number-1);
	}
});
$('#left').mouseup(function() {
	timer = setInterval(startSlide,3000);
});

$('#right').mousedown (function() {
	clearInterval(timer);
	if(number == 4) {
		number = 0;
		$('#slide_img').css({left: '0px'});  //处理无缝衔接图
	}
	var imageLeft = -1000 * (number+1);
	$('#slide_img').animate({left: imageLeft});
	dealRadius(number);
	number++;

});
$('#right').mouseup(function() {
	timer = setInterval(startSlide,3000);
});


//小圆点的点击实现
$('#num').on('click','li',function(){
	clearInterval(timer);
	var _number = $(this).index() + 1;
	number = _number
	dealRadius(number-1);
	var imageLeft = -1000 * number;
	$('#slide_img').animate({left: imageLeft});
	timer = setInterval(startSlide,3000);
});
登录后复制

js代码中,首先要知道关于定时器的使用,其中,关于dom的使用,好久没用啊,感觉很不熟悉。。自己得多来加强。。

javascript实现自动左滑的轮播图(代码示例)javascript实现自动左滑的轮播图(代码示例)javascript实现自动左滑的轮播图(代码示例)javascript实现自动左滑的轮播图(代码示例)javascript实现自动左滑的轮播图(代码示例)

以上就是javascript实现自动左滑的轮播图(代码示例)的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:CSDN网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号