悬浮显示输入框内容

我们经常会有,输入框内容显示会显示不全,如下图

这时候我们通常会在鼠标移动到输入框时,显示一个浮动窗来显示里边的内容,方便查看 

具体怎么实现呢 ? 其实很简单 ,上代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui">
    <meta name="format-detection" content="telephone=no">
    <title>显示内容</title>
  </head>
  <body>
    <!-- built files will be auto injected -->
    <div ><input id="input" placeholder="请输入内容" width="100%"/></div>
    <div ><input id="input1" placeholder="请输入内容" width="100%"/></div>
    <div id="floatDiv" style="display: none; position: absolute; background-color: aqua; width: 50%;"></div>
    <script>
        window.onload = function (){
            var inputId = ['input','input1'];//需要浮动显示内容的input id
          
            var floatDiv = document.getElementById('floatDiv');
            for(var k = 0; k < inputId.length; k++ ){
                var input = document.getElementById(inputId[k]);
                //显示浮动窗
                input.onmouseover = function (ev){ 
                    var windowEvent = window.event; //避免windowEvent丢失
                    setTimeout(function(){
                        floatDiv.innerText = ev.toElement.value || '(空)';
                        floatDiv.style.display = 'block';
                        var mousePosition = getMousePos(windowEvent); //获取鼠标位置
                        floatDiv.style.left = mousePosition.x + 'px';
                        floatDiv.style.top =  mousePosition.y + 'px';
                    },200);
                };   
                //隐藏浮动窗
                input.onmouseout = function (ev) {   
                    floatDiv.style.display = 'none';
                };
            }
        };

    //获取鼠标相当于文档位置
    function getMousePos(event) {
       var e = event || window.event;
       var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
       var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
       var x = e.pageX || e.clientX + scrollX;
       var y = e.pageY || e.clientY + scrollY;
       //alert('x: ' + x + '\ny: ' + y);
       return { 'x': x, 'y': y };
    }
    
    </script>
  </body>
</html>

感谢您的阅读!如果文章中有任何错误,或者您有更好的理解和建议,欢迎和我联系!

发布了29 篇原创文章 · 获赞 18 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Baby_lucy/article/details/89532991