滚动经典最新话题[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控制文本框textarea输入字数限制的方法
Jun 17 Javascript
js算法中的排序、数组去重详细概述
Oct 14 Javascript
Javascript编写俄罗斯方块思路及实例
Jul 07 Javascript
微信JSSDK上传图片
Aug 23 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
Dec 16 Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
Oct 30 Javascript
JS+Canvas实现五子棋游戏
Aug 26 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
玩转图像函数库―常见图形操作
2006/09/03 PHP
PHP中动态HTML的输出技术
2006/10/09 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
jquery中each方法示例和常用选择器
2014/07/08 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
利用Python开发实现简单的记事本
2016/11/15 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
2019/03/14 Python
python中比较两个列表的实例方法
2019/07/04 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
Python面试题集
2012/03/08 面试题
学校办公室主任职责
2013/12/27 职场文书
模范教师事迹材料
2014/02/10 职场文书
三爱活动实施方案
2014/03/19 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
消防安全责任书
2014/04/14 职场文书
环境科学专业求职信
2014/08/04 职场文书
美术教师个人总结
2015/02/06 职场文书
自主招生自荐信格式
2015/03/04 职场文书
肖申克的救赎观后感
2015/06/02 职场文书