亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

原生js實現(xiàn)公告滾動效果

 更新時間:2021年01月10日 09:52:02   作者:DreamFJ  
這篇文章主要為大家詳細介紹了原生js實現(xiàn)公告滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現(xiàn)公告滾動展示的具體代碼,供大家參考,具體內容如下

1.html結構

<body>
 <div id="notice" class="notice">
 <ul id="noticeList">
  <li>我是公告1</li>
  <li>我是公告2</li>
  <li>我是公告3</li>
  <li>我是公告4</li>
 </ul>
 </div>
</body>

2.css樣式

<style type="text/css">
 body,
 div,
 ul,
 li {
  margin: 0;
  padding: 0;
 }
 
 ul,
 li {
  list-style: none;
 }
 
 .notice {
  width: 300px;
  height: 30px;
  border: 1px solid black;
  text-align: center;
  overflow: hidden;
 }
 
 li {
  padding: 3px;
 }
 </style>

3.js行為

<script type="text/javascript">
 window.onload = function() {
  var notice = document.getElementById("notice");
  var noticeList = document.getElementById("noticeList");
 
  // 獲取ul下第一個li元素,好計算li的高度,因為后面滾動的時候每次要滾動一個高度,這里li都是一樣高的,
  // 所以獲取第一個的高度就行了,不然要遍歷獲取每一個li的高度。
  var noticeFirstItem = noticeList.querySelector("li");
 
  // 獲取li的高度,這里獲取的是offsetHeight,關于js各種高度的定義可以注意以下
  var scrollHeight = noticeFirstItem.offsetHeight;
  // 是否可以進行動畫
  var opt = {
  animated: true,
  interval: 1000
  };
 
  notice.onclick = function() {
  // 動畫之前首先重置
  // noticeFirstItem.style.transition = "";
  noticeFirstItem.style.marginTop = 0;
  if (opt.animated) {
   opt.animated = false;
   animate(noticeList, scrollHeight, opt);
  }
  };
 };
 
 // 動畫函數(shù),obj——要產(chǎn)生動畫的對象,sHeight——每次要滾動的距離,interval——多久滾動一次
 function animate(obj, sHeight, option) {
  // 當滾到最后一條公告的時候就不用動畫了。
  var stopHeight = sHeight - obj.scrollHeight;
  var marginTopNum = 0;
  var timer = setInterval(function() {
  marginTopNum -= sHeight;
  obj.style.marginTop = marginTopNum + "px";
  obj.style.transition = "margin-top 1.5s ease";
  // 注意這里的比較符號,前面得到的高度都進行四舍五入了
  if (marginTopNum <= stopHeight) {
   clearInterval(timer);
   // option.animated = true;
  }
  }, option.interval);
 }
 </script>

4.運行結果

動畫在進行中時注意控制不能進行其他動畫!

結束語:不要把動畫想得很難,當你想實現(xiàn)復雜的動畫時,比如jquery的animate方法,你可以先實現(xiàn)針對一個屬性的動畫,然后再想辦法擴展到多個屬性(即以對象方式去傳參,然后遍歷對象中的每個樣式屬性,然后給每個樣式屬性添加動畫)。以前都是用js去實現(xiàn)每一幀每一幀的移動,即在肉眼無法反應過來的時間里產(chǎn)生移動,這樣就能產(chǎn)生連續(xù)移動的效果,現(xiàn)在css3出來了,可以方便的利用css3來實現(xiàn)過渡效果了,而不用復雜的js來實現(xiàn)了。這個真的太棒了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 詳細聊聊TypeScript中unknown與any的區(qū)別

    詳細聊聊TypeScript中unknown與any的區(qū)別

    unknown類型比較謙虛,就和他本身的意思一樣,他從不禍害到其他的變量,但是any類型就是那種惡霸,屬于什么都不管,誰也不敢管的類型,這篇文章主要給大家介紹了關于TypeScript中unknown與any區(qū)別的相關資料,需要的朋友可以參考下
    2021-10-10
  • setInterval和setTimeout停止的方法

    setInterval和setTimeout停止的方法

    要想知道它們是怎么停止的,首先我們要了解它們的運行機制和原理,下面是具體的介紹。
    2011-01-01
  • JavaScript模板字符串用法實例

    JavaScript模板字符串用法實例

    在ES6之前我們都使用單引號或者雙引號來包裹字符串,當我們想要在字符串中加入變量時,不能直接寫在字符串里,而是需要通過字符串拼接的方式來往字符串中加入變量,這篇文章主要給大家介紹了關于JavaScript模板字符串用法的相關資料,需要的朋友可以參考下
    2022-11-11
  • JScript中的prototype(原型)屬性研究

    JScript中的prototype(原型)屬性研究

    我們知道JScript中對象的prototype屬性,是用來返回對象類型原型的引用的。
    2010-04-04
  • HTML與javascript常碰到的編碼問題

    HTML與javascript常碰到的編碼問題

    在日常的前端開發(fā)工作中,我們會經(jīng)常的與HTML、javascript、css等語言打交道,和一門真正的語言一樣,計算機語言也有它的字母表、語法、詞法、編碼方式等
    2008-12-12
  • JavaScript學習總結之JS、AJAX應用

    JavaScript學習總結之JS、AJAX應用

    這篇文章主要介紹了JavaScript學習總結JS AJAX應用 的相關資料,需要的朋友可以參考下
    2016-01-01
  • 用JS實現(xiàn)簡單的登錄驗證功能

    用JS實現(xiàn)簡單的登錄驗證功能

    這篇文章主要介紹了用JS實現(xiàn)簡單的登錄驗證功能,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-07-07
  • 20個拿來就能用的JavaScript技巧分享

    20個拿來就能用的JavaScript技巧分享

    這篇文章主要來和大家一起探討一下20?種?JavaScript?技巧和竅門,每種技巧和竅門都有通俗易懂的示例,讓我們一起來提升你的?JavaScript?技能吧
    2023-10-10
  • JavaScript實現(xiàn)輪播圖效果

    JavaScript實現(xiàn)輪播圖效果

    這篇文章主要介紹了JavaScript實現(xiàn)輪播圖效果,幫助大家更好的理解和學習JavaScript,感興趣的朋友可以了解下
    2020-10-10
  • JavaScript 生成唯一ID的幾種方式

    JavaScript 生成唯一ID的幾種方式

    這篇文章主要介紹了JavaScript 生成唯一ID的幾種方式,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下
    2021-02-02

最新評論