精华内容
下载资源
问答
  • 原生js轮播图

    2018-07-02 22:40:13
    原生js写的轮播图,样式写的很好看.参考了大多数网站的轮播图样式和功能,实现方法简单巧妙,注释也比较丰富.
  • 主要介绍了支持移动端原生js轮播图的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本代码主要使用js实现网页前端上常用轮播图,代码中含有清晰注释。
  • vue原生js轮播图组件,轮播图我一开始是写成非插件形式实现的效果,后来才改成了封装成插件的形式。纯js实现,引入到项目中,直接调用组件即可使用,方便快捷
  • 原生JS实现无缝滚动轮播图,使用相对定位进行无缝滚动,五张图的轮播只需五张图
  • 主要为大家详细介绍了原生JS实现图片轮播切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 原生js轮播图自动切换代码是一款可以自动播放,支持左右切换,支持右下角点击切换,鼠标移动到上面去,自动停止播放,移除后自动开始轮播。
  • 本文实例为大家分享了js实现点击轮播切换图片的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>点击轮播图</title> </...
  • 主要为大家详细介绍了原生js实现无缝轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 原生JS轮播图插件

    2020-10-20 11:33:10
    本文主要介绍了原生JS轮播图插件。具有很好的参考价值,下面跟着小编一起来看下吧
  • 主要介绍了使用Require.js封装原生js轮播图的实现代码,需要的朋友可以参考下
  • 本文主要介绍了原生js实现无限循环轮播图效果的示例代码。具有很好的参考价值,下面跟着小编一起来看下吧
  • 原生js轮播图.zip

    2021-10-21 16:24:13
    原生js轮播图.zip
  • 本文件属于文章《js原生代码实现简单的轮播图实例教程》的完整代码,在读完原创文章之后可以下载查看代码。代码中有详细的注释说明。html、css、js代码都在同一个文件中。也可以供有需要的朋友在开发中直接使用。
  • 详细描述了怎样去用原生js轮播图,有左右切换按钮以及导航按钮,无缝连接,没有空白。描述了我在写轮播图过程中遇到的一些问题以及解决方法,希望能和大家一起讨论。
  • 原生js轮播图自动切换代码是一款可以自动播放,支持左右切换,支持右下角点击切换,鼠标移动到上面去,自动停止播放,移除后自动开始轮播。
  • 原生js轮播图制作.zip

    2021-01-31 10:55:43
    适合初学js的同学
  • 使用原生javascript实现图片轮播淡入淡出和滚动两种效果
  • HTML+原生js轮播图

    2021-08-13 11:50:26
    HTML+原生js轮播图简易实现
  • js原生实现轮播图无限轮播,支持手势操作
  • 主要介绍了原生js实现移动端Touch轮播图的方法步骤,touch轮播图其实就是通过手指的滑动,来左右切换轮播图,touch轮播图其实就是通过手指的滑动,来左右切换轮播图
  • js带时间轴的图片轮播切换代码,在各类网站banner图,实现的轮播切换,这个带时间轴的切换,不同于常见的轮播图切换
  • 原生js代码轮播图.zip

    2020-03-16 21:24:29
    原生js简单写的一个轮播图,代码里有详细的注释,简单的一个原生js轮播图效果,欢迎大佬指点江山,如果有萌新不懂的地方欢迎私信;
  • 原生js图片轮播切换代码是一款带标题和索引左右按钮控制图片滚动轮播效果。
  • LHYFlash 原生 js 轮播图组件
  • 常见的轮播图有两种:移动距离轮播图和渐变切换轮播图,但是轮播图的代码都是差不太多的。这里就是给大家讲解的是渐变轮播图切换,下面有渐变轮播图的效果展示图。 轮播图的组成以及实现思想 轮播图的...

    目录

    前言

    轮播图的组成以及实现思想

    左右按钮的隐藏与显示

    核心思想 

    代码实现 

    动态生成底部小圆圈

    核心思想

    代码实现

             右左按钮实现

    核心思想

    代码实现

    实现自动播放

    核心思想

    代码实现

    整体代码(复制可用)

    总结


    前言

         常见的轮播图有两种:移动距离轮播图渐变切换轮播图,但是轮播图的代码都是差不太多的。这里就是给大家讲解的是渐变轮播图的切换,下面有渐变轮播图的效果展示图。

    轮播图的组成以及实现思想

    轮播图的组成图

    轮播图的组成图

    左右按钮的隐藏与显示

    核心思想 

          box(装整个轮播图的盒子)获得焦点的时候按钮style.display属性改为block失去焦点none。

    代码实现 

     //获取焦点显示
    box.addEventListener('mouseenter', function () {
            right.style.display = 'block';
            left.style.display = 'block';
        });
    
     //失去焦点隐藏
    box.addEventListener('mouseleave', function () {
            right.style.display = 'none';
            left.style.display = 'none';
        });

    动态生成底部小圆圈

    核心思想

         图片的数量动态生成小圆圈的数量,实现灵活控制。根据ul里的li的长度得到小圆圈的数量。

    代码实现

     for (var i = 0; i < ul_lis.length; i++) {
    
            var li = document.createElement('li');
            li.className = 'current';//current类是样式
            ol.appendChild(li);
    
            //添加注册事件  排他思想
            li.addEventListener('click', function () {
    
                for (var i = 0; i < ol.children.length; i++) {
                    ol.children[i].className = 'current';
    
                }
                this.className = 'current white';
    
                var index = this.getAttribute('index');
               
    
                num = index;
                circle = index;
            });
    
        }
        ol.children[0].className = 'current white';//默认第一个为白色底

     右左按钮实现

    核心思想

         给ol添加一个index属性,以便于获取当前属于第几张图片(ol 和 ul 里面的 li 数量是一致的)。给左按钮添加一个点击事件,根据num(num由index赋值过来)跳转下一张图;设置flag(节流阀)保证是一次跳转完成之后才可以实现下一次的跳转。

    代码实现

     //TRUE 深拷贝 复制内容且复制标签
        var first = ul.children[0].cloneNode(true);
        ul.appendChild(first);
        // 2.点击右侧按钮一 次, 图片往左播放一张, 以此类推, 左侧按钮同理。
    
        right.addEventListener('click', function () {
            if (flag) {
                flag = false;
                if (num == ul.children.length - 1) {
                    num = 0;
                }
                num++;
                if (num == 4) { num = 0; }
                for (var i = 0; i < ol.children.length; i++) {
                    ul_lis[i].style.opacity = '0';
                }
                ul_lis[num].style.opacity = '1';
                flag = true;
    
                //变量控制小圆圈的变化
                circle++;
                if (circle == ol.children.length) {
                    circle = 0;
    
                }
    
                circlechange();
            }
    
        });
    
        left.addEventListener('click', function () {
    
            if (flag) {
                flag = false;
                //实现无缝滚动
                if (num == 0) {
                    num = ul.children.length - 1;
    
                }
                num--;
                if (num == -1) { num = 4; }
                for (var i = 0; i < ol.children.length; i++) {
                    ul_lis[i].style.opacity = '0';
                }
                ul_lis[num].style.opacity = '1';
                
                flag = true;//一次只执行完毕才可以点击下一次
                //变量控制小圆圈的变化
                circle--;
                if (circle < 0) {
                    circle = ol.children.length - 1;
                }
    
                circlechange();
            }
    
        });
    
    });
    
    
    function circlechange() {
            for (var i = 0; i < ol.children.length; i++) {
                ol.children[i].className = 'current';
            }
            ol.children[circle].className = 'current white';
        };
    

    实现自动播放

    核心思想

         定时器实现,默认是显示下一张右边的图。每隔一段时间,往右一下。鼠标放在box上清除定时器,移开启动定时器。

    代码实现

    box.addEventListener('mouseenter', function () {
            clearInterval(timer);
            timer = null;
        });
    box.addEventListener('mouseleave', function () {
            timer = setInterval(function () {
                right.click();
            }, 2000);
        });
    var timer = setInterval(function () {
            right.click();
        }, 2000);
    

    整体代码(复制可用)

    <!DOCTYPE html>
    <html lang="zn">
    
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>网页轮播图案例</title>
        <script>
            window.addEventListener('load', function () {
                var box = document.querySelector('.box');
                var right = box.querySelector('.right');
                var left = box.querySelector('.left');
                var ul = box.querySelector('ul');
                var ul_lis = ul.querySelectorAll('li');
                var ol = box.querySelector('ol');
                var num = 0;
                var circle = 0;
                var flag = true;
    
    
                // 1.鼠标经过轮播图模块, 左右按钮显示, 离开隐藏左右按钮。
                box.addEventListener('mouseenter', function () {
                    right.style.display = 'block';
                    left.style.display = 'block';
                    clearInterval(timer);
                    timer = null;
                });
                box.addEventListener('mouseleave', function () {
                    right.style.display = 'none';
                    left.style.display = 'none';
                    timer = setInterval(function () {
                        right.click();
                    }, 2000);
                });
                var timer = setInterval(function () {
                    right.click();
                }, 2000);
    
                //2.动态生成小圆圈 
                for (var i = 0; i < ul_lis.length; i++) {
    
                    var li = document.createElement('li');
                    li.className = 'current';
                    li.setAttribute('index', i);
                    ol.appendChild(li);
    
                    //添加注册事件  排他思想
                    li.addEventListener('click', function () {
    
                        for (var i = 0; i < ol.children.length; i++) {
                            ul_lis[i].style.opacity = '0';//排他思想:全部图片设置为透明
                            ol.children[i].className = 'current';
    
                        }
                        this.className = 'current white';
    
                        var index = this.getAttribute('index');
                        ul_lis[index].style.opacity = '1';//留下需要显示的图片
    
                        num = index;
                        circle = index;
                    });
    
                }
                ol.children[0].className = 'current white';
    
    
                //TRUE 深拷贝 复制内容且复制标签
                var first = ul.children[0].cloneNode(true);
                ul.appendChild(first);
                // 2.点击右侧按钮一 次, 图片往左播放一张, 以此类推, 左侧按钮同理。
    
                right.addEventListener('click', function () {
                    if (flag) {
                        flag = false;
                        if (num == ul.children.length - 1) {
                            num = 0;
                        }
                        num++;
                        if (num == 4) { num = 0; }
                        for (var i = 0; i < ol.children.length; i++) {
                            ul_lis[i].style.opacity = '0';
                        }
                        ul_lis[num].style.opacity = '1';
                        flag = true;
    
                        //变量控制小圆圈的变化
                        circle++;
                        if (circle == ol.children.length) {
                            circle = 0;
    
                        }
    
                        circlechange();
                    }
    
                });
    
                function circlechange() {
                    for (var i = 0; i < ol.children.length; i++) {
                        ol.children[i].className = 'current';
                    }
                    ol.children[circle].className = 'current white';
                };
    
                left.addEventListener('click', function () {
    
                    if (flag) {
                        flag = false;
                        //实现无缝滚动
                        if (num == 0) {
                            num = ul.children.length - 1;
    
                        }
                        num--;
                        if (num == -1) { num = 4; }
                        for (var i = 0; i < ol.children.length; i++) {
                            ul_lis[i].style.opacity = '0';
                        }
                        ul_lis[num].style.opacity = '1';
    
                        flag = true;//一次只执行完毕才可以点击下一次
                        //变量控制小圆圈的变化
                        circle--;
                        if (circle < 0) {
                            circle = ol.children.length - 1;
                        }
    
                        circlechange();
                    }
    
                });
    
            });
        </script>
    
        <style>
            * {
                margin: 0px;
                padding: 0px;
                list-style: none;
            }
    
            .box {
                position: relative;
                width: 810px;
                height: 540px;
                left: 50%;
                transform: translateX(-50%);
    
            }
    
            img {
                width: 810px;
                height: 540px;
            }
    
            ul li {
                position: absolute;
                top: 0px;
                left: 0px;
                opacity: 0;
                transition: 1s;
            }
    
            ul li:first-child {
                opacity: 1;
            }
    
            ul {
                width: 100%;
                position: absolute;
                top: 0px;
                left: 0px;
            }
    
            span {
                width: 20px;
                height: 40px;
                font-size: 25px;
                line-height: 40px;
                display: block;
                position: absolute;
                color: black;
                background-color: #ccc;
                opacity: .5;
                text-align: center;
                top: 50%;
                transform: translateY(-50%);
                cursor: pointer;
                display: none;
            }
    
            .right {
                right: 0px;
            }
    
            .left {
                left: 0px;
            }
    
            ol {
                position: absolute;
                left: 50%;
                z-index: 999;
                transform: translateX(-50%);
                bottom: 5px;
            }
    
            .current {
                float: left;
                display: block;
                width: 25px;
                height: 5px;
                background-color: rgb(41, 39, 39);
                margin-right: 10px;
                opacity: 0.5;
            }
    
            .white {
                background-color: #fff;
            }
        </style>
    </head>
    
    <body>
        <div class="box">
            <ul>
                <li>
                    <img src="../img/1.jpg" alt="">
                </li>
                <li>
                    <img src="../img/2.jpg" alt="">
                </li>
                <li>
                    <img src="../img/3.jpg" alt="">
                </li>
                <li>
                    <img src="../img/4.jpg" alt="">
                </li>
    
            </ul>
            <span class="right"> &gt; </span>
            <span class="left"> &lt; </span>
    
            <ol>
            </ol>
    
    
    
        </div>
    
    </body>
    
    </html>

    总结

           虽然现在很多时候轮播图可以直接板块套用,但是我们还是需要扎实的功底。毕竟学无止境!这里讲解的是大概的一个思路以及实现,轮播的大概思想 就是这个样子的。只是根据效果的不同需要稍微做一些修改啦~

    展开全文
  • 小白的我又来啦 !!! 下面呢 给大家 整一下 轮播图 不考虑兼容性的情况下 用transform劳作的方法 !

    小白的我又来啦  !!!

    下面呢  给大家 整一下 轮播图 不考虑兼容性的情况下 用transform操作的方法  !

    不多说直接上代码!

    首先是  我们的 结构   基本上都是大同小异 !!!

       <div class="banner">
            <!-- //轮播图 -->
            <ul>
                <li><img src="img/f3.jpg" alt=""></li>
                <li><img src="img/f1.jpg" alt=""></li>
                <li><img src="img/f2.jpg" alt=""></li>
                <li><img src="img/f3.jpg" alt=""></li>
                <li><img src="img/f1.jpg" alt=""></li>
            </ul>
            <!-- 小圆点 -->
            <ol>
                <li class="current"></li>
                <li></li>
                <li></li>
            </ol>
    
        </div>
    

    然后呢  是我们的c3

    * {
                margin: 0;
                padding: 0;
            }
            
            .banner {
                position: relative;
                margin-top: 44px;
                width: 100%;
                overflow: hidden;
            }
            
            .banner ul {
                width: 500%;
                margin-left: -100%;
            }
            
            .banner ul li {
                float: left;
                width: 20%;
            }
            
            .banner ul li img {
                width: 100%;
            }
            
            .banner ol {
                position: absolute;
                bottom: 10px;
                right: 10px;
            }
            
            .banner ol li {
                width: 5px;
                height: 5px;
                margin-left: 5px;
                float: left;
                background-color: #3707e7;
            }
            
            .banner img {
                width: 100%;
            }
            
            .banner .current {
                width: 10px;
                height: 5px;
            }

    精华 来了   js 代码  每一段 基本上都带注释的哟

    window.addEventListener('load', function() {
        var banner = document.querySelector('.banner'); //获取banner
        var ul = banner.children[0]; //获取ul
        var bannerW = banner.offsetWidth; //获取 banner的宽度
        var index = 0; //设置一个变量
        var ol = document.querySelector('ol'); //得到ol
        var flage = false;
        var timer = setInterval(function() {
                index++; //让 index++  来改变移动距离
                var traX = -index * bannerW; // 向左走    的距离
                ul.style.transition = 'all 1s' //渐变
                ul.style.transform = 'translateX(' + traX + 'px)'; //让ul移动
    
    
    
            }, 2000)
            //当渐变动画 结束时
        ul.addEventListener('transitionend', function() {
            if (index >= 3) {
                index = 0 //如果 index大于3  就让她等于0  回到原点
                var traX = -index * bannerW;
                ul.style.transition = 'none'; //不加 动画效果
                ul.style.transform = 'translateX(' + traX + 'px)'; //移动过来
            } else if (index < 0) {
                index = 2; //当他小于0   就让她 到最后一张的位置上
                var traX = -index * bannerW;
                ul.style.transition = 'none';
                ul.style.transform = 'translateX(' + traX + 'px)';
            }
            //小圆点变化
            ol.querySelector('.current').classList.remove('current'); //看看 ol里面有没有current有的话 就移除
            ol.children[index].classList.add('current'); //ol 里面 第index个 添加current
        })
    
        var starX = 0; //设置  手指动的初始位置
        var moveX = 0; //设置 移动的初始值
    
        ul.addEventListener('touchstart', function(e) {
            starX = e.targetTouches[0].pageX; //得到手指触摸的位置
            clearInterval(timer); //手指一碰 就清除定时器
        })
    
        ul.addEventListener('touchmove', function(e) {
            moveX = e.targetTouches[0].pageX - starX; //得到手指移动的距离
            var tx = moveX + (-index * bannerW); //得到  ul需要移动的距离
            ul.style.transition = 'none';
            ul.style.transform = 'translate(' + tx + 'px)';
            flage = true; //这里是一个 判断条件  如果 手指移动了就等true  没移动一直是false 不考虑下一步
            e.preventDefault(); //清除默认
        })
        ul.addEventListener('touchend', function() {
            if (flage) { //当它等于true 的时候
                if (Math.abs(moveX) > 50) { //当 移动的距离 的绝对值大于50px的时候
                    if (moveX > 0) { //因为可以左右滑动 向右滑的时候  他的值时大于0的 
                        index--; //所以  就让index--  也就是说  让 ul回到上一张图片的位置
                    } else {
                        index++; //同理  回到 下一张图片的位置  
                    }
                    var tx = -index * bannerW;
                    ul.style.transition = 'all 1s';
                    ul.style.transform = 'translate(' + tx + 'px)';
    
                } else { //当它  小于 50px 的时候 不做改变
                    var tx = -index * bannerW;
                    ul.style.transition = 'all .5s';
                    ul.style.transform = 'translate(' + tx + 'px)';
    
                }
                clearInterval(timer); //当你手指移开的时候先清除 定时器 
                timer = setInterval(function() {
                        index++;
                        var traX = -index * bannerW;
                        ul.style.transition = 'all 1s'
                        ul.style.transform = 'translateX(' + traX + 'px)';
    
    
    
                    }, 2000) //再添加定时器
            }
    
        })
    })

    好啦  今天的分享就到这里啦   希望能跟大家一同进步 

    我是小白  不足之处 多多指教!!!

    展开全文
  • 本文特意为原生js实现图片轮播特效代码做了下总结,分享给大家供大家参考,欢迎大家学习。 运行效果: 具体代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,735
精华内容 9,094
关键字:

原生js轮播图