1. 程式人生 > >實現頁面公告欄迴圈向上輪播

實現頁面公告欄迴圈向上輪播

解決方案

1、 HTML

先建一個div層作為公告顯示區,裡面包裹一個公告列表(ul);

?
1 2 3 4 5 6 7 8 < div class = "notice" >   < ul >   < li >第1條公告第1條公告第1條公告第1條公告第1條公告第1條公告</ li
>   < li >第2條公告第2條公告第2條公告第2條公告第2條公告第2條公告</ li >   < li >第3條公告第3條公告第3條公告第3條公告第3條公告第3條公告</ li >  
< li >第4條公告第4條公告第4條公告第4條公告第4條公告第4條公告</ li >   </ ul > </ div >

2、 CSS

固定公告欄顯示區域的高度(35px),每條公告資訊(li)的高度也必須是這個高度(我這裡偷懶就用了行高),後面js中還要用到這個值。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 div,ul,li{ margin : 0 ; padding : 0 } /*先初始化一下預設樣式*/ .notice {   width : 300px ; /*單行顯示,超出隱藏*/   height : 35px ; /*固定公告欄顯示區域的高度*/   padding : 0 30px ;   background-color : #b3effe ;   overflow : hidden ; } .notice ul li {   list-style : none ;   line-height : 35px ;   /*以下為了單行顯示,超出隱藏*/   display : block ;   white-space : nowrap ;   text- overflow : ellipsis;   overflow : hidden ; }

3、 JavaScript

封裝函式 noticeUp.js

使用 jquery animate方法改變列表ul的marginTop值來實現滾動效果;

知識點:

1、animate 回撥函式 animate 函式執行完之後,要執行的函式。

2、appendTo() 方法

在被選元素的結尾(仍然在內部)插入指定內容。

注意:指定內容是當前頁面中的某些元素,那麼這些元素將從原位置上消失。簡而言之,這相當於一個移動操作,而不是複製操作。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 /* * 引數說明 * obj : 動畫的節點,本例中是ul * top : 動畫的高度,本例中是-35px;注意向上滾動是負數 * time : 動畫的速度,即完成動畫所用時間,本例中是500毫秒,即marginTop從0到-35px耗時500毫秒 * function : 回撥函式,每次動畫完成,marginTop歸零,並把此時第一條資訊新增到列表最後; * */ function noticeUp(obj,top,time) {   $(obj).animate({   marginTop: top   }, time, function () {   $( this ).css({marginTop: "0" }).find( ":first" ).appendTo( this );   }) }

4、 封裝函式的呼叫

首先引入jQuery庫和自己的封裝外掛

使用定時器setInterval來控制公告資訊顯示的時間間隔,本例中是2000毫秒

?
1 2 3 4 5 6 7 8 < script src = "https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js" ></ script > < script src = "noticeUp.js" ></ script >   < script >   $(function () {   // 呼叫 公告滾動函式   setInterval("noticeUp('.notice ul','-35px',500)", 2000);   }); </ script >