zoukankan      html  css  js  c++  java
  • javascript拖拽滑动条

    本文将会介绍两种拖拽滑动条的情况,有需要的小伙伴可以参考一下。

    1、被拖拽内容长度小于父元素内容长度,效果图如下所示:

    代码:

    <!DOCTYPE html>
    <html>
    
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    	<style>
    		#div0 {
    			 500px;
    			height: 30px;
    			position: absolute;
    			border: 1px solid gray;
    		}
    
    		#div1 {
    			position: absolute;
    			 100px;
    			height: 30px;
    			background: red;
    			cursor: move;
    		}
    	</style>
    </head>
    
    <body>
    	<div id="div0">
    		<div id="div1"></div>
    	</div>
    </body>
    
    </html>
    <script>
    
    	div1.onmousedown = function (e) {
    		var _x = e.clientX - div1.offsetLeft;
    		document.onmousemove = function (e) {
    			var x = e.clientX - _x;
    			if (x < 0) { x = 0 }
    			if (x > div0.offsetWidth - div1.offsetWidth - 2) { x = div0.offsetWidth - div1.offsetWidth - 2 }
    			div1.style.left = x + "px";
    		}
    		document.onmouseup = function () {
    			document.onmousemove = null;
    			document.onmouseup = null;
    		}
    		return false;
    	}
    
    
    </script>
    

    2、被拖拽内容长度大于父元素内容长度,效果图如下所示:

    代码:

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
    
            html,
            body {
                 100%;
                height: 100%;
                overflow: hidden;
            }
    
            .div0 {
                 390px;
                height: 40px;
                position: relative;
                margin: 100px auto;
                overflow: hidden;
            }
    
            .div1 {
                position: absolute;
                white-space: nowrap;
                font-size: 0px;
            }
    
            ul li {
                list-style: none;
                display: inline-block;
                 129px;
                height: 40px;
                border-right: 1px solid black;
                background: blue;
                font-size: 14px;
            }
        </style>
    </head>
    
    <body>
        <div class="div0" id="div0">
            <div class="div1" id="div1">
                <ul>
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                    <li>5</li>
                    <li>6</li>
                </ul>
            </div>
        </div>
        <script>
            div1.onmousedown = function (e) {
                var _x = e.clientX - div1.offsetLeft;
                document.onmousemove = function (e) {
                    var x = e.clientX - _x;
                    if (x > 0) { x = 0 }
                    if (x < div0.offsetWidth - div1.offsetWidth) { x = div0.offsetWidth - div1.offsetWidth }
                    div1.style.left = x + "px";
                }
                document.onmouseup = function () {
                    document.onmousemove = null;
                    document.onmouseup = null;
                }
                return false;
            }
        </script>
    </body>
    
    </html>
    

      

  • 相关阅读:
    卡嘉mysql命令
    Go并发控制和超时控制
    sync包介绍
    Golang-RSA加密解密-数据无大小限制
    GO json 如何转化为 map 和 struct
    go之gorm
    go mod 生成 vendor
    go语言中找&和*区别
    Swoole的process通信的方式
    centos安装python3
  • 原文地址:https://www.cnblogs.com/cyfeng/p/13073463.html
Copyright © 2011-2022 走看看