js、jQuery实现文字上下无缝轮播、滚动效果

2021-02-14 23:20

阅读:709

标签:mat   numbers   ice   article   oat   doctype   time   document   height   

原生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>富强、民主、文明、和谐、自由1li>
     
    li>富强、民主、文明、和谐、自由2li>
     
    li>富强、民主、文明、和谐、自由3li>
     
    li>富强、民主、文明、和谐、自由4li>
     
    li>富强、民主、文明、和谐、自由5li>
     
    li>富强、民主、文明、和谐、自由6li>
     
    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>富强、民主、文明、和谐、自由1li>
     
    li>富强、民主、文明、和谐、自由2li>
     
    li>富强、民主、文明、和谐、自由3li>
     
    li>富强、民主、文明、和谐、自由4li>
     
    li>富强、民主、文明、和谐、自由5li>
     
    li>富强、民主、文明、和谐、自由6li>
     
    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>

     

 
 

js、jQuery实现文字上下无缝轮播、滚动效果

标签:mat   numbers   ice   article   oat   doctype   time   document   height   

原文地址:https://www.cnblogs.com/xiewangfei123/p/12989325.html


评论


亲,登录后才可以留言!