技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運營

贊助商

分類目錄

贊助商

最新文章

搜索

jQuery實現(xiàn)文字以3D動畫形式循環(huán)向上或向下滾動

作者:admin    時間:2023-5-9 5:41:29    瀏覽:

我們有時候看到有的主頁的標(biāo)簽云比較炫酷,他們把標(biāo)簽云做成了3D動畫的效果。其實這可以用jQuery來實現(xiàn),并且不需要太多的編程代碼。本文介紹jQuery實現(xiàn)文字以3D動畫形式循環(huán)向上或向下滾動。

示例介紹

本文示例分三種動畫介紹實現(xiàn)代碼。

  • 文字3D動畫隨鼠標(biāo)向上或向下滾動(還會變速)
  • 文字3D動畫向上滾動(不隨鼠標(biāo)改變方向和速度)
  • 文字3D動畫向下滾動(不隨鼠標(biāo)改變方向和速度)

效果

 文字3D動畫隨鼠標(biāo)向上或向下滾動(還會變速)
文字3D動畫隨鼠標(biāo)向上或向下滾動(還會變速)

demodownload

 

文字3D動畫向下滾動(不隨鼠標(biāo)改變方向和速度)
文字3D動畫向下滾動(不隨鼠標(biāo)改變方向和速度)

demodownload

 

文字3D動畫向上滾動(不隨鼠標(biāo)改變方向和速度)
文字3D動畫向上滾動(不隨鼠標(biāo)改變方向和速度)

demodownload

HTML代碼

<div id="list">
  <ul>
    <li><a href="#">PhP</a></li>
    <li><a href="#">jQuery</a></li>
    <li><a href="#">Magento</a></li>
    <li><a href="#">MySql</a></li>
    <li><a href="#">Js</a></li>
    <li><a href="#">HTML</a></li>
    <li><a href="#">CSS</a></li>
    <li><a href="#">Ajax</a></li>
    <li><a href="#">ThinkPHP</a></li>
    <li><a href="#">Apache</a></li>
    <li><a href="#">Linux</a></li>
    <li><a href="#">Python</a></li>
    <li><a href="#">web</a></li>
    <li><a href="#">xhtml</a></li>
  </ul>
</div>

HTML代碼結(jié)構(gòu)非常簡單,外層盒子是一個div,其id屬性值為list,內(nèi)部是一個ul容器,li是標(biāo)簽內(nèi)容。

jQuery

要首先引用jQuery庫文件。

<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
  var element = $('#list a');
  var offset = 0;
  var stepping = 0.03;
  var list = $('#list');
  var $list = $(list)

  $list.mousemove(function(e)
  {
    var topOfList = $list.eq(0).offset().top
    var listHeight = $list.height()
    stepping = (e.clientY - topOfList) / listHeight * 0.2 - 0.1;
  });

  for (var i = element.length - 1; i >= 0; i--)
  {
    element[i].elemAngle = i * Math.PI * 2 / element.length;
  }

  setInterval(render, 60);


  function render()
  {
    for (var i = element.length - 1; i >= 0; i--)
    {
      var angle = element[i].elemAngle + offset;
      x = 120 + Math.sin(angle) * 30;
      y = 45 + Math.cos(angle) * 40;
      size = Math.round(40 - Math.sin(angle) * 40);
      var elementCenter = $(element[i]).width() / 2;
      var leftValue = (($list.width() / 2) * x / 100 - elementCenter) + "px"
      $(element[i]).css("fontSize", size + "pt");
      $(element[i]).css("opacity", size / 100);
      $(element[i]).css("zIndex", size);
      $(element[i]).css("left", leftValue);
      $(element[i]).css("top", y + "%");
    }
    offset += stepping;
  }
});
</script>

$list.mousemove() 函數(shù)是鼠標(biāo)移上去后觸發(fā)的事件。當(dāng)刪除這個函數(shù)時,文字滾動就沒有了鼠標(biāo)觸發(fā)事件。即是說文字滾動方向是固定的了,不會受到鼠標(biāo)控制方向和改變速度。

render() 函數(shù)是文字滾動實現(xiàn)代碼。

offset += stepping; 這行代碼控制文字滾動方向。這個是向下滾動。當(dāng)改行代碼改為offset -= stepping;時,文字向上滾動。

CSS

CSS代碼相當(dāng)?shù)纳佟V饕嵌xdiv盒子樣式,和標(biāo)簽云的樣式。

*{margin:0;padding:0;list-style-type:none;}
body{font-family:Arial, "MS Trebuchet", sans-serif;background-color:#111;}
#list{margin:0 auto;height:600px;width:600px;overflow:hidden;position:relative;background-color:#000;}
#list a{position:absolute;text-decoration:none;color:#666;}
#list a:hover{color:#ccc;}

總結(jié)

本文介紹了jQuery實現(xiàn)文字以3D動畫形式循環(huán)向上或向下滾動,它可分為幾種動畫模式,你可以通過簡單的更改代碼來實現(xiàn),喜歡的朋友可以直接下載源碼備用。

相關(guān)文章

標(biāo)簽: JQuery  文字滾動  
x
  • 站長推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */