iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js实现上下滑动轮播
  • 883
分享到

js实现上下滑动轮播

2024-04-02 19:04:59 883人浏览 独家记忆
摘要

本文实例为大家分享了js实现上下滑动轮播的具体代码,供大家参考,具体内容如下 一、效果图 二、设计思路 第一步:遍历所有的元素使得鼠标点击右侧小图时,图片变亮并且根据偏移值加上红框

本文实例为大家分享了js实现上下滑动轮播的具体代码,供大家参考,具体内容如下

一、效果图

二、设计思路

第一步:遍历所有的元素使得鼠标点击右侧小图时,图片变亮并且根据偏移值加上红框。点击右边的小图左边出现对用的图片。

第二步:利用循环计时器,克隆ul里面的第一个元素使得连续循环滑动。

第三步:鼠标进入时循环滑动停止,离开时继续。

第四步:设置上下按钮,当第一张图片的offsetTop值为0时,下面按钮出现,当到达底部最后一个元素时,上面按钮出现,底部按钮消失,当在整个元素中间时,上下按钮都出现,每点击一次按钮移动一个格子,左边图片也对应改变。

三、核心代码

//找到right-btn 元素添加事件
var righttBtnList;
var Line;
var transy = 0;
var liHeight = 430;
var ulItem;
var count = 0;
var timer;
var speed = 2000;
var Item;
var ItemMenu;
var offsetTop = 0;
var itemtabinfo, topBtn, bottomBtn;
    window.onload = function () {
        righttBtnList = document.getElementsByClassName("right-btn");
        Line = document.getElementsByClassName("line")[0];
        ulItem = document.getElementsByClassName("item-child-ul")[0];
        Item = document.getElementsByClassName("item-list")[0];
        ItemMenu = document.getElementsByClassName("item-menu")[0];
        itemtabinfo = document.getElementsByClassName("item-tab-info")[0];
        topBtn = document.getElementsByClassName("top-btn")[0];
        bottomBtn = document.getElementsByClassName("bottom-btn")[0];
        //默认复制第一张添加到ulItem之中
        ulItem.appendChild(ulItem.children[0].clonenode(true));
        //设置itemtabinfo 默认移动值
        itemtabinfo.style.transfORM = "translateY(" + offsetTop + "px)";
        //直接默认启动计时器
        Animate();
        //遍历所有的li添加事件
        for (var i = 0; i < righttBtnList.length; i++) {
            righttBtnList[i].index = i;
            righttBtnList[i].onclick = function () {
                //点击当前移除top-white
                if (checkClass(this, 'top-white')) {
                    this.classList.remove("top-white");
                    //其余的添加
                    addWhite(this.index);
                }
                //获取偏移值
                Line.style.top = ((this.index * 110 + 10) + offsetTop) + "px";
                //输出当前点击的索引
                ulItem.style.transform = "translateY(" + (-this.index * liHeight) + "px)";
                //用户点击的索引  对应count值
                count = this.index;
            }
        }

        Item.onmouseenter=function(){
            clearTimeout(timer);
        }
        Item.onmouseleave=function(){
            Animate();
        }
        topBtn.onclick = function () {
            offsetTop += 110;
            //获取原来的top
            var oldTop = parseFloat(Line.style.top);
            Line.style.top = (oldTop + 110) + "px";
            itemtabinfo.style.transform = "translateY(" + offsetTop + "px)";
            checkBtnShow();
        }
        bottomBtn.onclick = function () {
            offsetTop -= 110;
            //获取原来的top
            var oldTop = parseFloat(Line.style.top);
            //只能取到行内样式
            Line.style.top = (oldTop - 110) + "px";
            itemtabinfo.style.transform = "translateY(" + offsetTop + "px)";
            checkBtnShow();
        }

        ItemMenu.onmouseenter = function () {
            checkBtnShow();
        }
        function checkBtnShow() {
            if (offsetTop == 0) {
                //下面按钮出现
                bottomBtn.classList.add("showBottom");
                topBtn.classList.remove("showTop");

            }
            else if (offsetTop == -220) {
                //上面按钮出现
                topBtn.classList.add("showTop");
                bottomBtn.classList.remove("showBottom");
            } else {
                //两个按钮同时出现
                bottomBtn.classList.add("showBottom");
                topBtn.classList.add("showTop");
            }
        }

        ItemMenu.onmouseleave = function () {
            bottomBtn.classList.remove("showBottom");
            topBtn.classList.remove("showTop");
        }
        //检测是否具有top-white
        function checkClass(obj,className){
            return obj.classList.contains(className);
        }
        //其余的li添加
        function addWhite(index){
            for(var i=0;i<righttBtnList.length;i++){
                if(i!=index){
                    righttBtnList[i].classList.add("top-white");
                }
            }
        }
        //启动计时器动画
        function Animate(){
            //写执行代码
            timer=setInterval(function(){
                if (timer)
                    clearInterval(timer);
                if(!ulItem.classList.contains("transY")){
                    ulItem.classList.add("transY");
                }
                count++;
                ulItem.style.transform="translateY("+(-count*liHeight)+"px)";
                //找出当前每一张图动画完成时间
                setTimeout(function(){
                    if(count>=ulItem.children.length-1){
                        count=0;
                        //移除过渡类
                        ulItem.classList.remove("transY");
                        ulItem.style.transform="translateY(0px)";
                    }
                    //让右边的元素动画对应
                    //rigthBtnlist[count].click();
                },500)
            },speed)
        }
    } 

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

--结束END--

本文标题: js实现上下滑动轮播

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

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

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

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

下载Word文档
猜你喜欢
  • js实现上下滑动轮播
    本文实例为大家分享了js实现上下滑动轮播的具体代码,供大家参考,具体内容如下 一、效果图 二、设计思路 第一步:遍历所有的元素使得鼠标点击右侧小图时,图片变亮并且根据偏移值加上红框...
    99+
    2024-04-02
  • 怎么使用js实现上下滑动轮播
    这篇“怎么使用js实现上下滑动轮播”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用js实现上下滑动轮播”文章吧。一、效...
    99+
    2023-07-02
  • js实现滑动轮播效果
    本文实例为大家分享了js实现滑动轮播效果的具体代码,供大家参考,具体内容如下 1、构建html样式,代码如下 <div class="banner"> ...
    99+
    2024-04-02
  • JS如何实现touch点击滑动轮播
    这篇文章将为大家详细讲解有关JS如何实现touch点击滑动轮播,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体代码如下所示:<script src=&q...
    99+
    2024-04-02
  • vue实现自动滑动轮播图片
    本文实例为大家分享了vue实现自动滑动轮播图片的具体代码,供大家参考,具体内容如下 效果如图:(悬浮时暂停,移出后自动轮播) ①创建图片滑动轮播组件ImageSlider.vue...
    99+
    2024-04-02
  • js如何实现移动端手指滑动轮播图效果
    这篇文章将为大家详细讲解有关js如何实现移动端手指滑动轮播图效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如下所示:<!DOCTYPE html>...
    99+
    2024-04-02
  • js如何实现图片首尾平滑轮播
    这篇文章给大家分享的是有关js如何实现图片首尾平滑轮播的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。首先给出HTML代码,要注意轮播图片表(#list)末尾加上第一个图片1.jp...
    99+
    2024-04-02
  • js实现轮播图自动切换
    本文实例为大家分享了js实现轮播图自动切换的具体代码,供大家参考,具体内容如下 先看效果图 第一种  //点击按钮,序号变化 showIdx++; if (showIdx == i...
    99+
    2024-04-02
  • jquery实现图片轮播和滑动效果
    本文实例为大家分享了jquery实现图片轮播和滑动效果的具体代码,供大家参考,具体内容如下 实习做了一个简易的图片轮播效果 下图是做出来的效果 源码 html 和 js部分 <...
    99+
    2024-04-02
  • JS实现移动端上下滑动一次一屏
    本文实例为大家分享了JS实现移动端上下滑动一次一屏的具体代码,供大家参考,具体内容如下 功能如下: 头部: 附近、关注、推荐选项卡的切换 左右滑动功能、头部选项卡跟...
    99+
    2024-04-02
  • Vue实现上下层叠轮播图
    目录上下层叠轮播图原生轮播图(无缝轮播图)上下层叠轮播图 1.效果 2.代码 <template> <div class="article-main" @mou...
    99+
    2024-04-02
  • JS实现轮播图案例
    本文实例为大家分享了JS实现轮播图案例的具体代码,供大家参考,具体内容如下 实现功能: 1、自动轮播:鼠标停留在轮播图上时不切换图片,鼠标离开后自动轮播。 2、点击左右按钮切换图片。...
    99+
    2024-04-02
  • JS如何实现轮播图
    本篇内容介绍了“JS如何实现轮播图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现功能:自动轮播:鼠标停留在轮播图上时不切换图片,鼠标离开...
    99+
    2023-06-29
  • Android如何使用ViewFlipper实现图片上下自动轮播
    这篇文章主要介绍了Android如何使用ViewFlipper实现图片上下自动轮播,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:先看效果:1.xml代码: ...
    99+
    2023-06-15
  • 用js实现简单轮播图
    本文实例为大家分享了js实现简单轮播图的具体代码,供大家参考,具体内容如下 1.实现功能: 2.实现思路: (1)鼠标放到图片上,显示箭头,用display来做。 (2)动态生成...
    99+
    2024-04-02
  • js实现点击切换和自动播放的轮播图
    本文实例为大家分享了js实现点击切换和自动播放的轮播图,供大家参考,具体内容如下 轮播图案例 <!DOCTYPE html> <html lang="en">...
    99+
    2024-04-02
  • JS实现轮播图小案例
    本文实例为大家分享了JS实现轮播图小案例的具体代码,供大家参考,具体内容如下 分析: 点击左右箭头 滑动轮播图 鼠标不在轮播图内时 每隔2秒自动滑动轮播图 ...
    99+
    2024-04-02
  • js如何实现轮播插件
    这篇文章将为大家详细讲解有关js如何实现轮播插件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。轮播效果在网页中用的很多,swiper是其中最有代表性的作品,它支持水平和竖...
    99+
    2024-04-02
  • 原生js如何实现轮播
    这篇文章主要为大家展示了“原生js如何实现轮播”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“原生js如何实现轮播”这篇文章吧。效果如下:代码如下:<!DO...
    99+
    2024-04-02
  • js实现文字无缝轮播
    本文实例为大家分享了js实现文字无缝轮播的具体代码,供大家参考,具体内容如下 所用到的知识点: innerHTML 获取或设置某个对象的内容scrollTop 滚动条滚动的距离,此属...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作