前端练习

在页面中,有一个单行输入框,一个按钮,输入框中用来输入用户的兴趣爱好,允许用户用半角逗号来作为不同爱好的分隔。
当点击按钮时,把用户输入的兴趣爱好,按照上面所说的分隔符分开后保存到一个数组,过滤掉空的、重复的爱好,在按钮下方创建一个段落显示处理后的爱好。

<input class='input'>
    <button id="save">保存显示</button>
    <p id="show"></p>
    <script >
        var save = document.getElementById("save");
        save.onclick = function  () {
            var input = document.querySelector('.input');
            var value = input.value+"";
            if(value.split(',')){
                var arr = value.split(',')
                var newArr = new Array();
                for(var i=0;i<arr.length;i++){
                    if(newArr.indexOf(arr[i]) === -1){
                        if(arr[i] !== ""){
                            newArr.push(arr[i]);
                        }
                    }
                }
            }
            var show = document.getElementById("show");
            show.innerText = newArr.toString();

        }
    </script>
创建结点
    document.createElement()方法可以创建元素,但是只接受一个参数,即要创建元素的标签名
        var div = document.createElement("div");
        div.id="nyNewDiv";
        div.className = "box";
        document.body.appendChild(div);
        在ie及更早版本中可以这样,其他浏览器都不支持这样
        var div = document.createElement("<div id=\"myNewDiv\" class=\"box\"></div>");
        创建文本节点
        var textNode = document.createTextNode("hello workd");//只是文本,不会被解析为html文本的
        也可以直接用innerHTML和innerText

这里我把下个练习的思路一说

<!-- 在和上一任务同一目录下面创建一个`task0002_2.html`文件,在`js`目录中创建`task0002_2.js`,并在其中编码,实现一个倒计时功能。

- 界面首先有一个文本输入框,允许按照特定的格式`YYYY-MM-DD`输入年月日;
- 输入框旁有一个按钮,点击按钮后,计算当前距离输入的日期的00:00:00有多少时间差
- 在页面中显示,距离YYYY年MM月DD日还有XX天XX小时XX分XX秒
- 每一秒钟更新倒计时上显示的数
- 如果时差为0,则倒计时停止 -->
 <input class="input">
 <button class="cal">计算距离输入的日期</button>
 <p class="show"></p>
 <script >
var input = document.querySelector(".input");
var cal = document.querySelector(".cal");
var show = document.querySelector(".show");
//获取到输入的值,用正则表达式进行验证,然后进行分隔,把每个值都算出来
//然后计算获取当前的时间年然后相减,然后把计算结果不为0放入数组,然后显示的时候用join(“-”)返回的就是字符串,方法把数组连起来显示

我的domready这样的话比那个window.onload快

function myReady(fn){

    //对于现代浏览器,对DOMContentLoaded事件的处理采用标准的事件绑定方式
    if ( document.addEventListener ) {
        document.addEventListener("DOMContentLoaded", fn, false);
    } else {
        IEContentLoaded(fn);
    }

    //IE模拟DOMContentLoaded
    function IEContentLoaded (fn) {
        var d = window.document;
        var done = false;

        //只执行一次用户的回调函数init()
        var init = function () {
            if (!done) {
                done = true;
                fn();
            }
        };

        (function () {
            try {
                // DOM树未创建完之前调用doScroll会抛出错误
                d.documentElement.doScroll('left');
            } catch (e) {
                //延迟再试一次~
                setTimeout(arguments.callee, 50);
                return;
            }
            // 没有错误就表示DOM树创建完毕,然后立马执行用户回调
            init();
        })();

        //监听document的加载状态
        d.onreadystatechange = function() {
            // 如果用户是在domReady之后绑定的函数,就立马执行
            if (d.readyState == 'complete') {
                d.onreadystatechange = null;
                init();
            }
        }
    }
}
轮播图的制作
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- css代码书写顺序
    1.位置属性(position, top, right, z-index, display, float等)
    2.大小(width, height, padding, margin)
    3.文字系列(font, line-height, letter-spacing, color- text-align等)
    4.背景(background, border等)
    5.其他(animation, transition等) -->
    <style> 
        *{
            margin:0;
            padding:0;
            text-decoration: none;  
        }
        .body{
            position:relative;
            width:600px;
            height:400px;
            overflow: hidden;
        }
        .content{
            position:absolute;
            z-index: 1;
            width:3000px;
            height:400px;
        }
        .content img{
            float: left;
            width:600px;
            height:400px;
        }
        .button{
            position:absolute;
            width:100px;
            height:10px;
            z-index: 2;
            bottom: 20px;
            left:250px;
        }
        .button span{
            cursor: pointer;
            float:left;
            width:10px;
            height:10px;
            margin-left: 5px;
            border:1px solid #fff;
            border-radius: 50%;
            background:#333333;
        }
        .button .on{
            background:#ff4500;
        }
        .arrow{
            position: absolute;
            z-index: 2; 
            top: 180px; 
            display: none;  
            width: 40px;
            height: 40px; 
            color: #fff;
            line-height: 39px;
            text-align: center;
            font-size: 36px;
            font-weight: bold;
            background-color: RGBA(0,0,0,.3);
            cursor: pointer;        
        }
        .arrow:hover{
            background-color:RGBA(0,0,0,.7);
        }
        #con:hover .arrow{
            display:block;
        }
        #prev{
            left:20px;
        }
        #next{
            right:20px;
        }
    </style>

</head>
<body>
<div class="body" id="con">
    <div class="content" id="content" style="left:0">
        <img src="img/1.jpg">
        <img src="img/2.jpg">
        <img src="img/3.jpg">
        <img src="img/4.jpg">
        <img src="img/5.jpg">
    </div>
    <div class="button" id="button">
        <span index="0" class="on"></span>
        <span index="1"></span>
        <span index="2" ></span>
        <span index="3" ></span>
        <span index="4" ></span>
    </div>
    <a  id="prev" class="arrow">&lt;</a>
    <a  id="next" class="arrow">&gt;</a>
</div>
<button id="change">换下一张图片</button>
    <script >
        window.onload = function() {
            var prev = document.getElementById("prev");
            var next = document.getElementById("next");
            var content = document.getElementById("content");
            var span = document.getElementById("button").getElementsByTagName('span');
            var index = 0;//确定目前到底是在轮播哪个图片,把他作为一个全局变量

            function animate(offset){
                var move = parseInt(content.style.left)+ offset;
                if(move > 0){
                    content.style.left = -2400 +'px';
                }else if(move < -2400){
                    content.style.left = 0 +'px';
                }else{
                    content.style.left = move +'px';
                }
                addOn();
            }

            function addOn(){
                for(var i=0;i<span.length;i++){
                        if(span[i].className === "on"){
                            span[i].className="";
                            break;
                        }
                    }
                span[index].className= "on";
            }

            prev.onclick=function(){
                index -= 1;
                if(index ===-1){
                    index = 4;
                }
                animate(600);
            }
            next.onclick=function(){
                index = index+1;
                if(index === 5){
                    index = 0 ;
                }   
                console.log(index);
                animate(-600);

            }
            var change = document.getElementById("change");
            change.onclick=function(){
                next.onclick();
            }
        }
        //那种竖直方向上的移动就不用display:none了直接全部显示,把旁边的按钮设置为fix定位的,然后根据显示哪个图片亮哪个,这时要用到的技术是页面内定位的方式,每个按钮对应图片的链接,点击按钮就会到哪个页面
类似于这种代码
a标签里面的链接还可以写成这种
 <li><a href="#item1" class="current">1F 男装</a></li>
 <div id="item1" class="item">
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值