zoukankan      html  css  js  c++  java
  • 超酷Javascript拖拽翻页效果,贴出核心代码(附DEMO)

    超酷Javascript拖拽翻页效果,贴出核心代码。。。
    最近在合肥网
    http://bbs.wehefei.com/
    进行开发的过程用到这个非常酷的特效,也算是分享下吧。

    代码
    <script>
    function id(obj){
            
    return document.getElementById(obj);
    }
    var page;
    var lm,mx;
    var md=false;
    var sh=0;
    var en=false;
    window.onload
    =function(){
            page
    =document.getElementsByTagName("div");
            
    if(page.length>0){
                    page[
    0].style.zIndex=2;
            }
            
    for(i=0;i<page.length;i++){
                    page[i].className
    ="page";
                    page[i].innerHTML
    +="<span class=tip>第 "+(i+1)+"/"+page.length+" 页 提示:左右拖拽翻页</span>";
                    page[i].id
    ="page"+i;
                    page[i].i
    =i;
                    page[i].onmousedown
    =function(e){
                            
    if(!en){
                                    
    if(!e){e=e||window.event;}
                                    lm
    =this.offsetLeft;
                                    mx
    =(e.pageX)?e.pageX:e.x;
                                    
    this.style.cursor="w-resize";
                                    md
    =true;
                                    
    if(document.all){
                                            
    this.setCapture();
                                    }
    else{
                                            window.captureEvents(Event.MOUSEMOVE
    |Event.MOUSEUP);
                                    }
                            }
                    }
                    page[i].onmousemove
    =function(e){
                            
    if(md){
                                    en
    =true;
                                    
    if(!e){e=e||window.event;}
                                    
    var ex=(e.pageX)?e.pageX:e.x;
                                    
    this.style.left=ex-(mx-lm)+350;   
                                    
                                    
    if(this.offsetLeft<75){
                                            
    var cu=(this.i==0)?page.length-1:this.i-1;
                                            page[sh].style.zIndex
    =0;
                                            page[cu].style.zIndex
    =1;
                                            
    this.style.zIndex=2;
                                            sh
    =cu;
                                    }
                                    
    if(this.offsetLeft>75){
                                            
    var cu=(this.i==page.length-1)?0:this.i+1;
                                            page[sh].style.zIndex
    =0;
                                            page[cu].style.zIndex
    =1;
                                            
    this.style.zIndex=2;
                                            sh
    =cu;
                                    }                 
                            }
                    }
                    page[i].onmouseup
    =function(){
                            
    this.style.cursor="default";
                            md
    =false;
                            
    if(document.all){
                                    
    this.releaseCapture();
                            }
    else{
                                    window.releaseEvents(Event.MOUSEMOVE
    |Event.MOUSEUP);
                            }
                            flyout(
    this);
                    }
            }
    }
    function flyout(obj){
            
    if(obj.offsetLeft<75){
                    
    if(                (obj.offsetLeft + 350 - 20)        >        -275        ){
                            obj.style.left
    =obj.offsetLeft + 350 - 20;
                            window.setTimeout(
    "flyout(id('"+obj.id+"'));",0);
                    }
    else{
                            obj.style.left
    =-275;
                            obj.style.zIndex
    =0;
                            flyin(id(obj.id));
                    }
            }
            
    if(obj.offsetLeft>75){
                    
    if(                (obj.offsetLeft + 350 + 20)        <        1125        ){
                            obj.style.left
    =obj.offsetLeft + 350 + 20;
                            window.setTimeout(
    "flyout(id('"+obj.id+"'));",0);
                    }
    else{
                            obj.style.left
    =1125;
                            obj.style.zIndex
    =0;
                            flyin(id(obj.id));
                    }
            }
    }
    function flyin(obj){
            
    if(obj.offsetLeft<75){
                    
    if(                (obj.offsetLeft + 350 + 20)        <        425                ){
                            obj.style.left
    =obj.offsetLeft + 350 + 20;
                            window.setTimeout(
    "flyin(id('"+obj.id+"'));",0);
                    }
    else{
                            obj.style.left
    =425;
                            en
    =false;
                    }
            }
            
    if(obj.offsetLeft>75){
                    
    if(                (obj.offsetLeft + 350 - 20)        >        425                ){
                            obj.style.left
    =obj.offsetLeft + 350 - 20;
                            window.setTimeout(
    "flyin(id('"+obj.id+"'));",0);
                    }
    else{
                            obj.style.left
    =425;
                            en
    =false;
                    }
            }
    }
    </script>


     附DEMO,及下载地址:合肥网Labs

  • 相关阅读:
    ODOO开发-Pycharm开启debug模式
    pycharm开启debug模式报错汇总
    星辉Odoo模型开发教程4-常用字段属性
    星辉Odoo模型开发教程3-创建字段
    Business Object 开发
    Ubuntu安装masscan的两种方式
    HFish 蜜罐搭建测试
    【转】如何超过大多数人
    【译】13款入侵检测系统介绍
    【译】修复Ubuntu软件安装的锁文件问题
  • 原文地址:https://www.cnblogs.com/jincon/p/1952937.html
Copyright © 2011-2022 走看看