zoukankan      html  css  js  c++  java
  • js、jQuery实现文字上下无缝轮播、滚动效果

    原生JS版本

    1.  
      <!DOCTYPE html>
       
      <html lang="en">
       
      <head>
       
      <meta charset="UTF-8">
       
      <title>文字上下无缝轮播</title>
       
      </head>
       
      <style>
       
      * {
       
      margin: 0;
       
      padding: 0;
       
      }
       
      #container{
       
      width: 60%;
       
      margin: 100px auto;
       
      position: relative;
       
      height: 200px;
       
      overflow: hidden;
       
      }
       
      #list-wrapper{
       
      position: relative;
       
      }
       
      ul {
       
      list-style: none;
       
      background: #f8f8f8;
       
      text-align: center;
       
      padding: 0 20px;
       
      }
       
      li{
       
      height: 35px;
       
      line-height: 35px;
       
      color: #fff;
       
      }
       
      li:nth-child(odd){
       
      background: #5077aa;
       
      }
       
      li:nth-child(even){
       
      background: #fb6b06;
       
      }
       
      </style>
       
      <body>
       
      <div id="container">
       
      <div id="list-wrapper" style="top: 0">
       
      <ul class="notice-list" id="notice-list">
       
      <li>富强、民主、文明、和谐、自由1</li>
       
      <li>富强、民主、文明、和谐、自由2</li>
       
      <li>富强、民主、文明、和谐、自由3</li>
       
      <li>富强、民主、文明、和谐、自由4</li>
       
      <li>富强、民主、文明、和谐、自由5</li>
       
      <li>富强、民主、文明、和谐、自由6</li>
       
      </ul>
       
      <ul class="notice-list" id="notice-list-2">
       
      </ul>
       
      </div>
       
      </div>
       
      <script>
       
      var ROLL_SPEED = 100
       
      var noticeList1 = document.getElementById('notice-list');
       
      var noticeList2 = document.getElementById('notice-list-2');
       
      var listWrapper = document.getElementById('list-wrapper');
       
      noticeList2.innerHTML=noticeList1.innerHTML;
       
       
       
      var timer = setInterval(rollStart, ROLL_SPEED);
       
      function rollStart() {
       
      if (Math.abs(_subStr(listWrapper.style.top)) >= noticeList1.clientHeight) {
       
      listWrapper.style.top = '0px'
       
      } else {
       
      var top = listWrapper.style.top
       
      listWrapper.style.top = _subStr(top)-1+'px'
       
      }
       
      }
       
      // 截取px前数值
       
      function _subStr(str) {
       
      var index = str.indexOf('px');
       
      if (index > -1) {
       
      return parseFloat(str.substr(0, index + 1))
       
      }
       
      }
       
      </script>
       
      </body>
       
      </html>

    jQuery版本

    1.  
      <!DOCTYPE html>
       
      <html lang="en">
       
      <head>
       
      <meta charset="UTF-8">
       
      <title>文字上下无缝轮播</title>
       
      </head>
       
      <style>
       
      * {
       
      margin: 0;
       
      padding: 0;
       
      }
       
      #container{
       
      width: 60%;
       
      margin: 100px auto;
       
      position: relative;
       
      height: 200px;
       
      overflow: hidden;
       
      }
       
      #list-wrapper{
       
      position: relative;
       
      top: 0;
       
      }
       
      ul {
       
      list-style: none;
       
      background: #f8f8f8;
       
      text-align: center;
       
      padding: 0 20px;
       
      }
       
      li{
       
      height: 35px;
       
      line-height: 35px;
       
      color: #fff;
       
      }
       
      li:nth-child(odd){
       
      background: #5077aa;
       
      }
       
      li:nth-child(even){
       
      background: #fb6b06;
       
      }
       
      </style>
       
      <body>
       
      <div id="container">
       
      <div id="list-wrapper">
       
      <ul class="notice-list" id="notice-list">
       
      <li>富强、民主、文明、和谐、自由1</li>
       
      <li>富强、民主、文明、和谐、自由2</li>
       
      <li>富强、民主、文明、和谐、自由3</li>
       
      <li>富强、民主、文明、和谐、自由4</li>
       
      <li>富强、民主、文明、和谐、自由5</li>
       
      <li>富强、民主、文明、和谐、自由6</li>
       
      </ul>
       
      <ul class="notice-list" id="notice-list-2">
       
      </ul>
       
      </div>
       
      </div>
       
      <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
       
      <script>
       
      var ROLL_SPEED = 100
       
      var noticeList1 = $('#notice-list');
       
      var noticeList2 = $('#notice-list-2');
       
      var listWrapper = $('#list-wrapper');
       
      noticeList2.html(noticeList1.html())
       
      listWrapper.css('top', 0)
       
      var timer = setInterval(rollStart, ROLL_SPEED);
       
       
       
      function rollStart() {
       
      if (Math.abs(_subStr(listWrapper.css('top'))) >= noticeList1.height()) {
       
      listWrapper.css('top', 0)
       
      } else {
       
      var top = listWrapper.css('top');
       
      listWrapper.css('top', _subStr(top) - 1)
       
      }
       
      }
       
       
       
      // 截取px前数值
       
      function _subStr(str) {
       
      var index = str.indexOf('px');
       
      if (index > -1) {
       
      return parseFloat(str.substr(0, index + 1))
       
      }
       
      }
       
      </script>
       
      </body>
       
      </html>
     
     
  • 相关阅读:
    mysql备份还原
    JavaScript位移运算多个大于号的使用方法
    js with 语句的用法
    公告栏文字滚动
    Tar打包、压缩与解压缩到指定目录的方法
    域名跳转汇总文章
    linux常用命令大全
    nginx添加多站点
    linux一键安装php环境
    linux安装unzip及使用
  • 原文地址:https://www.cnblogs.com/xiewangfei123/p/12989325.html
Copyright © 2011-2022 走看看