zoukankan      html  css  js  c++  java
  • js左右分栏拖动效果,来自互联网

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>js实现左侧菜单拖动改变宽度</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <style>
            /* css样式不建议使用id选择器,此处为方便暂时使用, 请见谅 */
            * {
                margin: 0;
                padding: 0;
            }
    
            html, body {
                height: 100%;
                text-align: center;
            }
    
            body {
                position: relative;
            }
    
            .top {
                width: 100%;
                height: 88px;
                background-color: #ccc;
            }
    
            #left {
                position: absolute;
                top: 88px;
                right: 0;
                bottom: 0;
                left: 0;
                width: 220px;
            }
    
            #menu {
                width: 100%;
                height: 100%;
            }
    
            #drap-line {
                position: absolute;
                top: 0;
                right: 0;
                width: 4px;
                height: 100%;
                background-color: #999;
                cursor: e-resize;
            }
    
            #right {
                position: absolute;
                top: 88px;
                right: 0;
                bottom: 0;
                left: 220px;
            }
        </style>
    </head>
    
    <body>
        <div class="top">顶部导航</div>
        <div id="left">
            <div id="menu">
                <span>待拖拽的div</span>
            </div>
            <div id="drap-line"></div>
        </div>
        <div id="right">
            右边的div
        </div>
        <script>
            //获取dom函数
            function $(id) {
                return document.getElementById(id)
            }
    
            //设置最大/最小宽度
            var max_width = 400,
                min_width = 200;
    
            //获取dom
            var drapLine = $('drap-line'),
                left = $('left'),
                right = $('right');
    
            //记录鼠标相对left盒子x轴位置
            var mouse_x = 0;
    
            //鼠标移动事件
            function mouseMove(e) {
                var e = e || window.event;
                var left_width = e.clientX - mouse_x;
                left_width = left_width < min_width ? min_width : left_width;
                left_width = left_width > max_width ? max_width : left_width;
                left.style.width = left_width + 'px';
                right.style.left = left_width + 'px';
            }
            //终止事件
            function mouseUp() {
                document.onmousemove = null;
                document.onmouseup = null;
                //localStorage设置
                localStorage.setItem('sliderWidth', left.style.width)
            }
    
            window.onload = function () {
                //localStorage读取
                var history_width = localStorage.getItem('sliderWidth');
                if (history_width) {
                    left.style.width = history_width;
                    right.style.left = history_width;
                }
                //绑定鼠标按下事件
                drapLine.onmousedown = function (e) {
                    var e = e || window.event;
                    //阻止默认事件
                    e.preventDefault();
                    mouse_x = e.clientX - left.offsetWidth;
                    document.onmousemove = mouseMove;
                    document.onmouseup = mouseUp;
                }
            }
        </script>
    </body>
    
    </html>
  • 相关阅读:
    Linux查看进程和已知端口是否启动
    plsql安装
    windows中用批处理文件删除n天前的文件
    阿里云服务器25邮件端口问题
    通过rpm安装crontab
    [RHEL7.1]关闭防火墙及SElinux
    有了 itchat, python 调用微信个人号从未如此简单(新增 py3 支持)
    Linux中tty、pty、pts的概念区别
    不用写代码就能实现深度学习?手把手教你用英伟达 DIGITS 解决图像分类问题
    Hadoop 2.7.3 安装配置及测试
  • 原文地址:https://www.cnblogs.com/subendong/p/12206249.html
Copyright © 2011-2022 走看看