zoukankan      html  css  js  c++  java
  • JS上下无缝滚动

    html代码

    <?xml version="1.0" encoding="UTF-8" ?>  
    <%@ page language="java" contentType="text/html; charset=UTF-8"  
        pageEncoding="UTF-8"%>  
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml">  
    <head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
    <title>scrollTop测试示例</title>  
      
    <style>  
    <!--   
    #out {   
        200px;   
        height:80px;   
        border:solid 1px blue;   
        overflow:hidden;   
    }   
    #in ul {   
         100%;   
    }   
    #in ul li {   
         60%;   
        float: left;   
        overflow: hidden;   
        list-style: none;   
    }   
    -->  
    </style>  
    </head>  
    <body>  
    <div id="out">  
        <div id="in">  
            <ul>  
                <li>第1行</li>  
                <li>第2行</li>  
                <li>第3行</li>  
                <li>第4行</li>  
                <li>第5行</li>  
            </ul>  
            <div style="clear: both;"></div>  
        </div>  
    </div>  
    </body>  
    </html>  
    

    Js代码

    <script type="text/javascript">   
    var $ = function(id) {   
        return "string" == typeof id ? document.getElementById(id) : id;   
    };   
    // 实例化一个对象并调用对象的initialize方法   
    var Class = {   
        create : function() {   
            return function() {   
                this.initialize.apply(this, arguments);   
            };   
        }   
    };   
    // 为Object添加一个extend方法   
    Object.extend = function(destination, source) {   
        for ( var property in source) {   
            destination[property] = source[property];   
        }   
        return destination;   
    };   
    // 为对象注册事件   
    var addEventHandler = function(oTarget, sEventType, fnHandler) {   
        if (oTarget.addEventListener) {   
            oTarget.addEventListener(sEventType, fnHandler, false);   
        } else if (oTarget.attachEvent) {   
            oTarget.attachEvent("on" + sEventType, fnHandler);   
        } else {   
            oTarget["on" + sEventType] = fnHandler;   
        }   
    };   
    var Scroll = Class.create();   
    Scroll.prototype = {   
        initialize : function(outObj, inObj, options) {   
            var oScroll = this;   
            var iOut = $(outObj);   
            var iIn = $(inObj);   
            this.outHeight = iOut.offsetHeight;   
            this.inHeight = iIn.offsetHeight;   
      
            if (this.outHeight >= this.inHeight) return;   
      
            iOut.style.overflow = "hidden";   
            iIn.appendChild(iIn.cloneNode(true));   
      
            this.setOptions(options);   
            this.outObj = iOut;   
            this.timer = null;   
      
            this.side = 1; // 1:向上;2:向下   
            switch(this.options.side) {   
                case "down" :   
                    this.side = -1;   
                    break;   
                case "up":   
                default:   
                    this.side = 1;   
            }   
            addEventHandler(iIn, "mouseover", function() {oScroll.stop();});   
            addEventHandler(iIn, "mouseout", function() {oScroll.start();});   
            this.start();   
        },   
        setOptions : function(options) {   
            this.options = {   
                step : 1, // 每次滚动的px量   
                side : "up", // 滚动的方向   
                time : 10 // 滚动的间隔时间(滚动速度)   
            };   
            Object.extend(this.options, options || {});   
        },   
        scroll : function() {   
            var inHeight = this.inHeight, outHeight = this.outHeight, iStep = this.options.step * this.side, time = this.options.time;   
            var iScrollTop = this.outObj.scrollTop;   
            if (iScrollTop >= (inHeight * 2 - outHeight)) {   
                iScrollTop -= inHeight;   
            } else if (iScrollTop <= 0) {   
                iScrollTop += inHeight;   
            }          
            this.outObj.scrollTop = iScrollTop + iStep;   
               
            var oScroll = this;   
            this.timer = setTimeout(function() {oScroll.scroll();}, time);   
        },    
        start : function() {   
            this.scroll();   
        },   
        stop : function() {   
            clearTimeout(this.timer);   
        }   
    };   
    window.onload = function() {   
        new Scroll("out", "in", {step : 1, side : "up", time : 20});   
    };   
    </script>  
    

  • 相关阅读:
    ORACLE安装(12c-Redhat6.5)
    Exchange Pause or stop transport service
    Exchange Port
    Oracle的启动与关闭
    Exchange OAB(Offline Address Book)
    Exchange NLB 单播和多播模式比较
    Exchange Database Status(Copy Status ,Content Index State,QueueLength,Move Status...)
    发送邮件的三种方式:Send Mail Message
    Exchange Powershell:Get-Counter (List connections to OWA )
    Exchange Management Console Error
  • 原文地址:https://www.cnblogs.com/tangge/p/2030757.html
Copyright © 2011-2022 走看看