• 用鼠标拖动代替滚动条拖动


    <!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>无标题文档</title>
        <script type="text/javascript" src="jquery.min.js"></script>
        <script language="javascript">
            //设定整体框架适应屏幕大小
            function setFrame(){
                $("#dragWrap").width($('body').width());
                $("#dragBody").width($('body').width());
                $("#dragWrap").height($(document).height()-50);
            }
            
            $(document).ready(function (){
                setFrame();//加载时,重设框架高宽度
                
                //鼠标移动操作
                var drag = function drag(){
                 this.dragWrap = $("#dragWrap");
                this.init.apply(this,arguments);
                };
                drag.prototype = {
                  constructor:drag,
                  _dom : {},
                  _x : 0,
                  _y : 0,
                  _top :0,
                  _left: 0,
                  move : false,
                  down : false,
                  init : function () {
                    this.bindEvent();
                  },
                  bindEvent : function () {
                    var t = this;
                    $('body').on('mousedown','#dragWrap',function(e){
                      e && e.preventDefault();
                      if ( !t.move) {
                        t.mouseDown(e);
                      }
                    });
                    $('body').on('mouseup','#dragWrap',function(e){
                      t.mouseUp(e);
                    });
    
                    $('body').on('mousemove','#dragWrap',function(e){
                      if (t.down) {
                        t.mouseMove(e);
                      }
                    });
                  },
                  mouseMove : function (e) {
                    e && e.preventDefault();
                    this.move = true;
                    var x = this._x - e.clientX,
                        y = this._y - e.clientY,
                        dom = $('#dragWrap');
                    dom.scrollLeft(this._left + x);
                    dom.scrollTop(this._top + y);
                  },
                  mouseUp : function (e) {
                    e && e.preventDefault();
                    this.move = false;
                    this.down = false;
                    this.dragWrap.css('cursor','');
                  },
                  mouseDown : function (e) {
                    this.move = false;
                    this.down = true;
                    this._x = e.clientX;
                    this._y = e.clientY;
                    this._top = $('#dragWrap').scrollTop();
                    this._left = $('#dragWrap').scrollLeft();
                    this.dragWrap.css('cursor','move');
                  }
                };
                var drag = new drag();
                
            });
        </script>
    
        <style type="text/css">
            *{margin:0;padding:0;}
            html{background-color:#fff;}
            body{position:relative;height:100%;font-size:12px;font-family:"Microsoft YaHei";_font-family:"SimSun";}
            img,a:hover img{border:none;}
            a{text-decoration:none;color:#000;cursor:pointer;}
            ul,li{list-style:none;}
            #leftBar{width:0.9%;height:99.1%;top:0.9%;left:0.08%;}
            #dragWrap{position:relative;overflow:hidden;padding-top:50px;}
            #dragWrap img{vertical-align:top;}
            #dragBody{width:6974px;position:absolute;zoom:1;}
        </style>
    
    </head>
    
    <body>
        <div id="dragWrap">
            <div id="dragBody">
                <img src="big.jpg" style="6974px;height:4000px;" alt="" />
            </div>
        </div>
    </body>
    </html>

    此段代码实现了用鼠标拖动,代替滚动条拖动的效果,非常适合触摸屏使用。

  • 相关阅读:
    My.NET.ClassLibrary.Note.1
    DesignPattern.Ch12.Facade.Node
    DesignPattern.Ch10.Template Method.Note
    Oracle.sql.Note
    C#.Static Field And Static Constructor.Autocriticism
    DesignPattern.Ch4.Open Closed Principle.Note
    关于n!被整除的问题【算法实现】
    令人费解的编译错误:error C2144: syntax error : 'double' should be preceded by ';' 和 error C3646: ';' : unknown override specifier
    诡异难解决的错误:Windows已在xxx.exe中触发一个断点
    Linux(Ubuntu10.04 )下libxml2的安装以及使用示例
  • 原文地址:https://www.cnblogs.com/kukudelaomao/p/7279874.html
Copyright © 2020-2023  润新知