jQuery實現的上下滾動公告欄詳細講解

来源:https://www.cnblogs.com/gold404/archive/2018/11/20/9991060.html
-Advertisement-
Play Games

之前做項目的時候,一直都想著做一個上下滾動的公告欄,作為展示網站的最新公告信息,因為剛開始自己的思路並不是太清晰,在網上找了很多的源碼,但是卻發現都不能讓自己滿意,有的還會出現一些小問題,比如,有時候公告上下滾動的時候,兩條公告會重疊在一起。最後我還是決定自己寫一個上下滾動的公告欄。 jQuery實 ...


之前做項目的時候,一直都想著做一個上下滾動的公告欄,作為展示網站的最新公告信息,因為剛開始自己的思路並不是太清晰,在網上找了很多的源碼,但是卻發現都不能讓自己滿意,有的還會出現一些小問題,比如,有時候公告上下滾動的時候,兩條公告會重疊在一起。最後我還是決定自己寫一個上下滾動的公告欄。

jQuery實現上下滾動公告欄原理

雖然在網上找的有些代碼有時候會出現一些問題,但是思路咱還是可以借鑒一下的。
我們先來看一下,我做的上下滾動公告欄效果圖,如果你感覺是你要的那款,那麼你再接著往下看是怎麼實現的。

圖中箭頭所指內容就是公告內容,它會不停的上下滾動,當然滾動時間可以自己設置的。
下麵我們來看下是怎麼實現的。
其實實現滾動效果主要用到jQuery中的animate() 方法,而animate() 方法就是創建動畫效果,簡單的說就是,當我們用js將“一棵樹”的height屬性從100px變為200px的時候,我們會看到“這個樹”瞬間從100高度長到了200高度,但是我們用animate() 方法,我們會看到“這顆樹”從100高度慢慢的長到200高度,我們可以看到這個過程,這就是animate() 方法的作用,當然“樹”的生長速度是可以控制的。
瞭解了jQuery的animate()方法,我們還需要瞭解一下setInterval( )這個方法,可能很多同學知道這個方法,因為它就是一個簡單的定時函數,我們看一下它的用法

setInterval(function(){ alert("Hello"); }, 3000);

這句代碼就是每過3秒執行一次該方法,彈出一個“hello”。
好了,理解了前面的兩個方法,那麼下麵的代碼你一定可以看懂得。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>滾動公告欄</title>
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <style type="text/css">
        body{padding: 0;margin:0;background-color:#f9f9f9}
        .ul1{list-style: none;margin: 0}
        li{padding: 5px;}
    </style>
</head>
<body>
<div style="height: 60px;background-color: #191e29;">
    <p style="margin: 0;color: #fff;line-height: 60px;text-align: center;">這是用jQuery實現的上下滾動公告欄</p>
</div>
<div style="background-image: url(timg.jpg); margin:15px 90px 0 90px;padding-left: 310px; height: 600px;">
    <div style="position: relative;height: 26px;overflow: hidden;">
        <ul class="ul1">
            <li>K先生:我求求你嫁給我</li>
            <li>K先生:等你老了,我依然背著你</li>
            <li>K先生:我給你當拐杖</li>
            <li>K先生:等你沒牙了,我就嚼碎了再喂給你吃</li>
        </ul>
        <img style="position: absolute;top: 9px;left: 20px" width="15px" height="15px" src="laba.png">
    </div>
</div>
<script type="text/javascript">
    $(function(){
        var num=$(".ul1").find("li").length;
        console.log("直接運行"+num);
        if (num>1) {
            setInterval(function(){ 
            $('.ul1').animate({
                marginTop:"-26px"
            },500,function(){
                $(this).css({marginTop : "0"}).find("li:first").appendTo(this);
            });
        }, 3000);
        }
                
    });
</script>
</body>
</html>

如果你有更好得建議或者問題,歡迎下方留言哦。
本篇文章來自K先生的博客(有源碼哦)。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • (原創)超詳細一步一步在eclipse中配置Struts2環境,無基礎也能看懂 1. 在官網https://struts.apache.org下載Struts2,建議下載2.3系列版本。從圖中可以看出,既可以分開下載子文件,又可以一次全部下載。 這裡我後面只用到struts-2.3.36-apps. ...
  • form表單的enctype屬性:規定了form表單數據在發送到伺服器時候的編碼方式 application/x www form urlencoded:預設編碼方式 multipart/form data:指定傳輸數據為二進位數據,例如圖片、mp3、文件 text/plain:純文本的傳輸。空格轉 ...
  • 總結react中常常被忽略的小知識點 1)即使state里設置成和之前的值一樣,render也會重新渲染 2)父組件傳給子組件的屬性(props是只讀的,在子組件中已在this.state里將屬性賦值給定義的變數),如果屬性在父組件中可以操作改變值的話,那麼在子組件中就不建議修改,如果屬性在父組件不 ...
  • javascript個人筆記 JavaScript的組成 JavaScript是一種運行在客戶端的腳本語言 ​ 1. ECMAScript 標準 js的基本的語法 2. DOM Document Object Model 文檔對象模型 3. BOM Browser Object Model 瀏覽器對 ...
  • 1、假如訪問的介面地址為 http://www.test.com/apis/index.php (php api 介面)2、而開發地址為http://127.0.0.1:8080,當axios發起請求時,出現如下錯誤:Failed to load http://www.test.com/apis/i ...
  • 前端發展很快,現代瀏覽器原生 API 已經足夠好用。我們並不需要為了操作 DOM、Event 等再學習一下 jQuery 的 API。同時由於 React、Angular、Vue 等框架的流行,直接操作 DOM 不再是好的模式,jQuery 使用場景大大減少。本項目總結了大部分 jQuery API ...
  • 什麼是前後端分離? 前後端為什麼要分離? 前後端怎麼樣分離的? 前後端分離給我們前端技術人員的開髮帶來什麼樣的好處? 下麵我就帶著這些問題,來簡單談談我瞭解到的前後端分離情況。 在講前後端分離之前,讓我們先講一講什麼是MVC? MVC誕生於上世紀70年代,是一種經典的設計模式,全名為 Model-V ...
  • 索引 1、對象深拷貝 2、網路圖片轉base64, 線上圖片點擊下載 3、對象深拷貝 4、對象深拷貝 5、對象深拷貝 6、對象深拷貝 1、對象深拷貝 2、網路圖片轉base64, 線上圖片點擊下載 3、對象深拷貝 4、對象深拷貝 5、對象深拷貝 6、對象深拷貝 1、對象的深拷貝(一級屬性拷貝和多級屬 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...