我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么使用js实现上下滑动轮播

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么使用js实现上下滑动轮播

这篇“怎么使用js实现上下滑动轮播”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用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)        }    }

以上就是关于“怎么使用js实现上下滑动轮播”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么使用js实现上下滑动轮播

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

下载Word文档

猜你喜欢

怎么使用js实现上下滑动轮播

这篇“怎么使用js实现上下滑动轮播”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用js实现上下滑动轮播”文章吧。一、效
2023-07-02

Android如何使用ViewFlipper实现图片上下自动轮播

这篇文章主要介绍了Android如何使用ViewFlipper实现图片上下自动轮播,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:先看效果:1.xml代码:
2023-06-15

如何使用jquery实现图片轮播和滑动效果

这篇文章主要介绍了如何使用jquery实现图片轮播和滑动效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下实习做了一个简易的图片轮播效果下图是做出来的效果源码ht
2023-06-26

vue.js中怎么使用原生js实现移动端的轮播图

这篇文章主要介绍“vue.js中怎么使用原生js实现移动端的轮播图”,在日常操作中,相信很多人在vue.js中怎么使用原生js实现移动端的轮播图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue.js中怎么
2023-06-30

怎么用js实现3D轮播图效果

本篇内容主要讲解“怎么用js实现3D轮播图效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用js实现3D轮播图效果”吧!具体内容如下:主要有平移和旋转构成3d效果的轮播图,小白一只,不足之
2023-06-25

Android 使用ViewPager实现左右循环滑动及轮播效果

ViewPager是一个常用的Android组件,不过通常我们使用ViewPager的时候不能实现左右无限循环滑动,在滑到边界的时候会看到一个不能翻页的动画,可能影响用户体验。此外,某些区域性的ViewPager(例如展示广告或者公告之类的
2022-06-06

Android使用ViewPager实现自动轮播

很多APP中都实现了类似引导页的自动轮播,不由得想到昨天的引导页上修改一下代码实现轮播。 其实大体上只需要添加一个线程循环执行就可以了。 项目已同步至:https://github.com/nanchen2251/viewpagerDemo
2022-06-06

怎么使用vue轮播组件vue-awesome-swiper实现轮播图

这篇文章主要讲解了“怎么使用vue轮播组件vue-awesome-swiper实现轮播图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用vue轮播组件vue-awesome-swipe
2023-07-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录