zoukankan      html  css  js  c++  java
  • slide box

    slide box
    <!doctype html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>slide box</title>
    <style>
    body, div, dl, dt, dd, ul, li, h1, h2, h3, input, textarea, p, form
    { margin: 0; padding: 0; }
    #slide
    { position:relative; width:600px; margin:0 auto; }
    #outerDiv
    { width:600px; height:120px; overflow:hidden; position:relative; margin:0 auto; }
    #innerDiv
    { width:1200px; overflow:hidden; }/*width = outerDiv.width * 2*/
    .contentDiv
    { width:99999px }
    .contentArea
    { position:relative; width:600px; height:120px; float:left; display:inline; }/*width = outerDiv.width - marginLeft*/
    .contentColumn
    { width:100px; height:100px; float:left; margin-right:20px; display:inline; }
    .slipBtn
    { position:absolute; top:50px; }
    .clear:after
    { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
    .clear
    { zoom:1; }

    </style>
    </head>
    <body>
    <div id="slide">
    <div id="outerDiv">
    <div id="innerDiv">
    <div id="contentDiv" class="contentDiv">
    <div id="contentArea" class="contentArea">
    <div class="contentColumn" style="background:#c00;"></div>
    <div class="contentColumn" style="background:#F93;"></div>
    <div class="contentColumn" style="background:#FF6;"></div>
    <div class="contentColumn" style="background:#0C3;"></div>
    <div class="contentColumn" style="background:#39c;"></div>
    </div>
    </div>
    </div>
    </div>
    <a href="javascript:void(0)" id="pre" title="previous" class="slipBtn" style="left:-80px;">previous</a>
    <a href="javascript:void(0)" id="next" title="next" class="slipBtn" style="right:-60px;">next</a>
    </div>
    <script>
    function $$(id){
    return typeof id == "string" ? document.getElementById(id) : id;
    }

    var each = function (obj, fn, scope) {
    for (var i = 0, n = obj.length ; i < n; i++) {
    if (fn.call(scope || obj[i], obj[i], i, obj) === false ) {
    break;
    }
    }
    },

    addEventHandler
    = function(oTarget, EventType, fnHandler){
    if(oTarget.addEventListener){
    oTarget.addEventListener(EventType, fnHandler,
    false);
    }
    else if(oTarget.attachEvent){
    oTarget.attachEvent(
    "on" + EventType,fnHandler);
    }
    else{
    oTarget[
    "on"+ EventType] = fnHandler;
    }
    },

    removeEventHandler
    = function(oTarget, EventType, fnHandler){
    if(oTarget.removeEventListener){
    oTarget.removeEventListener(EventType,fnHandler,
    false);
    }
    else if(oTarget.detachEvent){
    oTarget.detachEvent(
    "on" + EventType,fnHandler);
    }
    else{
    oTarget[
    "on"+EventType] = null;
    }
    };
    (
    function(curPos,preBtn,nextBtn){
    var s = "style",
    ua
    = navigator.userAgent.toUpperCase(),
    outerDiv
    = $$("outerDiv"),
    innerDiv
    = $$("innerDiv"),
    contentDiv
    = $$("contentDiv"),
    contentArea
    = $$("contentArea"),
    contentArea2
    = contentArea.cloneNode(true),
    addEvent
    = function(node, i){
    if(node.nodeType == 1){
    node.onclick
    = function(){
    sc(node,i);
    }
    }
    };
    contentArea2.id
    = "contentArea2";
    contentDiv.appendChild(contentArea2);

    each(contentArea.childNodes, addEvent);
    each(contentArea2.childNodes, addEvent);

    var sc = function(node,index){
    var count = 0,
    _self
    = arguments.callee;
    if(typeof _self.timer == "undefined") _self.timer = 0;
    clearTimeout(_self.timer);
    var move = function(){
    var pos = node.parentNode.offsetLeft + node.offsetLeft - contentDiv.offsetLeft - outerDiv.scrollLeft;
    if(outerDiv.scrollLeft == outerDiv.scrollWidth/2 && pos != 0) {
    outerDiv.scrollLeft -= outerDiv.scrollLeft;
    node
    = contentArea.childNodes[index]
    }
    else if(outerDiv.scrollLeft == 0 && pos != curPos*2) {
    outerDiv.scrollLeft
    = outerDiv.scrollWidth/2;
    node = contentArea2.childNodes[index]
    }
    if(pos > curPos){
    outerDiv.scrollLeft
    += 10
    }
    else if(pos < curPos){
    outerDiv.scrollLeft
    -= 10;
    }
    else if(pos == curPos){
    //callBack();
    return
    }
    _self.timer
    = setTimeout(arguments.callee, 32);
    }
    move();
    },

    slip
    = function(direction){
    var count = 0,
    _self
    = arguments.callee;
    if(typeof _self.timer == "undefined") _self.timer = 0;
    clearTimeout(_self.timer);
    var move = function(){
    if(direction == "right"){
    outerDiv.scrollLeft
    -= 10;
    if(outerDiv.scrollLeft == 0) outerDiv.scrollLeft = outerDiv.scrollWidth/2;
    }else if(direction == "left"){
    outerDiv.scrollLeft
    += 10;
    if(outerDiv.scrollLeft == outerDiv.scrollWidth/2) outerDiv.scrollLeft = 0;
    }
    count
    ++;
    if(count == curPos/20) {
    //callBack(node[s].background);
    return
    }
    setTimeout(arguments.callee,
    32);
    }
    move();
    },

    callBack
    = function(param) {
    var popup = document.createDiv("div");
    };
    if(typeof preBtn != "undefined") addEventHandler(preBtn,"click",function(){slip("right")});
    if(typeof nextBtn != "undefined") addEventHandler(nextBtn,"click",function(){slip("left")});
    })(
    240,$$("pre"),$$("next"))

    </script>
    </body>
    </html>
  • 相关阅读:
    单选文本及多行文本溢出问题
    div和textarea内容转换(****)
    URL OR PC/PHONE OR Strlen
    DocumentFragment(创建文档碎片节点)
    ETag
    重绘和回流
    自定义指令
    Angular JS 自定义服务
    jquery ajax 实例
    js 斐波那契序列
  • 原文地址:https://www.cnblogs.com/yili/p/1793902.html
Copyright © 2011-2022 走看看