原生Js_实现图片轮播功能功能

  用javascript图片轮播功能功能

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>图片轮播</title>
        <style>
            #swaper{
                width: 520px;
                margin: 0 auto;
            }
            #number{
                position: relative;
                top: -30px;
                right: -320px;
            }
            label{
                width: 10px;
                height: 10px;
                background-color: yellow;
                margin: 2px;

            }
            .active{
                width: 10px;
                height: 10px;
                border: 1px solid black;
                background-color: red;
            }
        </style>
        <script>
            //此处编写代码,实现图片轮播功能

        </script>
    </head>
    <body>
        <div id="swaper">
            <img src="img/pic01.jpg" width="512px" id="img">
            <div id="number">
                <label id="l1" class="active">&nbsp;1&nbsp;</label>
                <label id="l2">&nbsp;2&nbsp;</label>
                <label id="l3">&nbsp;3&nbsp;</label>
                <label id="l4">&nbsp;4&nbsp;</label>
                <label id="l5">&nbsp;5&nbsp;</label>
                <label id="l6">&nbsp;6&nbsp;</label>
            </div>
        </div>
    </body>
</html>

  (第4和第5张图片是一样的,最下方有看鼠标点击时控制台输出的信息)

        <script>
            //此处编写代码,实现图片轮播功能
            var n =0;
            var t =0;
            var oDiv = document.getElementById(‘number‘);
            var labels = document.getElementsByTagName(‘label‘);
            window.onload = function(){
                //加载页面时开始触发图片轮播
                t=setTimeout(GaryShowPic,1000);
                for(var i = 0;i<labels.length;i++){
                    //鼠标放置到下标上时
                    labels[i].onmouseover = function(){
                        //停止计时器
                        clearTimeout(t);
                        var b = this.innerText*1;
                        img.src = ‘img/pic0‘+b+‘.jpg‘;
                        //制空所有图片的style
                        for(var i=0;i<labels.length;i++){
                        labels[i].className=‘‘;
                        }
                        this.className = ‘active‘
                    }
                    //鼠标离开时
                    labels[i].onmouseout=function(){
                        //得到计数器文本下标,返回值是string类型
                        n=this.innerText*1;
                        //重新开始计时器
                        t=setTimeout(GaryShowPic,1000);
                    }
                }

                function GaryShowPic(){
                    n++;
                    if(n>6){n=1;}
                    //制空所有图片的style
                    for(var i=0;i<labels.length;i++){
                    labels[i].className=‘‘;
                    }
                    labels[n-1].className=‘active‘;
                    document.getElementById(‘img‘).src=‘img/pic0‘+n+‘.jpg‘;
                    t=setTimeout(GaryShowPic,1000);
                    }
                }
        </script>

Gary.Script

实现过程

  Window setInterval() 方法  传送门

  setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式

  setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数

  (如果只想执行一次可以使用 setTimeout() 方法)

  clearTimeout() 方法可取消由 setTimeout() 方法设置的定时操作。

  clearTimeout() 方法的参数必须是由 setTimeout() 返回的 ID 值。

  (要使用 clearTimeout() 方法, 在创建执行定时操作时要使用全局变量)

  t作为setInterval() 返回的 ID 值并且要使用clearTimeout(),开全局变量

    //作为轮播图片下标签
    var n =0;
    //由 setInterval() 返回的 ID 值
    var t =0;

  播放图片方法

                function GaryShowPic(){
                    n++;
                    if(n>6){n=1;}
                    //制空所有图片的style
                    for(var i=0;i<labels.length;i++){
                    labels[i].className=‘‘;
                    }
                    labels[n-1].className=‘active‘;
                    document.getElementById(‘img‘).src=‘img/pic0‘+n+‘.jpg‘;
                    t=setTimeout(GaryShowPic,1000);
                    }

  鼠标放置到下标上时

  labels[i].onmouseover = function(){
                        //停止计时器
                        clearTimeout(t);
                        //显示当前标签表示的图片
                        var b = this.innerText*1;
                        img.src = ‘img/pic0‘+b+‘.jpg‘;
                        //制空所有图片的style
                        for(var i=0;i<labels.length;i++){
                        labels[i].className=‘‘;
                        }
                        //将当前标签显示为红色
                        this.className = ‘active‘
                    }

  鼠标离开下标时,重新开始计时器

labels[i].onmouseout=function(){
                        //得到计数器文本下标,返回值是string类型
                        n=this.innerText*1;
                        //重新开始计时器
                        t=setTimeout(GaryShowPic,1000);
                    }

JavaScript中innerText和innerHTML的区别  传送门

innerText返回或者设置DOM元素的文本

innerHTML 返回或者设置DOM元素的子元素

返回元素上:  忽略和不忽略Html标签的区别

innerHTML:

  从对象的起始位置到终止位置的全部内容,包括Html标签

innerText:

  从起始位置到终止位置的内容, 但它去除Html标签

=================================分割线

使用console.log()在控制台中查看输出信息

  在鼠标触碰事件中添加 console.log("鼠标触碰到的下标值为"+b) 查看鼠标触碰到的数值

//鼠标触碰到标签上时
                    labels[i].onmouseover = function(){
                        //停止计时器
                        clearTimeout(t);
                        //显示当前标签表示的图片
                        var b = this.innerText*1;
                        console.log("鼠标触碰到的下标值为"+b);
                        img.src = ‘img/pic0‘+b+‘.jpg‘;
                        //制空所有图片的style
                        for(var i=0;i<labels.length;i++){
                        labels[i].className=‘‘;
                        }
                        //将当前标签显示为红色
                        this.className = ‘active‘
                    }

  在GaryShowPic()中添加 console.log(labels[n-1]) 查看所显示标签的信息

function GaryShowPic(){
                    n++;
                    if(n>6){n=1;}
                    //制空所有图片的style
                    for(var i=0;i<labels.length;i++){
                    labels[i].className=‘‘;
                    }
                    labels[n-1].className=‘active‘;
                    console.log(labels[n-1]);
                    document.getElementById(‘img‘).src=‘img/pic0‘+n+‘.jpg‘;
                    t=setTimeout(GaryShowPic,1000);
                    }

  console.log("鼠标触碰到的下标值为"+b)调试台输出的值是我们想要的

  console.log(labels[n-1])输出来的值就是下面body中的值

            <div id="number">
                <label id="l1" class="active">&nbsp;1&nbsp;</label>
                <label id="l2">&nbsp;2&nbsp;</label>
                <label id="l3">&nbsp;3&nbsp;</label>
                <label id="l4">&nbsp;4&nbsp;</label>
                <label id="l5">&nbsp;5&nbsp;</label>
                <label id="l6">&nbsp;6&nbsp;</label>
            </div>

  可以看到,实现的轮播图改变的只是所指向的label id 标签值的class="active"

  

原文地址:https://www.cnblogs.com/1138720556Gary/p/9743344.html

时间: 2024-10-04 11:14:58

原生Js_实现图片轮播功能功能的相关文章

原生js实现图片轮播效果

思路:设置父容器(一定宽度,一定高度,相对定位,子容器超出部分进行隐藏),子容器图片并排(浮动,绝对定位,每次点击进行相应的左或右偏移量) 1.html: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Carousel figure</title> 5 <meta charset="utf-8"> 6 <!-- 浏览器标签页显示图标 --> 7 <lin

js原生代码之图片轮播

话不多说说,直接上代码: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script src="./public/js/jquery-1.11.2-min.js">&l

基于原生js的图片轮播效果简单实现

基本效果如下: 实现了三张图片自动轮播+按键点击切换的效果. 基本思想: 图片轮播的效果和老式电影院的胶片放映形式很相似,在老式的电影院放映中,使用长长的胶片记录影片,胶片上是按顺序排列的一系列图片,通过快速通过放映机放映口,使这些图片产生一个连贯的切换效果,形成了动态的影片.所以,这里图片轮播的形式也可以采用这种方式来形成动画效果. 形式如下图: (黑框即我们的最外层的容器,充当放映机的存在:绿框就是胶片,上面搭载着很多的图片:粉框内即我们要轮播的图片) 从上图出发,我们要做到图片轮播,那么只

原生Javascript实现图片轮播效果

首先引入js运动框架 1 function getStyle(obj,name){ 2 if(obj.currentStyle){ 3 return obj.currentStyle[name]; 4 } else{ 5 return getComputedStyle(obj,false)[name]; 6 } 7 } 8 9 function startMove(obj, json, fnEnd) { 10 clearInterval(obj.timer); 11 obj.timer = se

原生JS实现图片轮播

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>大图滚动</title> <style type="text/css"> *{ margin:0; padding:0; border:0; } .clear{ *zoom:1; } .clear:after{ visibil

使用javascript,jquery实现的图片轮播功能

使用javascript,jquery实现的图片轮播功能本功能采用最基础的javascript和一些简单的jquery技术实现,易理解,以修改使用,代码简易,适合刚开始接触到网站开发的朋友们参考.可以直接把代码copy下来,放入一个html 文件即可,然后把jquery文件放在同一个文件夹下就可以了.文件下载地址:http://download.csdn.net/detail/xyytcs/5037545 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1

javascript 实现图片轮播和点击切换功能

图片轮播是网页上一个比较常见的功能,下面我们来实现他吧 原理很简单: 1:固定的区域,所有的图片重叠,一次只能显示一张图片 2:通过改变图片的zIndex属性改变显示的图片,就可以达到切换的效果了 <!-- cycle_pic.html --> <!DOCTYPE html> <html> <head> <title>cycle_pic</title> <meta charset="utf-8"> &l

用angularjs模仿魅族官网的图片轮播功能

使用指令模仿魅族官网的图片轮播功能(angularjs中DOM操作都在指令中完成) html <div class="slider" broadcast> <div class="slider-wrap"> <div class="slider-1 page"></div> <div class="slider-2 page"></div> <div

【iOS开发-62】自定义cell制作团购页面、顶部图片轮播、底部模拟加载更多功能,核心是练习代理模式

(1)效果 (2)案例源代码免费下载 团购页面+iOS源代码+头部广告轮播+底部加载更多 (3)补充 在源代码中,有一处瑕疵:就是因为是单线程,所以在上下拖动页面的时候,上面的图片轮播会停止.所以我们需要兼顾,解决方案,把定时器加到当前的runLoop中. 即在WPTgHeaderView.m的playOn方法中添加一行代码: -(void)playOn{ timer=[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector