Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[已解决] 全站动态的详细说明

[复制链接]
米虫 发表于 2009-7-30 16:22:35 | 显示全部楼层 |阅读模式
本帖最后由 米虫 于 2009-8-1 06:54 编辑

演示:http://www.360ay.com


首先打开 source/script_common.js 把以下JS放入
  1. function Marquee()
  2. {
  3.         this.ID = document.getElementById(arguments[0]);
  4.         if(!this.ID)
  5.         {
  6.                 alert("您要设置的"" + arguments[0] + ""初始化错误\r\n请检查标签ID设置是否正确!");
  7.                 this.ID = -1;
  8.                 return;
  9.         }
  10.         this.Direction = this.Width = this.Height = this.DelayTime = this.WaitTime = this.CTL = this.StartID = this.Stop = this.MouseOver = 0;
  11.         this.Step = 1;
  12.         this.Timer = 30;
  13.         this.DirectionArray = {"top":0 , "up":0 , "bottom":1 , "down":1 , "left":2 , "right":3};
  14.         if(typeof arguments[1] == "number" || typeof arguments[1] == "string")this.Direction = arguments[1];
  15.         if(typeof arguments[2] == "number")this.Step = arguments[2];
  16.         if(typeof arguments[3] == "number")this.Width = arguments[3];
  17.         if(typeof arguments[4] == "number")this.Height = arguments[4];
  18.         if(typeof arguments[5] == "number")this.Timer = arguments[5];
  19.         if(typeof arguments[6] == "number")this.DelayTime = arguments[6];
  20.         if(typeof arguments[7] == "number")this.WaitTime = arguments[7];
  21.         if(typeof arguments[8] == "number")this.ScrollStep = arguments[8];
  22.         this.ID.style.overflow = this.ID.style.overflowX = this.ID.style.overflowY = "hidden";
  23.         this.ID.noWrap = true;
  24.         this.IsNotOpera = (navigator.userAgent.toLowerCase().indexOf("opera") == -1);
  25.         if(arguments.length >= 7)this.Start();
  26. }

  27. Marquee.prototype.Start = function()
  28. {
  29.         if(this.ID == -1)return;
  30.         if(this.WaitTime < 800)this.WaitTime = 800;
  31.         if(this.Timer < 20)this.Timer = 20;
  32.         if(this.Width == 0)this.Width = parseInt(this.ID.style.width);
  33.         if(this.Height == 0)this.Height = parseInt(this.ID.style.height);
  34.         if(typeof this.Direction == "string")this.Direction = this.DirectionArray[this.Direction.toString().toLowerCase()];
  35.         this.HalfWidth = Math.round(this.Width / 2);
  36.         this.HalfHeight = Math.round(this.Height / 2);
  37.         this.BakStep = this.Step;
  38.         this.ID.style.width = this.Width + "px";
  39.         this.ID.style.height = this.Height + "px";
  40.         if(typeof this.ScrollStep != "number")this.ScrollStep = this.Direction > 1 ? this.Width : this.Height;
  41.         var templateLeft = "<table cellspacing='0' cellpadding='0' style='border-collapse:collapse;display:inline;'><tr><td noWrap=true style='white-space: nowrap;word-break:keep-all;'>MSCLASS_TEMP_HTML</td><td noWrap=true style='white-space: nowrap;word-break:keep-all;'>MSCLASS_TEMP_HTML</td></tr></table>";
  42.         var templateTop = "<table cellspacing='0' cellpadding='0' style='border-collapse:collapse;'><tr><td>MSCLASS_TEMP_HTML</td></tr><tr><td>MSCLASS_TEMP_HTML</td></tr></table>";
  43.         var msobj = this;
  44.         msobj.tempHTML = msobj.ID.innerHTML;
  45.         if(msobj.Direction <= 1)
  46.         {
  47.                 msobj.ID.innerHTML = templateTop.replace(/MSCLASS_TEMP_HTML/g,msobj.ID.innerHTML);
  48.         }
  49.         else
  50.         {
  51.                 if(msobj.ScrollStep == 0 && msobj.DelayTime == 0)
  52.                 {
  53.                         msobj.ID.innerHTML += msobj.ID.innerHTML;
  54.                 }
  55.                 else
  56.                 {
  57.                         msobj.ID.innerHTML = templateLeft.replace(/MSCLASS_TEMP_HTML/g,msobj.ID.innerHTML);
  58.                 }
  59.         }
  60.         var timer = this.Timer;
  61.         var delaytime = this.DelayTime;
  62.         var waittime = this.WaitTime;
  63.         msobj.StartID = function(){msobj.Scroll()}
  64.         msobj.Continue = function()
  65.                                 {
  66.                                         if(msobj.MouseOver == 1)
  67.                                         {
  68.                                                 setTimeout(msobj.Continue,delaytime);
  69.                                         }
  70.                                         else
  71.                                         {        clearInterval(msobj.TimerID);
  72.                                                 msobj.CTL = msobj.Stop = 0;
  73.                                                 msobj.TimerID = setInterval(msobj.StartID,timer);
  74.                                         }
  75.                                 }

  76.         msobj.Pause = function()
  77.                         {
  78.                                 msobj.Stop = 1;
  79.                                 clearInterval(msobj.TimerID);
  80.                                 setTimeout(msobj.Continue,delaytime);
  81.                         }

  82.         msobj.Begin = function()
  83.                 {
  84.                         msobj.ClientScroll = msobj.Direction > 1 ? msobj.ID.scrollWidth / 2 : msobj.ID.scrollHeight / 2;
  85.                         if((msobj.Direction <= 1 && msobj.ClientScroll <= msobj.Height + msobj.Step) || (msobj.Direction > 1 && msobj.ClientScroll <= msobj.Width + msobj.Step))                        {
  86.                                 msobj.ID.innerHTML = msobj.tempHTML;
  87.                                 delete(msobj.tempHTML);
  88.                                 return;
  89.                         }
  90.                         delete(msobj.tempHTML);
  91.                         msobj.TimerID = setInterval(msobj.StartID,timer);
  92.                         if(msobj.ScrollStep < 0)return;
  93.                         msobj.ID.onmousemove = function(event)
  94.                                                 {
  95.                                                         if(msobj.ScrollStep == 0 && msobj.Direction > 1)
  96.                                                         {
  97.                                                                 var event = event || window.event;
  98.                                                                 if(window.event)
  99.                                                                 {
  100.                                                                         if(msobj.IsNotOpera)
  101.                                                                         {
  102.                                                                                 msobj.EventLeft = event.srcElement.id == msobj.ID.id ? event.offsetX - msobj.ID.scrollLeft : event.srcElement.offsetLeft - msobj.ID.scrollLeft + event.offsetX;
  103.                                                                         }
  104.                                                                         else
  105.                                                                         {
  106.                                                                                 msobj.ScrollStep = null;
  107.                                                                                 return;
  108.                                                                         }
  109.                                                                 }
  110.                                                                 else
  111.                                                                 {
  112.                                                                         msobj.EventLeft = event.layerX - msobj.ID.scrollLeft;
  113.                                                                 }
  114.                                                                 msobj.Direction = msobj.EventLeft > msobj.HalfWidth ? 3 : 2;
  115.                                                                 msobj.AbsCenter = Math.abs(msobj.HalfWidth - msobj.EventLeft);
  116.                                                                 msobj.Step = Math.round(msobj.AbsCenter * (msobj.BakStep*2) / msobj.HalfWidth);
  117.                                                         }
  118.                                                 }
  119.                         msobj.ID.onmouseover = function()
  120.                                                 {
  121.                                                         if(msobj.ScrollStep == 0)return;
  122.                                                         msobj.MouseOver = 1;
  123.                                                         clearInterval(msobj.TimerID);
  124.                                                 }
  125.                         msobj.ID.onmouseout = function()
  126.                                                 {
  127.                                                         if(msobj.ScrollStep == 0)
  128.                                                         {
  129.                                                                 if(msobj.Step == 0)msobj.Step = 1;
  130.                                                                 return;
  131.                                                         }
  132.                                                         msobj.MouseOver = 0;
  133.                                                         if(msobj.Stop == 0)
  134.                                                         {
  135.                                                                 clearInterval(msobj.TimerID);
  136.                                                                 msobj.TimerID = setInterval(msobj.StartID,timer);
  137.                                                         }
  138.                                                 }
  139.                 }
  140.         setTimeout(msobj.Begin,waittime);
  141. }

  142. Marquee.prototype.Scroll = function()
  143. {
  144.         switch(this.Direction)
  145.         {
  146.                 case 0:
  147.                         this.CTL += this.Step;
  148.                         if(this.CTL >= this.ScrollStep && this.DelayTime > 0)
  149.                         {
  150.                                 this.ID.scrollTop += this.ScrollStep + this.Step - this.CTL;
  151.                                 this.Pause();
  152.                                 return;
  153.                         }
  154.                         else
  155.                         {
  156.                                 if(this.ID.scrollTop >= this.ClientScroll)
  157.                                 {
  158.                                         this.ID.scrollTop -= this.ClientScroll;
  159.                                 }
  160.                                 this.ID.scrollTop += this.Step;
  161.                         }
  162.                 break;

  163.                 case 1:
  164.                         this.CTL += this.Step;
  165.                         if(this.CTL >= this.ScrollStep && this.DelayTime > 0)
  166.                         {
  167.                                 this.ID.scrollTop -= this.ScrollStep + this.Step - this.CTL;
  168.                                 this.Pause();
  169.                                 return;
  170.                         }
  171.                         else
  172.                         {
  173.                                 if(this.ID.scrollTop <= 0)
  174.                                 {
  175.                                         this.ID.scrollTop += this.ClientScroll;
  176.                                 }
  177.                                 this.ID.scrollTop -= this.Step;
  178.                         }
  179.                 break;

  180.                 case 2:
  181.                         this.CTL += this.Step;
  182.                         if(this.CTL >= this.ScrollStep && this.DelayTime > 0)
  183.                         {
  184.                                 this.ID.scrollLeft += this.ScrollStep + this.Step - this.CTL;
  185.                                 this.Pause();
  186.                                 return;
  187.                         }
  188.                         else
  189.                         {
  190.                                 if(this.ID.scrollLeft >= this.ClientScroll)
  191.                                 {
  192.                                         this.ID.scrollLeft -= this.ClientScroll;
  193.                                 }
  194.                                 this.ID.scrollLeft += this.Step;
  195.                         }
  196.                 break;

  197.                 case 3:
  198.                         this.CTL += this.Step;
  199.                         if(this.CTL >= this.ScrollStep && this.DelayTime > 0)
  200.                         {
  201.                                 this.ID.scrollLeft -= this.ScrollStep + this.Step - this.CTL;
  202.                                 this.Pause();
  203.                                 return;
  204.                         }
  205.                         else
  206.                         {
  207.                                 if(this.ID.scrollLeft <= 0)
  208.                                 {
  209.                                         this.ID.scrollLeft += this.ClientScroll;
  210.                                 }
  211.                                 this.ID.scrollLeft -= this.Step;
  212.                         }
  213.                 break;
  214.         }
  215. }
  216. //-->




  217. --------------------------------------------------------------------------------------------





  218. 然后打开根目录的 common.php 把下边语句放入


  219.         //大家的最新动态
  220.         $feedlist = array();
  221.         $query = $_SGLOBAL['db']->query("SELECT * FROM ".tname('feed')." WHERE friend='0' ORDER BY dateline DESC LIMIT 0,50");
  222.         while ($value = $_SGLOBAL['db']->fetch_array($query)) {
  223.                 realname_set($value['uid'], $value['username']);
  224.                 $feedlist[] = $value;
  225.         }

  226.        //格式化动态
  227. foreach ($feedlist as $key => $value) {
  228.         $feedlist[$key] = mkfeed($value);
  229. }
复制代码
--------------------------------------------------------------------------------------------




打开样式表找到.ifeed 添加进去
  1. .ifeed {width:750px; margin:0px auto;}
  2. .ifeed li{ float:left; margin-left:5px; margin:0px; border:0px;}
  3. .ifeed li a{ color:#2C629E;}
复制代码
--------------------------------------------------------------------------------------------









下边代码放到header模板里边可以每个页面都可以看见


<!--大家都在干什么-->
  1.     <div class="ifeed">
  2.         <ul id="mqdiv" style="overflow:hidden; width:740px; height:18px;">
  3.         <!--{loop $feedlist $value}-->
  4.         <li"><a href="space.php?uid=$value[uid]">$value[title_template]</a></li>
  5.         <!--{/loop}-->
  6.         </ul>
  7.         </div>
  8.         <script>new Marquee("mqdiv",2,1,968,18,50,4000,500);</script>
复制代码
<!--大家都在干什么结束-->
vaction 发表于 2009-7-30 18:03:42 | 显示全部楼层
..........................

什么意思啊??代码少帖一些。内容多说一些。。。
回复

使用道具 举报

voguecn 发表于 2009-7-30 18:18:18 | 显示全部楼层
什么效果,又没图! 又没地址!
回复

使用道具 举报

凡军 发表于 2009-7-30 18:42:48 | 显示全部楼层
照做就可以了 !
回复

使用道具 举报

a624762500 发表于 2009-7-31 19:30:08 | 显示全部楼层
要达到的效果是什么样子的
回复

使用道具 举报

反调的华丽 发表于 2009-7-31 20:57:58 | 显示全部楼层
LZ我求求你了 告诉我要达到的效果吧  好奇心被你激起来了
回复

使用道具 举报

yanxx318 发表于 2009-8-1 03:44:20 | 显示全部楼层
能麻烦说一下哪个参数是控制速度的么?
回复

使用道具 举报

 楼主| 米虫 发表于 2009-8-1 06:54:07 | 显示全部楼层
<script>new Marquee("mqdiv",2,1,968,18,50,4000,500);</script>
能麻烦说一下哪个参数是控制速度的么?
yanxx318 发表于 2009-8-1 03:44



<script>new Marquee("mqdiv",2,1,968,18,50,4000,500);</script>
回复

使用道具 举报

aiyooo 发表于 2009-8-1 08:05:23 | 显示全部楼层
写的不错,学习了,支持了!

评分

1

查看全部评分

回复

使用道具 举报

偶尔郁闷 发表于 2009-8-1 08:31:14 | 显示全部楼层
记号先............
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-17 07:40 , Processed in 0.030537 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表