滚动经典最新话题[prototype框架]下编写

2016-02-19 12:01 6 1 收藏

有了下面这个滚动经典最新话题[prototype框架]下编写教程,不懂滚动经典最新话题[prototype框架]下编写的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - Web开发 】

前天见到sin100看到的那个日本网站的滚动,挖掘后原来是使用Ajax读取xml后显示出来的。

就弄了这个滚动经典最新话题的供朋友参考参考。
范例使用了prototype.js的ajax轻便型框架。
因为远程调用了 prototype.js 这个文件,测试的朋友请耐心等候一下下。

经典不允许远程调用别的站点的js文件,所以还请多一部操作,复制到本地运行查看结果。
代码如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="gb2312" 
head
    meta http-equiv="content-type" content="text/html; charset=gb2312" /
    meta name="author" content="Smiling Dolphin" /
    meta name="keywords" content="design, css, cascading, style, sheets, xhtml, graphic design, w3c, web standards, visual, display, java, javascript, c++, php, jsp, asp, py, pl" /
    meta name="description" content="my favorites language." /
    meta name="robots" content="all" /
    titleDolphin Document/title

    style type="text/css" title="currentStyle" media="screen"
        #scroll{width:99%;height:25px;border:1px solid #2BBB00;background:#E7FFE0;overflow:hidden;}
        #scrollFrame,#scrollFrame2{line-height:25px;font-size:13px; word-break:keep-all;line-break:normal; white-space:nowrap;}
        #scrollFrame span,#scrollFrame2 span{display:inline;margin-right:20px;}
    /style
    script src="http://prototype.conio.net/dist/prototype-1.4.0.js" type="text/javascript"/script
/head
body
div id="scroll"
    div id="scrollFrame"/div
    div id="scrollFrame2"/div
/div
script language="javascript" type="text/javascript"

var Ticker = Class.create();
Ticker.prototype = {
    initialize: function() {
        try{
        this.scrollType = "normal";
        this.m_scroll = $(arguments[0]);
        this.m_scroll_1 = $(arguments[1]);
        this.m_scroll_2 = $(arguments[2]);
        this.m_speed = (arguments[3][0])?arguments[3][0]:3;
        this.m_request = (arguments[3][1])?arguments[3][1]:60;
        this.m_loop = (arguments[3][2])?arguments[3][2]:0.05;
        this.m_url = (arguments[3][3])?arguments[3][3]:'http://bbs.blueidea.com/rss.php?fid=1';
        }catch(e){}
        finally{}
        Event.observe(this.m_scroll, 'mouseover', this.mouseover.bindAsEventListener(this), false);
        Event.observe(this.m_scroll, 'mouseout',  this.mouseout.bindAsEventListener(this), false);
        new PeriodicalExecuter(this.scroll.bindAsEventListener(this), this.m_loop);
        new PeriodicalExecuter(this.load.bindAsEventListener(this),   this.m_request);
        this.load();
    },
    load:function(){
        var request = new Ajax.Request(
          this.m_url,
          {
            method:    'post',
            onSuccess: this.update.bindAsEventListener(this),
            onFailure: false,
            on304:     false
          }
        );
    },
    update:function(request){
        var items = request.responseXML.getElementsByTagName("item");
        for(var i=0;iitems.length;i++){

            var title = items[i].childNodes[0].childNodes[0].nodeValue;
            var link = items[i].childNodes[1].childNodes[0].nodeValue;
            var description = items[i].childNodes[2].childNodes[0].nodeValue;
            var author = items[i].childNodes[4].childNodes[0].nodeValue;
            this.m_scroll_1.innerHTML += "spana href=""+link+"" title=""+author+":rn"+description+"""+i+":"+title+"/a/span";
        }
        this.m_scroll_2.innerHTML = this.m_scroll_1.innerHTML;
    },
    scroll:function(event){
        switch(this.scrollType){
            case "slow":
                if(this.m_scroll_2.offsetWidth-this.m_scroll.scrollLeft=0){
                    this.m_scroll.scrollLeft -= this.m_scroll_1.offsetWidth;
                }else{
                    this.m_scroll.scrollLeft++;
                }
            break;
            case "normal":
            default:
                if(this.m_scroll_2.offsetWidth-this.m_scroll.scrollLeft=0){
                    this.m_scroll.scrollLeft -= this.m_scroll_1.offsetWidth;
                }else{
                    this.m_scroll.scrollLeft+=3;
                }
            break;
        }
    },
    mouseover:function(){
        this.scrollType = 'slow';
        return false;
    },
    mouseout:function(){
        this.scrollType = 'normal';
        return false;
    }
}
ticker1  = new Ticker("scroll","scrollFrame","scrollFrame2",[3,60,0.05,'http://bbs.blueidea.com/rss.php?fid=1']);

/script

/body
/html

来源:http://www.tulaoshi.com/n/20160219/1599533.html

延伸阅读
标签: Web开发
一直没有没有时间看prototype,现在好了,已经更新到了1.5 pre1,呵呵,强大的功能不得不学习啊,这个是提升自己JS能力的又一个捷径. 1. Prototype是什么? 或许你还没有用过它, prototype.js 是一个由Sam Stephenson写的JavaScript包。这个构思奇妙编写良好的一段兼容标准的一段代码将承担创造胖客户端, 高交互性WEB应用程序的重...
三、CGI编程实例 本节将用VB编写一个处理主页客户留言簿的CGI程序。除了要调用本文前面所介绍的Win32API函数外,程序中还调用了Win32API函数GetTempFileName()来获得一个唯一的临时文件名。程序中的函数UrlDecode()用来对客户端的输入进行URL译码。函数GetCgiValue()则用来分解字符串,根据表单元素的NAME属性获取其VALUE值,并调用Ur...
在.NET下编写中文代码程序 郑佐2005-3-9 一年前,有一次在用Access数据库编程的时候,通过VS.NET数据设计器向导生成数据层代码,查看生成的代码,发现有许多中文,原来数据库中的表名和字段名用的就是中文,程序正常运行,查看相关文档才知道原来VS.NET默认的编码是UTF-8。不久前在一篇blog上看到讲易语言,所以干脆用VS.NET写一些中文代码来...
标签: 职场
老天给我们两只耳朵一个嘴巴,本来就是让我们多听少说的。善于倾听,才是成熟的人最基本的素质。下面给大家分享最新职场经典励志小故事推荐,一起来看看吧。 最新职场经典励志小故事推荐 忠诚的 狗 小狗汤姆到处找工作,忙碌了好多天,却毫无所获。 他垂头丧气地向妈妈诉苦说:“我真是个一无是处的废物,没有一家...
标签: windows 操作系统
  我们在使用Windows操作系统的时候,经常遇到这样或者那样的问题,这些问题有些是我们人为造成了,有些是系统天生的缺陷,下面笔者就网上读者提出的一些关于Windows操作系统的相关问题进行了简单的回答,希望对你在使用操作系统的时候有所帮助。 删除系统错误汇报 我有台电脑装的是Windows XP,最近在msconfig启动项中...

经验教程

715

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部