苹果手机弹出框input光标错位问题

遇到一个bug苹果手机弹出框用fixed定位,弹框内有input可编辑,当获取光标后输入或删除文字时光标会错位,找了很多资料没有找到具体的解决办法,最终将fixed定位改成absolute定位。并禁止屏幕滚动。整个代码如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />      
    </head>
    <style type="text/css">
        .nn {
            width: 100%;
            height: 100%;
        }
        input {
            border: none;
            border: 3px solid;
            border-color: pink;
        }
        p {
            font-size: 12px;
            transform:scale(0.875);
        }
        .crap {
            width: 100%;
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            background: rgba(0,0,0,0.5);
            padding-top: 0.1px;
        }
        
        .crap div {
            width: 80%;
            height: 100px;
            padding-top:0.1px;
            
            background-color: #FFF;
            display: block;
            margin: 0 auto;
            margin-top: 200px;
        }
        
        
        .crap input {
            border-color: red;
            display: block;
            margin: 0 auto;
            margin-top: 10px;
        }
        .crap p {
            background-color: #fff;
            width: 100%;
            text-align: center;
        }
    </style>
    <body>
        <div class="nn">
            <ul>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <p class="btn">点我点我点我呀呀呀呀呀</p>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
                <li>好的</li>
                <li>好吗</li>
                <li class="active">好呀</li>
            </ul>
        </div>
        <div class="crap">
            <div class="color">
                <input type="text" name="" id="" value="" />
                <p class="noBtn">取消</p>
            </div>
        </div>      
    </body>
    <script src="js/jquery-2.2.3.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
        $('.crap').css('display','none');   
        $('.btn').on('click',function() {
            $('html').scrollTop(0)
            $('body').css({'height':'100%','overflow':'hidden'});
            $('html').css({'height':'100%','overflow':'hidden'})
            $('.crap').css('display','block');      
            
        });
        
        $('.noBtn').on('click',function() {
            $('.crap').css('display','none');   
            $('body').css({'height':'auto','overflow':'scroll'})
            $('html').css({'height':'auto','overflow':'scroll'})
        });
        
        $('.crap').on('touchmove',function(event) {
            $('body').css('overflow','hidden')
            event.stopPropagation()
        })

    </script>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容