美文网首页
简易轮播图实现——乞丐加强版(终于能滚动了。。。)

简易轮播图实现——乞丐加强版(终于能滚动了。。。)

作者: 锺权 | 来源:发表于2018-10-28 17:43 被阅读0次

前几天做了一个很简单的轮播图,但是它是通过给图片加上display属性的方法去实现轮播的,所以不能滚。。。 ̄□ ̄||这几天看到了大佬的代码才学会了无缝滚动。。。以下是代码

html部分:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>banner-slide</title>

    <link rel="stylesheet" href="css/style.css">

</head>

<body>

<div class="main" id="main">

<div class="banner">

<ul class="slide" id="slide">

<li class="fl"><img src="img/bg1.jpg" alt="图片1"></li>

<li class="fl"><img src="img/bg2.jpg" alt="图片2"></li>

<li class="fl"><img src="img/bg3.jpg" alt="图片3"></li>

</ul>

</div>

<a href="javascript:void(0)" class="button prev" id="prev"></a>

<a href="javascript:void(0)" class="button next" id="next"></a>

<div class="dots" id="dots">

<span class="active"></span>

<span></span>

<span></span>

</div>

</div>

<script src="js/script.js"></script>

</body>

</html>

css:

*

{

padding:0;

margin:0;

}

.fl

{

float:left;

}

.main

{

height:460px;

width:1200px;

margin:30px auto;

overflow:hidden;

position:relative;

}

.banner

{

height:460px;

width:1200px;

overflow:hidden;

position:relative;

}

.slide

{

height:460px;

width:4800px;

position:absolute;

}

.slide li

{

height:460px;

width:1200px;

}

.slide li img

{

height:460px;

width:1200px;

}

.button

{

position:absolute;

width:40px;

height:80px;

left:0px;

top:50%;

margin-top: -40px;

background:url("../img/arrow.png")no-repeat center center;

}

.button:hover

{

background-color:#333333;

opacity:0.8;

filter:alpha(opacity=80);

}

.prev

{

transform:rotate(180deg);

}

.next

{

left:auto;

right:0;

}

.dots

{

position:absolute;

right:20px;

bottom:24px;

text-align:right;

}

.dots span

{

display:inline-block;

width:12px;

height:12px;

border-radius:50%;

background:rgba(7,17,27,0.4);

margin-left:8px;

line-height:12px;

box-shadow:0 0 0 2px rgba(255,255,255,0.8)inset;

cursor:pointer;

}

.dots span.active

{

box-shadow:0 0 0 2px rgba(7,17,27,0.4)inset;

background-color:#ffffff;

}

js部分:

function byId(id) {

return typeof (id) ==="string"?document.getElementById(id):id;

}

var main =byId("main"),

slide =byId("slide"),

prev =byId("prev"),

next =byId("next"),

dots =byId("dots"),

len =slide.children.length,

width =main.offsetWidth,

rate =15,

gap =3000,

timer =null,

point =0,

index =0;

function roll(distance) {/* 滚动实现函数 */

    clearInterval(slide.timer);

var speed =slide.offsetLeft < distance ?rate : (0-rate);

slide.timer =setInterval(function () {

slide.style.left =slide.offsetLeft +speed +"px";

var leave = distance -slide.offsetLeft;

if (Math.abs(leave) <=Math.abs(speed))

{

clearInterval(slide.timer);

slide.style.left = distance +"px";

}

},10);

}

slide.appendChild(slide.children[0].cloneNode(true));/* 在末尾克隆第一张图片 */

function autoRun() {

if (index >len)

{

slide.style.left =0;

index =1;

}

else if(index <0)

{

slide.style.left = -len*width +"px";

index =len-1;

}

roll(-index*width);

for(var i=0;i

    {

dots.children[i].className ="";

}

if (index ==3)

{

dots.children[0].className ="active";

}

else

    {

dots.children[index].className ="active";

}

}

function slideImg() {

prev.onclick =function () {/* 前进---后退按钮设置 */

        index--;

autoRun();

}

next.onclick =function () {

index++;

autoRun();

}

for (var j=0;j

{

dots.children[j].id ="d" +j;

dots.children[j].onclick =function () {

var str =this.id;

str =str.substr(1);

index =str;

autoRun();

}

}

main.onmouseover =function () {

clearInterval(timer);

}

main.onmouseout =function () {

timer =setInterval(function () {

index++;

autoRun();

},gap)

}

}

slideImg();

虽然做是做完了。。。但是还是有很多不理解的地方,并且还有一些奇怪的鬼畜情况。。。之后还是要陆续解决的o(╥﹏╥)o

相关文章

  • 简易轮播图实现——乞丐加强版(终于能滚动了。。。)

    前几天做了一个很简单的轮播图,但是它是通过给图片加上display属性的方法去实现轮播的,所以不能滚。。。 ̄□ ̄|...

  • 简易轮播图实现——乞丐版

    前几天刚学到了一种最简单的轮播图实现方法,现在写在博客里就当是练习了。。。这种方法的核心原理是通过给图片元素附加d...

  • 三种样式的轮播图

    一、100%比例轮播图 HTML代码 CSS样式 js代码 二、手动箭头轮播图 三、简易轮播图

  • React 实现简易轮播图

    使用 ReactJS 实现一个简易的轮播图 (carousel) 组件。 Task 1:在相框中展示图片,左右按钮...

  • 传统&呼吸 轮播

    传统的轮播图 一个 carousel 轮播图,图片实现自动轮播,可以左右按钮播放,点小圆点也能实现换图。同时设置节...

  • 轮播图心得

    轮播图 写轮播图之前我们要认识到几个问题:一、什么是轮播图?二、怎么实现轮播效果?三、轮播图还有什么小功能可以实现...

  • 造轮子系列--撸一个轮播图

    PictureCarousel 先上效果图: 可以看到,我们实现了一个简易的图片轮播器。下面我们从设计到实现一步一...

  • iOS简易轮播图的实现

    前言 见过很多的iOS应用,都有无限轮播图,之前也看到过很多相关实现的文章,可是仅仅就是一看而过罢了。当自己在项目...

  • JS实现超简易轮播图

    0.示例 预览地址: https://codepen.io/klren0312/full/ymvEbr 1.画界面...

  • iOS功能技术索引

    1.iOS上简易轮播图的实现 2.自定义UICollection View,这篇文章来自ObjC中国 3.moda...

网友评论

      本文标题:简易轮播图实现——乞丐加强版(终于能滚动了。。。)

      本文链接:https://www.haomeiwen.com/subject/lccmtqtx.html