首页 > web前端 > js教程 > 正文

仿作业帮前端教程

一个新手
发布: 2017-09-13 10:45:07
原创
1452人浏览过


盒模型

这里写图片描述
标准模式下

box = margin+border+padding+content(width/height)
登录后复制

怪异模式下

box = margin+content(border+padding+width/height)
登录后复制

移动设备的自适应

flexbox
rem
之后详细补充

position

relative : 相对于本身在文本流中的位置进行定位,定位后不脱离文本流
absolute : 相对于父元素中非static定位的元素进行定位,定位后脱离文本流
fixed : 相对于浏览器窗口进行定位,定位后脱离文本流
static : 正常文本流渲染

<style>
    .p1{        
    width:100px;        
    height:100px;        
    background-color:red;        
    left:20px;        /*以下两张图分别展示*/
        position:relative;        
        position:absolute;    }
    .p2{        
    width:100px;        
    height:100px;        
    background-color:blue;    }
</style>
    <p class='p1'></p>
    <p class='p2'></p>
登录后复制

这里写图片描述

立即学习前端免费学习笔记(深入)”;

这里写图片描述

事件代理的优点

原理就是利用事件冒泡

剪映专业版
剪映专业版

一款全能易用的桌面端剪辑软件

剪映专业版 25
查看详情 剪映专业版

优点
可以大量节省内存占用,减少事件注册。比如ul上代理所有li的click事件。
对于动态内容部分尤为合适

缺点
事件代理的常用应用应该仅限于上述需求,如果把所有事件都用事件代理,可能会出现事件误判。即本不该被触发的事件被绑定上了事件。

数组去重

function f(arr){
    var s = [];    
    for(var i = 0;i<arr.length;i++){
        if(s.indexOf(arr[i]) == -1){
            s.push(arr[i]);
        }
    }    return s;
}
登录后复制

如果不能使用indexOf,且需考虑元素类型

function f(arr){
    var s = {};    
    for(var i = 0;i<arr.length;i++){
        var type = typeof arr[i];
        var con = type+arr[i];
        if(!s[con]){
            s[con] = 1;
        }else{
            arr.splice(i,1);
            i--;
        }
    }    return arr;
}
登录后复制

或者直接利用ES6的Set

function f(arr){
    var s = new Set(arr);    
    return [...s];
}
登录后复制

实现鼠标滑过头像显示简介

要点:
1、事件如何绑定
   我想的是通过事件代理

2、如何保证放置显示,快速划过不显示
   利用定时器

下面就用简陋的代码来示例一下。。。

<!DOCTYPE html><html><head><style>
    .p1{        
    width:100px;        
    height:100px;        
    background-color:red;        
    border-radius: 50px;    
    }
    .p2{        
    width:100px;        
    height:200px;        
    margin-top: 10px;        
    background-color:black;        
    display: none;    
    }
    </style>
    </head>
    <body>
    <p class='p1'></p>
    <p class='p2'></p>
    <script type="text/javascript">
        var d1 = document.getElementsByClassName('p1')[0];        
        var d2 = document.getElementsByClassName('p2')[0];        
        var timer;
        d1.addEventListener('mouseenter',function(){
            timer = window.setTimeout(function(){d2.style.display="block"},300);
        })
        d1.addEventListener('mouseout',function(){
            window.clearTimeout(timer);
            d2.style.display="none";
        })    
        </script>
        </body>
        </html>
登录后复制

以上就是仿作业帮前端教程 的详细内容,更多请关注php中文网其它相关文章!

相关标签:
作业帮
作业帮

作业帮是一款高效智能的学习APP。题目不会做,有学习问题,来作业帮就对了。作业帮题库覆盖多学段教材和练习册,是一款题库量大、搜索速度快、解析精准的辅导学习平台。有需要的小伙伴快来保存下载体验吧!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号