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


Posted in Javascript onOctober 03, 2006

前天见到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" /> 
    <title>Dolphin 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;i<items.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 += "<span><a href=\""+link+"\" title=\""+author+":\r\n"+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>
Javascript 相关文章推荐
让iframe自适应高度(支持XHTML,支持FF)
Jul 24 Javascript
JavaScript中的property和attribute介绍
Dec 26 Javascript
jQuery.getScript加载同域JS的代码
Feb 13 Javascript
Extjs4中的分页应用结合前后台
Dec 13 Javascript
js检测浏览器版本、核心、是否移动端示例
Apr 24 Javascript
jQuery实现鼠标划过展示大图的方法
Mar 09 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
javascript适合移动端的日期时间拾取器
Nov 10 Javascript
详解js数组的完全随机排列算法
Dec 16 Javascript
vue.js实现条件渲染的实例代码
Jun 22 Javascript
React事件处理的机制及原理
Dec 03 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
Aug 27 Javascript
图片自动更新(说明)
Oct 02 #Javascript
在线游戏大家来找茬II
Sep 30 #Javascript
静态页面的值传递(三部曲)
Sep 25 #Javascript
关于Blog顶部的滚动导航条代码
Sep 25 #Javascript
初学prototype,发个JS接受URL参数的代码
Sep 25 #Javascript
浅谈JavaScript中面向对象技术的模拟
Sep 25 #Javascript
理解JavaScript中的事件
Sep 23 #Javascript
You might like
PHP简介
2006/10/09 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
nuxt.js中间件实现拦截权限判断的方法
2018/11/21 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
Python的Urllib库的基本使用教程
2015/04/30 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
python语言使用技巧分享
2016/05/31 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
python与mysql数据库交互的实现
2020/01/06 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python基于模块Paramiko实现SSHv2协议
2020/04/28 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
可自定义箭头样式的CSS3气泡提示框
2016/03/16 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
三分钟英语演讲稿
2014/04/24 职场文书
地心历险记观后感
2015/06/15 职场文书
婚宴新娘致辞
2015/07/28 职场文书
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android