css3 background-position手机端自适应

css3 background-position手机端自适应

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>
        Document
    </title>
    <style>
    .wrap {
        width: 1.28rem;
        height: 1.28rem;
        background: url(http://sandbox.runjs.cn/uploads/rs/155/azqeh6bj/w.png) no-repeat;
        background-size: 2.56rem 2.56rem;
        background-position: 0rem -1.3rem;
    }
    </style>
</head>

<body>
    <div class="wrap">
    </div>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.js"></script>
    <script>
    (function(doc, win) {
        var docEl = doc.documentElement,
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
            /*如果屏幕尺寸发生了变化就会立即更新*/
            recalc = function() {
                /*     var clientWidth = docEl.clientWidth;*/
                var clientWidth = parseInt($('body').width());
                if (!clientWidth) return;
                docEl.style.fontSize = 20 * (clientWidth / 320) + 'px';
                /*部分安卓手机计算rem有误差 如果有误差 需要重新设置font-size 从而计算出正确的值*/
                var div = document.createElement('div');
                div.style.width = '1.4rem';
                div.style.height = '0';
                document.body.appendChild(div);
                var ideal = 1.4 * 20 * (clientWidth / 320);
                var rem = div.clientWidth;
                var scale = rem / ideal;
                /*因为css获取属性值只保留整数 */
                if (scale > 1.05 || scale < 0.95) {
                    docEl.style.fontSize = 20 * (clientWidth / 320) / scale + 'px';
                    document.body.removeChild(div);
                }
            };
        if (!doc.addEventListener) return;
        /*如果窗口改变了大小 手机旋转了都会重新修改font-size属性*/
        win.addEventListener(resizeEvt, recalc, false);
        doc.addEventListener('DOMContentLoaded', recalc, false);
    })(document, window);
    </script>
</body>

</html>

ps:先改background-size 确定好大小

css3 preserve-3d 的理解

css3 perspective 的理解 看下面demo就理解了 perspective保证子元素能以3D的空间展现 如果子元素没有要3d呈现的就不用加拉

perspective就是相机离物体的距离 perspective-origin可以调整相机的 x和y的位置 一般不要用这个属性 比较难控制

 perspective-origin
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>转换模块-正方体</title>
    <style>

    *{
        margin: 0;
        padding: 0;
        /*去除默认边距*/
    }

    ul{
        width: 200px;
        height: 200px;
        border: 1px solid #000;
        box-sizing: border-box;
        margin: 100px auto;
        position: relative;
        /*修改基本样式*/
        transform: rotateY(45deg) rotateX(45deg);
        /*旋转看看效果*/
        transform-style: preserve-3d;
        /*将父元素设置为3d空间*/
    }
    ul li{
        list-style: none;
        width: 200px;
        height: 200px;
        font-size: 60px;
        text-align: center;
        line-height: 200px;
        position: absolute;
        left: 0;
        top: 0;
        /*修改基本样式*/
    }
    ul li:nth-child(1){
        background-color: red;
        transform: translateX(-100px) rotateY(90deg);
        /*将第一个l向左移动100像素,然后绕y轴旋转90度,形成左边的面*/
    }
    ul li:nth-child(2){
        background-color: green;
        transform: translateX(100px) rotateY(90deg);
        /*将第一个2向右移动100像素,然后绕y轴旋转90度*,形成右边的面*/
    }
    ul li:nth-child(3){
        background-color: blue;
        transform: translateY(-100px) rotateX(90deg);
        /*将第一个3向上移动100像素,然后绕x轴旋转90度,形成上面的面*/
    }
    ul li:nth-child(4){
        background-color: yellow;
        transform: translateY(100px) rotateX(90deg);
        /*将第一个4向下移动100像素,然后绕x轴旋转90度*/
    }
    ul li:nth-child(5){
        background-color: purple;
        transform: translateZ(-100px);
        /*将第一个5向后移动100像素,形成后面的面*/
    }
    ul li:nth-child(6){
        background-color: pink;
        transform: translateZ(100px);
        /*将第一个l向前移动100像素,形成前面的面*/
    }

</style>
</head>
<body>
<ul>
    <!--首先做好html布局,正方体有6个面,所以写了6个li-->
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
</ul>
</body>
</html>

css3 mask遮罩动画(照明灯效果)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.wrap{
    position:absolute;
    width: 400px;
    border:1px solid black;
}
#mask{
    height: 300px;
    background:url(http://sandbox.runjs.cn/uploads/rs/142/wat3wtnz/dongzhi.jpg) lightblue;
    -webkit-mask:  url(http://sandbox.runjs.cn/uploads/rs/142/wat3wtnz/mask.png) no-repeat;
      -webkit-mask-size:30px 20px;
    /*animation: 2s maskPosition infinite alternate ;*/
}

 @keyframes maskPosition{
    0%{-webkit-mask-position:0 0;}
    100%{-webkit-mask-position:1rem 1rem;}
} 
</style>
</head>
<body>
<div class="wrap">
    <div id="mask"></div>    
</div>
<script>

</script>
</body>
</html>

ps:

1 -webkit-mask-position 这个建议用rem来计算 不要用百分比计算 百分比不是按照图片的宽度来计算的

2 -webkit-mask-size 百分比是按照外面容器计算的 大小设置无限制的

3 渐变属性不能做动画

4 实现照明灯 可以再参考http://newmiracle.cn/?p=1833这个

5 蒙版图片非透明地方显示 透明不显示

css3自定义移动端滚动条

css3自定义移动端滚动条

/*定义滚动条宽 高度是根据内容设置的高度决定的*/
::-webkit-scrollbar
{
    width: 5px;
}

/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    border-radius: 5px;
    background-color: #fe023f;
}

/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb
{
    border-radius: 5px;
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
    background-color: #FFF;
}

css 完美垂直居中解决方案兼容ie8以上等其他浏览器

css 完美垂直居中解决方案兼容ie8以上等其他浏览器

<!DOCTYPE html>
<html>
<head>
    <title>DIV水平垂直居中 </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
        #outer {
            display:table;
            height:400px;
            #position:relative;
            overflow:hidden;
        }
        #middle {
            width:300px;
            height: 400px;;
            display:table-cell;
            vertical-align:middle;
            #position:absolute;
            #top:50%;
            background: #F0E68C;
        }
        #inner {
            #position:relative;
            #top:-50%;

        }
    </style>
</head>
<body>
<div id="outer">
    <div id="middle">
        <div id="inner">
           水平居中</br>
           水平居中</br>
           水平居中</br>
           水平居中</br>
        </div>
    </div>
</div>
</body>
</html>
<script type="text/javascript">
    //显示浏览器版本
    document.getElementById('ver').innerHTML = navigator.userAgent;
</script>

移动端的写法

<!DOCTYPE html>
<html>
<head>
    <title>DIV水平垂直居中 </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style type="text/css">
   
        #middle {
            width:30%;
            height: 10rem;
            display:table-cell;
            vertical-align:middle;
            background: #F0E68C;
        }
   
    </style>
</head>
<body>
    <div id="middle">
           水平居中</br>
           水平居中</br>
           水平居中</br>
           水平居中</br>
    </div>
</body>
</html>

css3软键盘不盖住输入框的方法

css3软键盘不盖住输入框的方法

弹出软键盘的时候 最外面的容器高度就发生了变化 要减去软键盘高度了

所以假设p1_bg是最外面容器

1


/*点击输入框的触发 高度用js控制 别用height:100%不然被压扁的 */

     $('.p1_wz2 input').on('click',function() {
        var bodyheight = $('body').height();
        $('.p1_bg').css('height', bodyheight);
    })
   

2 p1_bg css设置width:100%; position: absolute;left:0px; bottom: 0px

css3 transform做动画

css3 transform做动画
第一种用关键帧 这里就不说了 就说第二种方法用 transition属性 ps:jquery anim不支持transform动画 但css还是支持 还有就是不能动态修改关键帧属性 所以采用这个

         <img class="p1_wz1"src="{$yuming}/images/1/p1_wz1.jpg" />
.p1_wz1{
    width: 2.3rem;
    position: absolute;
    left: 41.6%;
    top: 4.2rem;

    -webkit-transition: all 2s ease-in-out;
    -moz-transition: all 2s ease-in-out;
    -o-transition: all 2s ease-in-out;
    transition: all 2s ease-in-out;
}

然后运行下如下代码

$(".p1_wz1").css({"-webkit-transform":"rotate(260deg)"});

马上就旋转了起来 进度条可以参考这个方法来做