美文网首页
常见问题 3

常见问题 3

作者: skoll | 来源:发表于2023-02-28 20:59 被阅读0次

    字体变小,图片变模糊

    1 .想让图片再手机显示更加清晰,比如使用2x的背景图来替代img标签。pc上看着是正常的

    h5网站input设置为type=number的问题

    1 .maxlength属性不能用。自己写js解决
    2 .form提交的时候默认取整。因为form提交会做表单验证,此时step默认是1,所以要主动设置step属性,如果想要绑定2位小数,就要这样setp='0.01'
    3 .安卓手机出现样式问题.需要手动重置样式

    input[type=number] {
        -moz-appearance:textfield;
    }
    input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{
        -webkit-appearance: none;
        margin: 0;
    }
    

    4 .这样默认样式我都用了nut-ui这个库。基本都不会遇到这些问题。因为在库里面这些输入框都感觉和原生差不多了
    5 .其实就是下一步要看看,引入哪些库还有没有必要,现在已经是按需引入了。

    select下拉选择设置

    1 .右对齐 select options{
    direction:rtl
    }
    //这个需求从来没见过

    2 .hover展开option

    function showDropdown(sltElement) {
        var event;
        event = document.createEvent('MouseEvents');
        event.initMouseEvent('mousedown', true, true, window);
        sltElement.dispatchEvent(event);
    }
    //创建一个mouse down事件
    

    3 .设置自己的下拉箭头

    select::-ms-expand { display:none; }
    

    4 .这种兼容性问题。我都不如觉得自己写组件了,没有必要一定死磕原生

    autoplay失效问题

    1 .必须要在一个click事件里面响应一下play,然后马上pause,后面自己在操作音乐就随便了
    2 .微信无法自动播放,需要引入微信的接口

    <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js "></script>
    document.addEventListener("WeixinJSBridgeReady ", function() {
        document.getElementById('music').play();
    }, false);
    

    3 .ios不支持animation-play-state 属性,无法实现音乐转圈停到一般的时候

    往返缓存

    1 .点击浏览器的回退不会自动执行js,特别是在苹果中,其实返回做了缓存,

    windos.onunload=function(){}
    
    window.onpageshow = function(evt){
      if(evt.persisted){ 
         document.body.style.display ="none ";
         location.reload();
      }
    };
    //还有一种处理情况
    onpageshow每次页面加载都会触发,无论是从缓存中加载还是正常加载,这是他和onload的区别;persisted判断页面是否从缓存中读出
    

    摇一摇播放音乐

    1 .shake.js 可以实现相关的功能

    元素点击产生背景或边框

    1 .-wenkit-tap-hightlight-color:rgba(0,0,0,0)
    2 .小米那边还是不行,那就要用div标签代替a链接了

    transition 清除闪屏

    -webkit-transform-style: preserve-3d; //设置内嵌的元素在 3D 空间如何呈现:保留3D
    -webkit-backface-visibility:hidden; //设置进行转换的元素的背面在面对用户时是否可见:隐藏
    -webkit-perspective: 1000;
    

    input 的placeholder 文本位置偏上的情况

    1 . line-height:normal;需要重设下默认值

    input 不要首字母大写

    <input autocapitalize="off " autocorrect="off " /> //input的三个属性autocomplete:默认为on,代表是否让浏览器自动记录输入的值,可以在input中加入autocomplete="off "来关闭记录,保密输入内容;autocapitalize:自动大小写;autocorrect:纠错
    

    ios非点击元素span,label监听click事件,ios不会触发

    1 .给元素加一个css代码

    cursor:pointer
    

    移动端的几个视口

    layout 布局视口

    1 .移动设备要让自己可以展示所有的网站,即使那些不是为了移动设备设计的网站
    2 .为了不破坏pc网站的布局,移动设备把自己的浏览器可视区域设了一个较大的默认值,比如980px、这样那些专门为pc展示的网站也是可以展示了
    3 .他的宽度可以通过document.documentElement.clientWidth来获取
    4 .layout viewport 的宽度是大于浏览器可视区域宽度的

    视觉窗口

    1 .visual viewport


    image.png

    理想窗口

    1 .现在已经有了两个窗口,但是还是不够,因为现在越来越的的网站会专门给移动端设计网站。所以必须有一个能狗完美适配移动设备的viewport

    完美适配符合以下几个要求
    1 .用户不需要缩放,或者使用横向滚动条就能正常查看网站的所有内容
    2 .显示的文字大小是合适的。14px大小的文字,不会因为在不同的分辨率屏幕下有明显的不同
    

    2 .取值是window.screen.width3
    3 .理想视口没有固定的值,不同的设备有不同的理想视口

    总结

    1 .css布局,尤其是百分比宽度,是相对于layout viewport的宽度计算的(即页面最顶级元素html的自适应宽度(或width: 100%)的参考系就是layout viewport的宽度),它要比visual viewport宽得多
    2 .layout viewport和visual viewport都是由css像素测量的,但是visual viewport的尺寸会随着缩放变化(如果你进行放大操作,那么屏幕上将展示更少的css像素),而layout viewport的尺寸将保持不变
    3 .layout viewport可以设置成为ideal viewport,通过设置width=device-width 这组指令就可以了(但要注意的是,在iphone和ipad上,无论是竖屏还是横屏,device-width都是竖屏时ideal viewport的宽度。)
    4 .每个移动设备浏览器中都有一个理想的宽度,这个理想的宽度是指css中的宽度,跟设备的物理宽度没有关系,在css中,这个宽度就相当于100%所代表的那个宽度。我们可以用meta标签把viewport的宽度设为那个理想的宽度,如果不知道这个设备的理想宽度是多少,那么用device-width这个特殊值就行了,同时initial-scale=1也有把viewport的宽度设为理想宽度的作用。所以,我们可以使用 <meta name="viewport" content="width=device-width, initial-scale=1"> 来得到一个理想的viewport(也就是前面说的ideal viewport)

    安全区域

    1 .view-fit。好像用不到啊。适配iPhoneX而诞生的一个属性,它用于限制网页如何在安全区域内进行展示
    2 .env,constant。顶部和底部的合理摆放在安全区域内。ios有这三个css函数.用于设定安全区域与边界的距离

    <meta name="viewport" content="viewport-fit=cover">
    //必须这样之后才能使用
    body {
      padding-bottom: constant(safe-area-inset-bottom);
      padding-bottom: env(safe-area-inset-bottom);
    }
    

    图片模糊的操作

    1 .srcset 使用img标签的srcset属性,浏览器会自动根据像素密度匹配最佳显示图片:
    <img src="conardLi_1x.png"
    srcset=" conardLi_2x.png 2x, conardLi_3x.png 3x">

    弹出数字键盘

    1 .不用原生的type=number,只要给匹配正则,就可以实现以下键盘
    2 .数字+#,*,符号

    <input type='tel'>
    

    3 .纯数字

    <input pattern='\d*'>
    

    调用系统的某些功能

    0 .照理说这应该是a标签href的属性功能,为啥文档上面没有仔细出现这个呢
    1 .打电话

    <a href='tel:10086'>打电话</a>
    

    2 .发短信

    <a href='sms:10086'></a>
    

    3 .发送邮件

    <a href='mailto:10086#163.com'>
    

    4 .选择照片或者拍摄照片

    <input type='file' accept='image/*'></input>
    

    5 .选择视屏或者拍摄视频

    <input type='file' accept='video/*'></input>
    

    打开原生应用

    1 .可以打开原生应用的某些功能
    2 .URL

    相关文章

      网友评论

          本文标题:常见问题 3

          本文链接:https://www.haomeiwen.com/subject/hsjqldtx.html