首页 > 其他分享 >用JS实现简单的新闻向上轮播效果

用JS实现简单的新闻向上轮播效果

时间:2023-11-16 23:03:15浏览次数:39  
标签:官网 轮播 JS innerHTML aElement length href 向上

最近在项目中遇到一个需求,就是实现一个功能,具体内容就是写一个类似轮播的功能,有限条标题,循环轮播。

首先准备一个div,里边设置好要展示的内容

div class="panel line1" style="overflow:hidden">
        <h2>新闻动态</h2>
        <div class="app">
          <a href="https://www.acwing.com/" target="_blank">acwing官网</a><br>
          <a href="https://www.baidu.com/" target="_blank">百度</a><br>
          <a href="https://www.csdn.net/" target="_blank">csdn官网</a><br>
          <a href="https://cn.vuejs.org/" target="_blank">vue3官网</a><br>
          <a href="http://element-plus.org/zh-CN/" target="_blank">elementplus官网</a><br>
        </div>
</div>

简单指定一下a标签的样式

  a {
      text-decoration: none;
      color: #22cbda;
      display: inline-block;
      width: 100%;
      height: 40px;
      line-height: 40px;
      background-image: url('./images/jpg.jpg');
      margin-top: 10px;
}

大致思路:

首先定义一个定时器,然后获取要轮播的标签,获取其中的值,遍历每个节点,首先当i=0时,定义一个中间变量temp,记录第1个位置元素的内容,然后定义一个变量hrefTemp,存放其href的值。当i<元素的长度-1时,把后边元素的值赋给前一个,href属性同理。之后当i = 元素的长度-1时,把temp和hrefTemp分别赋给最后一个变量。这就是这个需求的大致分析过程,然后代码实现了一下。下面是代码实现。

代码如下:

  <script>
    let aElement = document.querySelectorAll('.line1 a')
    setInterval(function () {
      for (let i = 0; i < aElement.length; i++) {
        if (i === 0) {
          temp = aElement[0].innerHTML
          tempSrc = aElement[0].getAttribute("href")
        }
        if (i < aElement.length - 1) {
          aElement[i].innerHTML = aElement[i + 1].innerHTML
          aElement[i].setAttribute("href", aElement[i + 1].getAttribute("href"))
        }
        if (i === aElement.length - 1) {
          aElement[aElement.length - 1].innerHTML = temp
          aElement[aElement.length - 1].setAttribute('href', tempSrc)
        }
      }
    }, 3500)
  </script>

标签:官网,轮播,JS,innerHTML,aElement,length,href,向上
From: https://blog.51cto.com/u_16358095/8433613

相关文章

  • java:Json
    /***encoding:utf-8*版权所有2023涂聚文有限公司*许可信息查看:*描述:*#Author:geovindu,GeovinDu涂聚文.*#IDE:IntelliJIDEA2023.1Java17*#Datetime:2023-2023/11/16-12:29*#User:geovindu*#Product:Int......
  • 【开源】基于Vue.js的计算机机房作业管理系统的设计和实现
    一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的计算机机房作业管理系统包含课程档案模块、课时档案模块、学生作业模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,计算机机房作业管理系统基于角色的访问控制......
  • 【开源】基于Vue.js的车险自助理赔系统的设计和实现
    一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的车险自助理赔系统包含车辆管理模块、车险理赔模块、理赔审核模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,车险自助理赔系统基于角色的访问控制,给车险管理......
  • JS判断变量的具体数据类型封装函数
    封装函数为://返回传入值的数据类型functionGetValueType(val){vartype=typeofval//object需要使用Object.prototype.toString.call判断if(type==='object'){vartypeStr=Object.prototype.toString.call(val)//解析[objectStr......
  • 使用js添加按钮,vue页面 el-calendar 添加自定义按钮
    html代码:<divclass="schedule"><divclass="title">今日日程</div><divclass="allSchedule"><el-rowclass="addSchedule"type="flex"align="......
  • JS逆向实战26——某店ua模拟登陆
    声明本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!目标目标网站aHR0cHM6Ly9kLndlaWRpYW4uY29tL3dlaWRpYW4tcGMvbG9naW4=目标获取登录接口UA参数加密,U......
  • nodejs敲门
    前言node.js是在电脑上,给js一个可以脱离浏览器运行的环境。功能上像jdk,操作为命令行。现在演化为可以做web服务器使用,拥有许多成熟的项目和插件。本文简单讲讲它,以及它的两个小用途(TS和WebApi服务器)。谈不上入门,只能算是“敲门”。  安装:nodejs官网和中文网都可以下载安......
  • 修改/etc/docker/daemon.json中的log-opts配置发现无效 docker 限制日志大小
    https://colobu.com/2018/10/22/no-space-left-on-device-for-docker/在/etc/docker/daemon.json中修改或添加log-opts参数"log-driver":"json-file","log-opts":{"max-size":"50m","max-file":"3"}网上很......
  • 从头开始一个vtk.js项目
    从头开始一个vtk.js项目初始化项目mkdirmy-vtkjs-appcdmy-vtkjs-appnpminit安装@kitware/vtk.js依赖npminstall@kitware/vtk.js对于这个例子,我们将使用webpack来构建我们的应用程序。npminstall-Dwebpack-cliwebpackwebpack-dev-server项目脚手架我们......
  • 使用js写一个音乐音谱图
    我们经常看到在听乐音的时候,会有音谱图随着音乐的节奏不断变化给人视觉上的享受,那么我们通过js来实现以下这个效果,下面是简单的效果图 首先我们需要有一个绘制音频的函数functiondraw(){//请求下一帧动画animationId=requestAnimationFrame(draw);//获取......