美文网首页
关于吃货卡的工作总结!

关于吃货卡的工作总结!

作者: Gopherzhang | 来源:发表于2017-09-08 16:42 被阅读95次

    吃货卡总结 (上)

    近一个月,前端方面独自一人配合后台对接接口完成了整个项目。可以说这个项目是我首个独立全部完成,其中包括原型demo的完成、中间商家页面的修改UI、产品支付核销功能的添加、以下是这段时候遇见的问题和解决方案的总结(由于时间和内容问题本次总结分阶段进行):


    1. H5禁止页面选择复制问题

    代码如下:

    * {         -webkit-touch-callout: none;
                -webkit-user-select: none;
                -khtml-user-select: none;
                -moz-user-select: none;
                -ms-user-select: none;
                user-select: none;
            }
    

    这样写对于 -webkit-user-select: none; 存在问题是:在iPhone手机上会出现 input输入框 无法实现点击输入功能。(安卓可以实现)

    解决方案:

    *:not(input, textarea) {
                    -webkit-touch-callout: none;
                    -webkit-user-select: none;
                    -khtml-user-select: none;
                    -moz-user-select: none;
                    -ms-user-select: none;
                    user-select: none;
                }
    

    知识点衍生:CSS3: user-select

    user-select是css3新增的一个属性,用来指定文本的可选择性.目前主流的浏览器都支持该属性,但是要加上各自的前缀.

    -webkit-user-select: none;  /* Chrome all / Safari all /opera15+*/  
    -moz-user-select: none;     /* Firefox all */  
    -ms-user-select: none;      /* IE 10+ */  
    user-select: none;  
    

    除了”none”还支持以下值:

    auto——默认值,用户可以选中元素中的内容

    text——用户可以选择元素中的文本

    element——文本可选,但仅限元素的边界内(只有IE和FF支持)

    all——在编辑器内,如果双击或上下文点击发生在子元素上,该值的最高级祖先元素将被选中。

    2. CSS3 的渐进色变换用法

    代码如下:

    .fruit {
                width: 65px;
                height: 20px;
                background: -webkit-linear-gradient(right, #7FFFD4, #43CD80);
                /* Chrome、 Safari 5.1 - 6.0 */
                background: -o-linear-gradient(right, #7FFFD4, #43CD80);
                /* Opera 11.1 - 12.0 */
                background: -moz-linear-gradient(right, #7FFFD4, #43CD80);
                /* Firefox 3.6 - 15 */
                background: linear-gradient(to right, #2ee8b9, #43CD80);
                /* 标准的语法(必须放在最后) */
                border-top-right-radius: 10px;
                border-bottom-right-radius: 10px;
                position: relative;
                left: 3%;
                top: 15px;
            }
    

    知识点衍生:CSS3 Gradient

    CSS3 Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变)。上面主要是线变,如果是径变类似一个圆往外变色。

    语法:

    -moz-linear-gradient( [<point> || <angle>,]? <stop>, <stop> [, <stop>]* )
    

    参数:

    其共有三个参数,第一个参数表示线性渐变的方向,top是从上到下、left是从左到右,那么right就是从右到左了。
    如果定义成left top,那就是从左上角到右下角。第二个和第三个参数分别是起点颜色和终点颜色。你还可以在它们之间插入更多的参数,表示多种颜色的渐变。(第一个参数 可以加入角度参数。)

    运用好渐变色就可以做出很多炫酷 高亮的背景颜色了。

    3. CSS3 对应的字体抗锯齿方法

    font-smoothing是非标准的css渲染规则,由于不同操作系统对字体渲染不同,不同浏览器也有自己对样式的一套解释规则,所以这个css样式至今也没有加入web标准。
    这个样式的主要功能是对字体的锯齿进行调整。
    -webkit-font-smoothing 是webkit在自己的渲染引擎中增加的对字体抗锯齿的调整。这个调整在ios中表现比较明显,在windows中表现的不是很明显。

    知识点衍生:CSS3 Gradient

    body {       -webkit-font-smoothing: antialiased;
                    /*chrome、safari*/
            -moz-osx-font-smoothing: grayscale;
                    /*firefox*/
                    font-family: "微软雅黑";
                }
    

    CSS3里面加入了一个“-webkit-font-smoothing”属性。

    这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更清晰舒服。

    加上之后就顿时感觉页面小清晰了。 淘宝也在用哦!

    它有三个属性:

    none ------ 对低像素的文本比较好

    subpixel-antialiased ------默认值

    antialiased ------抗锯齿很好

    4. 关于标签选项卡对应展示数据写法

    jQuery写法较为简单如下代码:

    $(function() {
                    $li.click(function() {
                        //加上颜色样式
                        $(this).addClass("selected")
                            .siblings() //排除自身的同辈元素
                            .removeClass("selected"); 
                        var index = $li.index(this); // 添加索引 好对应显示DIV内容
                        $(".kk")
                            .eq(index).show()
                            .siblings().hide(); //对应 控制的div 对应索引进行显示出来。
                    });
                });
    

    主要针对==原生JavaScript==写法进行一个原型封装:

    面向过程 代码如下:

    <div id="div1">
            <input type="button" name="" class="active" value="教育" />
            <input type="button" name="" value="财经" />
            <input type="button" name="" value="体育" />
            <div style="display: block;">这是教育内容板块</div>
            <div>这是财经</div>
            <div>这是体育的</div>
        </div>
        <script type="text/javascript">
            window.onload = function() {
                var oDiv = document.getElementById('div1');
                var aBin = oDiv.getElementsByTagName('input');
                var aDiv = oDiv.getElementsByTagName('div');
                var i = 0;
    
                for(i = 0; i<aBin.length;i++) {
    
                    aBin[i].index = i;
                    aBin[i].onclick = function() {
                        for(i=0;i<aBin.length;i++) { 
                            
                            aBin[i].className = '';
                            aDiv[i].style.display = 'none';
    
                        }
                        // 先全部去掉样式 再独自添加样式。
                        this.className = 'active';
                        aDiv[this.index].style.display = 'block';
                    };
                }
            };
        </script>
    

    面向对象封装代码如下:

    <div id="div1">
            <input type="button" name="" class="active" value="教育" />
            <input type="button" name="" value="财经" />
            <input type="button" name="" value="色情" />
            <div style="display: block;">这是教育内容板块</div>
            <div>这是财经</div>
            <div>这是色情的</div>
        </div>
        <script type="text/javascript">
        /*
        *改写:
        *1.前提:所有东西都在onload里
        *2.改写:不能有函数嵌套, 可以全局变量
        *3.
        */
        function TabSwitch(id) {
            var oDiv = document.getElementById('div1');
            this.aBin = oDiv.getElementsByTagName('input');
            this.aDiv = oDiv.getElementsByTagName('div');
            var _this = this;
            var i = 0;
            for(i = 0; i<this.aBin.length;i++) {
    
                this.aBin[i].index = i;
                this.aBin[i].onclick = function() {
                    _this.tab(this);    
                };
            }
        }
    
        TabSwitch.prototype.tab = function (oBtn) {
            for(i=0;i<this.aBin.length;i++) { 
    
                this.aBin[i].className = '';
                this.aDiv[i].style.display = 'none';
    
            }
            oBtn.className = 'active';
            this.aDiv[oBtn.index].style.display = 'block';
        };
        window.onload=function () {
            var oTab=new TabSwitch('div1');
        };
    

    总结:

    • 这段时间意识到原生JS 的重要性于是 自己在加强 原生JavaScript的基础----包括 原型、继承、封装代码等
    • 也在学习Vue js 前端框架、Node js基础、npm运用。意识到自己之前所接触的开发模式和技术层面,还是很基础的东西。
    • 觉得目前 前端基于Node 工程化开发 和 模块化开发 自动化(webpack)形式是未来的趋势(现在也已经普遍开来,时代在进步,技术也在不停的进阶)
    • 最后 选择走前端这条路 就不应该把自己框死,我们要有对市面上新技术有敏锐的嗅觉,把握 web前端时代 的开发趋势。

    相关文章

      网友评论

          本文标题:关于吃货卡的工作总结!

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