滚动经典最新话题[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 相关文章推荐
心扬JS分页函数代码
Sep 10 Javascript
js获取height和width的方法说明
Jan 06 Javascript
jQuery实现跟随鼠标运动图层效果的方法
Feb 02 Javascript
Javascript获取表单名称(name)的方法
Apr 02 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
Oct 26 Javascript
JS封装的自动创建表格的实现代码
Jun 15 Javascript
jQuery文字提示与图片提示效果实现方法
Jul 04 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
Nov 11 Javascript
JavaScript基于replace+正则实现ES6的字符串模版功能
Apr 25 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
Jul 13 Javascript
Vue.js实现输入框绑定的实例代码
Aug 24 Javascript
JavaScript 截取字符串代码实例
Sep 05 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函数strip_tags的一个bug浅析
2014/05/22 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
phpinfo的知识点总结
2019/10/10 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
最新pycharm安装教程
2020/11/18 Python
什么是Smart Navigation?
2016/07/03 面试题
建筑专业毕业生推荐信
2013/11/21 职场文书
周年庆典邀请函范文
2014/01/24 职场文书
物理力学求职信
2014/02/18 职场文书
师德师风个人反思
2014/04/28 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
优秀团员事迹材料2000字
2014/08/20 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
2015年班主任德育工作总结
2015/05/21 职场文书
【超详细】八大排序算法的各项比较以及各自特点
2021/03/31 Python
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android