iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >原生javascript实现图片轮播切换效果
  • 936
分享到

原生javascript实现图片轮播切换效果

2024-04-02 19:04:59 936人浏览 安东尼
摘要

本文实例为大家分享了javascript实现图片轮播切换效果的具体代码,供大家参考,具体内容如下 效果如下: 代码部分: <!DOCTYPE html> <htm

本文实例为大家分享了javascript实现图片轮播切换效果的具体代码,供大家参考,具体内容如下

效果如下:

代码部分:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta Http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        *{margin:0;padding:0;}
        #banner{position:relative;width:400px;height:200px;margin:50px auto;overflow: hidden;}
        #banner .box{width:400px;height:200px;overflow: hidden;}
        #banner .box li img{width:400px;height:200px;overflow: hidden;}
        #banner .box li{display:none;}
        #banner .box li.active{display:block;}
        #banner .static{position:absolute;bottom:0;height:30px;width:390px;padding-right:10px;text-align:right;}
        #banner .static span{display:inline-block;width:20px;height:20px;margin:0 2px;line-height:20px;text-align:center;background:#fff;cursor:default;}
        #banner .static span.active{background:blue;color:#fff;}
        #banner .btn{position:absolute;top:80px;height:40px;width:20px;color:#fff;line-height:40px;text-align:center;background:#000;opacity:.75;cursor:default;}
        #banner .next.btn{right:0;}
</style>
</head>
<body>
    <div id="banner">
        <div class="box">
            <ul>
                <li class="active">
                    <a href="#">
                        <img src="img/banner.jpg"/>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/banner01.jpg"/>
                    </a>
                </li>
                <li class="">
                    <a href="#">
                        <img src="img/banner02.jpg"/>
                    </a>
                </li>
                <li>
                    <a href="#">
                        <img src="img/banner03.jpg"/>
                    </a>
                </li>
            </ul>
        </div>
        <div class="static">
            <span class="active">1</span>
            <span>2</span>
            <span>3</span>
            <span>4</span>
        </div>
        <div class="prev btn"><</div>
        <div class="next btn">></div>
    </div>

    <script>
        //切换样式
        function toggleClass(elem, classStr){
            if(elem.className){
                if(elem.className.indexOf(classStr) > -1){
                    elem.className = elem.className.replace(classStr,"");
                }else{
                    elem.className = elem.className + " " + classStr;
                }
            }else{
                elem.className = classStr;
            }
        }

        //获取元素所在兄弟元素的索引
        function getIndex(elem){
            var index;
            var childnodes = elem.parentNode.childNodes;
            //获取子元素的元素节点
            function childElem(){
                var result = [];
                for(var i = 0, len = childNodes.length; i < len; i++){
                    if(childNodes[i].nodeType == 1){
                        result.push(childNodes[i]);
                    }
                }
                return result;
            }
            //判断元素与子元素是否相等
            var child = childElem(elem);
            for(var j = 0, lenj = child.length; j < len; j++){
                if(child[j] == elem){
                    index = j;
                }else{
                    console.error("没有找到相应的子元素!");
                }
            }
            //返回索引
            return index;
        }

        //dom选择器
        function $(selector){
            return document.querySelector(selector);
        }

        function $$(selector){
            return document.querySelectorAll(selector);
        }


        //对象参数
        var int = {
            num: null,
            speed: null,
            timerId: null
        };
        var liItem = $$("#banner .box li");
        var static = $$("#banner .static span"); 
        var btn = $$("#banner .btn");


        //初始化默认值
        var activeNum = 1;
        int.num = liItem.length;
        int.speed = 3000;

        //切换动作
        function toggleItem(num){
            toggleClass($("#banner .box li.active"), "active");
            toggleClass($("#banner .static span.active"), "active");
            //添加下一个激活选项
            toggleClass(liItem.item(num), "active");
            toggleClass(static.item(num), "active");
        }

        function autoPlay(){

            int.timerId = setInterval(function(){
                if(activeNum < int.num){
                    toggleItem(activeNum);
                    activeNum++;
                }else{
                    activeNum = 0;
                    toggleItem(activeNum);
                    activeNum++;
                }
            },int.speed);
        }

        //定时轮播
        autoPlay();

        //状态点鼠标移入移出效果
        for(var i = 0, len = static.length; i < len; i++){

            //匿名传参避免产生闭包得不到想要的效果
            (function(j){

                //鼠标移入效果
                static.item(j).onmouseenter = function(){
                    //停止动画
                    clearInterval(int.timerId);
                    var index = getIndex(this);
                    toggleItem(index);
                }

                //鼠标移出效果
                static.item(j).onmouseleave = function(){
                    //开始动画
                    autoPlay();
                }

            })(i);

        }

        for(var k = 0, lenk = btn.length; k < lenk; k++){
            //上下张按钮移入移出效果
            btn.item(k).onmouseenter = function(){
                clearInterval(int.timerId);
            }

            btn.item(k).onmouseleave = function(){
                autoPlay();
            }
        }

        //单价击上一张
        $(".prev.btn").onclick = function(){
            if(activeNum > 0){
                activeNum--;
                toggleItem(activeNum);
            }else{
                activeNum = 3;
                toggleItem(activeNum);
            }
        }

        //单击下一张
        $(".next.btn").onclick = function(){
            if(activeNum < int.num){
                toggleItem(activeNum);
                activeNum++;
            }else{
                activeNum = 0;
                toggleItem(activeNum);
                activeNum++;
            }

        }

    </script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 原生javascript实现图片轮播切换效果

本文链接: https://www.lsjlt.com/news/154278.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 原生javascript实现图片轮播切换效果
    本文实例为大家分享了javascript实现图片轮播切换效果的具体代码,供大家参考,具体内容如下 效果如下: 代码部分: <!DOCTYPE html> <htm...
    99+
    2022-11-13
  • js实现图片轮播切换效果
    最近在b站上学习的时候,学到了一个用原生js实现图片轮播切换效果的实战,码下来收藏 上图是这个小实战的效果图,整个小实战所实现的功能是图片自动轮播切换、点击上下键图片切换上下图片、...
    99+
    2022-11-13
  • 原生JavaScript实现轮播图效果
    本文实例为大家分享了JavaScript实现轮播图效果的具体代码,供大家参考,具体内容如下 一、功能: 1、每隔2.5s自动切换下一张轮播图; 2、底部按钮切换对应轮播图; 3、鼠标...
    99+
    2022-11-12
  • 原生javascript+CSS实现轮播图效果
    本文实例为大家分享了javascript+CSS实现轮播图效果的具体代码,供大家参考,具体内容如下 1.html <ul id="banner" ></ul&g...
    99+
    2022-11-12
  • JavaScript实现首页图片轮播图效果
    目录一、轮番图二、源码展示设置body样式设置实现轮番一、轮番图 效果展示: 轮播图是指在一个模块或者窗口,通过鼠标点击或手指滑动后,可以看到多张图片。这些图片统称为轮播图,这个模...
    99+
    2022-11-13
  • vue自定义js图片碎片轮播图切换效果怎么实现
    这篇文章给大家分享的是有关vue自定义js图片碎片轮播图切换效果怎么实现的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。定义一个banner.js文件,代码如下;window.re...
    99+
    2022-10-19
  • javascript实现图片轮播简单效果
    本文实例为大家分享了javascript实现图片轮播简单效果的具体代码,供大家参考,具体内容如下 这里是css样式  * {      margin: 0;  padding...
    99+
    2022-11-13
  • 原生js实现简单轮播图效果
    本文实例为大家分享了js实现简单轮播图效果的具体代码,供大家参考,具体内容如下 效果如下: 分析: 分析效果: 分析实现: 1、通过 document.querySelecto...
    99+
    2022-11-12
  • Android实现图片轮播效果
    本文实例讲述了JaAndroid实现图片轮播效果代码,分享给大家供大家参考。具体如下: 运行效果截图如下: 具体代码如下: 首先看下一下布局文件: <Relative...
    99+
    2022-06-06
    图片 轮播 Android
  • 原生JS实现简单的轮播图效果
    本文实例为大家分享了JS实现简单的轮播图效果的具体代码,供大家参考,具体内容如下 实现效果: 功能需求: 1.鼠标经过轮播图模块,左右按钮显示,离开隐藏左右按钮 2.点击右侧按钮一...
    99+
    2022-11-13
  • JavaScript如何实现首页图片轮播图效果
    这篇文章主要介绍“JavaScript如何实现首页图片轮播图效果”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何实现首页图片轮播图效果”文章能帮助大家解决问题。一、轮番图效果展...
    99+
    2023-07-02
  • Android ViewPager实现图片轮播效果
    在app中图片的轮播显示可以说是非常常见的实现效果了,其实现原理不过是利用ViewPager,然后利用handler每隔一定的时间将ViewPager的currentItem设...
    99+
    2022-06-06
    图片 viewpager 轮播 Android
  • JS原生手写轮播图效果
    目录前言一、手写初级轮播图功能分析实现思路二、优化轮播图增加的功能实现要点三、继续优化思路本文实例为大家分享了JS原生手写轮播图效果的具体代码,供大家参考,具体内容如下 前言 本系列...
    99+
    2022-11-13
    JS 轮播图
  • Android实现图片轮播切换实例代码
    利用Android的ViewFlipper和AnimationUtils实现图片带有动画的轮播切换,其中当点击“上一张”图片时,切换到上一张图片;当点击“下一张”图片时,切换到...
    99+
    2022-06-06
    图片 轮播 Android
  • 用JavaScript实现轮播图效果
    本文实例为大家分享了JavaScript实现轮播图效果的具体代码,供大家参考,具体内容如下 实现代码: <!DOCTYPE html> <html lang=...
    99+
    2022-11-12
  • 原生js如何实现无缝轮播图效果
    这篇文章主要介绍了原生js如何实现无缝轮播图效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。请看代码<!DOCTYPE h...
    99+
    2022-10-19
  • 原生JavaScript轮播图实现方法
    本文实例为大家分享了JavaScript轮播图的实现方法,供大家参考,具体内容如下 效果截图: ​注:div容器大小和图片路径可以自行设置,添加img和a标签后浏览器可以...
    99+
    2022-11-12
  • 微信小程序(原生)——轮播图swiper、1秒切换、自动轮播、无缝切换
    一、简介 微信小程序的轮播图制作,且图片不变形。1秒切换、自动轮播、无缝切换 二、案例演示 三、案例代码 index.wxml文件: ...
    99+
    2023-09-02
    微信小程序 小程序
  • 使用CSS3怎么实现一个切片式图片轮播效果
    使用CSS3怎么实现一个切片式图片轮播效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。css是什么意思css是一种用来表现HTML或XML等文件样式的计算机语...
    99+
    2023-06-08
  • 使用微信小程序实现轮播图切换效果
    使用微信小程序实现轮播图切换效果微信小程序是一种轻量级的应用程序,具有简单、高效的开发和使用特点。在微信小程序中,实现轮播图切换效果是常见的需求。本文将介绍如何使用微信小程序实现轮播图切换效果,并给出具体的代码示例。首先,在微信小程序的页面...
    99+
    2023-11-21
    轮播图 微信小程序 切换效果
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作