原生js层叠图片轮播展示代码,js图片轮播效果实现代码

本文目录一览:

js原生代码实现轮播图

!DOCTYPE html

html lang=”en”

head

meta charset=”UTF-8″

title最简单的轮播广告/title

style

body, div, ul, li {

margin: 0;

padding: 0;

}

ul {

list-style-type: none;

}

body {

background: #000;

text-align: center;

font: 12px/20px Arial;

}

#box {

position: relative;

width: 492px;

height: 172px;

background: #fff;

border-radius: 5px;

border: 8px solid #fff;

margin: 10px auto;

}

#box .list {

position: relative;

width: 490px;

height: 170px;

overflow: hidden;

border: 1px solid #ccc;

}

#box .list li {

position: absolute;

top: 0;

left: 0;

width: 490px;

height: 170px;

opacity: 0;

transition: opacity 0.5s linear

}

#box .list li.current {

opacity: 1;

}

#box .count {

position: absolute;

right: 0;

bottom: 5px;

}

#box .count li {

color: #fff;

float: left;

width: 20px;

height: 20px;

cursor: pointer;

margin-right: 5px;

overflow: hidden;

background: #F90;

opacity: 0.7;

border-radius: 20px;

}

#box .count li.current {

color: #fff;

opacity: 0.7;

font-weight: 700;

background: #f60

}

/style

/head

body

div id=”box”

ul class=”list”

li class=”current” style=”opacity: 1;”img src=”img/images04/01.jpg” width=”490″ height=”170″/li

li style=”opacity: 0;”img src=”img/images04/02.jpg” width=”490″ height=”170″/li

li style=”opacity: 0;”img src=”img/images04/03.jpg” width=”490″ height=”170″/li

li style=”opacity: 0;”img src=”img/images04/04.jpg” width=”490″ height=”170″/li

li style=”opacity: 0;”img src=”img/images04/05.jpg” width=”490″ height=”170″/li

/ul

ul class=”count”

li class=”current”1/li

li class=””2/li

li class=””3/li

li class=””4/li

li class=””5/li

/ul

/div

script

var box=document.getElementById(‘box’);

var uls=document.getElementsByTagName(‘ul’);

var imgs=uls[0].getElementsByTagName(‘li’);

var btn=uls[1].getElementsByTagName(‘li’);

var i=index=0; //中间量,统一声明;

var play=null;

console.log(box,uls,imgs,btn);//获取正确

//图片切换, 淡入淡出效果我是用(transition: opacity 0.8s linear)做的,不纠结、简单 在css里面

function show(a){ //方法定义的是当传入一个下标时,按钮和图片做出对的反应

for(i=0;ibtn.length;i++ ){

btn[i].className=”; //很容易看懂吧?每个按钮都先设置成看不见,然后把当前按钮设置成可见。

btn[a].className=’current’;

}

for(i=0;iimgs.length;i++){ //把图片的效果设置和按钮相同

imgs[i].style.opacity=0;

imgs[a].style.opacity=1;

}

}

//切换按钮功能,响应对应图片

for(i=0;ibtn.length;i++){

btn[i].index=i; //不知道你有没有发现,循环里的方法去调用循环里的变量体i,会出现调到的不是i的变动值的问题。所以我先在循环外保存住

btn[i].onmouseover=function(){

show(this.index);

clearInterval(play); //这就是最后那句话追加的功能

}

}

//自动轮播方法

function autoPlay(){

play=setInterval(function(){ //这个paly是为了保存定时器的,变量必须在全局声明 不然其他方法调不到 或者你可以调用auto.play 也许可以但是没时间试了

index++;

index=imgs.length(index=0);//可能有优先级问题,所以用了括号,没时间测试了。

show(index);

},1000)

}

autoPlay();//马上调用,我试过用window.onload调用这个方法,但是调用之后影响到了其他方法,使用autoPlay所以只能这样调用了

//div的鼠标移入移出事件

box.onmouseover=function(){

clearInterval(play);

};

box.onmouseout=function(){

autoPlay();

};

//按钮下标也要加上相同的鼠标事件,不然图片停止了,定时器没停,会突然闪到很大的数字上。 貌似我可以直接追加到之前定义事件中。

/script

/body

/html

怎么用js的原生写法写出来一个轮播图呢?

1:排出一个版,包含上下切换的标识和图片导航,所有图片隐藏,给图片第一张加一个class名,样式设为显示,图片导航的第一个加一个class名,加上背景色;

2:获取节点;

3:给向下切换写一个点击事件,点击图片切换到下一张,注意当图片切换到最后一张的时候会报错,所以必须要判断一下,当图片切换到最后一张的时候在,再次击会切换到第一张;

4:给向上切换写一个点击事件,注意当图片切换到第一张之后会报错,所以必须要判断一下,当图片切换到第一的时候,再次点击会切换到最后张,循环起来;

5:写一个定时器,定时器的播放顺序和向下切换一致,可以封装一个函数方便调用;

6:写鼠标划入事件,清除定时器;

7:写鼠标移出事件,定时器继续运行;

8:图片导航的点击事件

点击事件click

定时器setlnterval()

if判断

for()循环

JS如何实现左右滚动轮播代码详细点

var datas = [

{imgSrc:”(图片 )”},

{imgSrc:”(图片 )”},

{imgSrc:”(图片 )”},

{imgSrc:”(图片 )”},

{imgSrc:”(图片 )”},

{imgSrc:”(图片 )”}

];

var banner = document.getElementById(“banner”);

var list = document.getElementById(“list”);

for(var i = 0,len = datas.length;ilen;i++){

var div = document.createElement(“div”);

var li = document.createElement(“li”);

if(i==0){ //默认第一项轮播项显示 对应的控制按钮被选中

div.className = “item active”;

li.className = “active”;

}else{ //其他项隐藏 其他的控制按钮样式不改变

div.className = “item”;

li.className = “”;

}

div.innerHTML = ‘a href=”‘ + datas[i].targetSrc + ‘”‘ +

‘img src=”‘ + datas[i].imgSrc + ‘” /’ +

‘/a’;

li.innerHTML = i + 1;

banner.appendChild(div);

list.appendChild(li);

}

var lunBo = document.getElementById(“lunBo”);

var items = document.querySelectorAll(“#lunBo #banner .item”);

var lis = document.querySelectorAll(“#lunBo #list li”);

var currentIndex = 0;//(控制按钮和轮播项共同的索引)

for(var i = 0,len = lis.length;ilen;i++){

lis[i].index = i;

lis[i].onmouseenter = function(){

currentIndex = this.index;

for(var j = 0;jlen;j++){

lis[j].className = “”;

items[j].className = “item”;

}

this.className = “active”;

items[this.index].className = “item active”;

}

}

var termId; //全局变量

function autoPlay(){

termId = setInterval(function(){

currentIndex++;

if(currentIndex==lis.length){

currentIndex = 0;

}

lis[currentIndex].onmouseenter();

},3000);

}

autoPlay();//打开页面自动轮播

//鼠标进入停止轮播

lunBo.onmouseenter = function(){

clearInterval(termId);

}

//鼠标离开继续轮播

lunBo.onmouseleave = function(){

autoPlay();

}

我这还有其他的,先采纳一下加我,我给你发

Js图片轮播思路

a href=””js图片轮播效果代码/a

首先我们需要引入一张图片,通过更改img标签中src的值,达到图片切换功能。

html代码:img src=”” width=”331″ height=”220″ id=”carousel”

在这我们需要理理自己的思路,一、图片从何而来 二、怎么样使图片轮播,能够动起来

自定义一个数组,将需要的图片存在中间,代码如下:

var arr=new Array();

arr[0]=’1.jpg’;

arr[1]=’2.jpg’;

arr[2]=’3.jpg’;

arr[3]=’4.jpg’;

接着我们需要能够对图片进行操作定义一个函数,

function tImg(){var obj=document.getElementById(‘carousel’);obj.src=”+arr[carIndex];}

准备好以后我们只需要获取数组的下标即可

定义初始化下标:var carIndex=0;

在函数中如果carIndex变量等于数组的字符串长度-1的情况下,赋给carIndex=0的初始数值。不是的情况下carIndex就+或者=1,代码如下:

function tImg(){

var obj=document.getElementById(‘carousel’);

if(carIndex==arr.length-1){

carIndex=0;}

else{

carIndex+=1;}

obj.src=”+arr[carIndex];obj.onmouseover=function(){

}

逻辑关系理清楚后我们下一步就是使他们动起来,我们需要引入setInterval来控制函数的时间,代码如下:

var time=setInterval(tImg,3000);函数3秒执行一次

做到这里我们已经能过使图片进行切换了。

用原生JS写的轮播效果,怎么让它有滑动的效果,不是直接切换

如果是朝左翻页,就把当前页朝左偏移100%的宽度,让下一页同样朝左偏移100%宽度。以下是代码部分:

html head lang=”en” meta charset=”UTF-8″ title/title style .banner{ width:300px; height:250px; position: relative; z-index: 100; background: skyblue; margin:100px auto; overflow:hidden ; } .banner .first{ left:0; } .banner a{ width: 100%; height: 100%; position: absolute; display:block; top:0; left:100%; } .banner a img{ width: 100%; height: 100%; } .banner .pre{ position: absolute; left:0; top:120px; background: gray; width:30px; height:30px; border-radius: 30px; line-height: 30px; text-align: center; opacity: 0.4; z-index: 1000; cursor: pointer; } .banner .next{ position: absolute; right:0; top:120px; background: gray; width:30px; height:30px; border-radius: 30px; line-height: 30px; text-align: center; opacity: 0.4; z-index: 1000; cursor: pointer; } .

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/162660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-21 22:46
下一篇 2024-11-21 22:46

相关推荐

  • JS Proxy(array)用法介绍

    JS Proxy(array)可以说是ES6中非常重要的一个特性,它可以代理一个数组,监听数据变化并进行拦截、处理。在实际开发中,使用Proxy(array)可以方便地实现数据的监…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python字符串宽度不限制怎么打代码

    本文将为大家详细介绍Python字符串宽度不限制时如何打代码的几个方面。 一、保持代码风格的统一 在Python字符串宽度不限制的情况下,我们可以写出很长很长的一行代码。但是,为了…

    编程 2025-04-29
  • Python基础代码用法介绍

    本文将从多个方面对Python基础代码进行解析和详细阐述,力求让读者深刻理解Python基础代码。通过本文的学习,相信大家对Python的学习和应用会更加轻松和高效。 一、变量和数…

    编程 2025-04-29
  • 用Python绘制酷炫图片

    在本篇文章中,我们将展示如何使用Python绘制酷炫的图片。 一、安装Python绘图库 在使用Python绘制图片之前,我们需要先安装Python绘图库。Python有很多绘图库…

    编程 2025-04-29
  • Python满天星代码:让编程变得更加简单

    本文将从多个方面详细阐述Python满天星代码,为大家介绍它的优点以及如何在编程中使用。无论是刚刚接触编程还是资深程序员,都能从中获得一定的收获。 一、简介 Python满天星代码…

    编程 2025-04-29
  • 仓库管理系统代码设计Python

    这篇文章将详细探讨如何设计一个基于Python的仓库管理系统。 一、基本需求 在着手设计之前,我们首先需要确定仓库管理系统的基本需求。 我们可以将需求分为以下几个方面: 1、库存管…

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Python实现简易心形代码

    在这个文章中,我们将会介绍如何用Python语言编写一个非常简单的代码来生成一个心形图案。我们将会从安装Python开始介绍,逐步深入了解如何实现这一任务。 一、安装Python …

    编程 2025-04-29
  • 怎么写不影响Python运行的长段代码

    在Python编程的过程中,我们不可避免地需要编写一些长段代码,包括函数、类、复杂的控制语句等等。在编写这些代码时,我们需要考虑代码可读性、易用性以及对Python运行性能的影响。…

    编程 2025-04-29

发表回复

登录后才能评论