• 03JavaScript程序设计修炼之道 2019-07-09_20-06-57 window对象:location地址、history、open等、综合运用:动画


    06location.html 

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <div><span id="num">5</span>秒后跳转到百度</div>
        <input type="button" id="btn" value="跳转" />
        <script>
            var btn = document.querySelector("#btn");
            btn.onclick = function() {
                //console.log(window.location);
                //location.href = "https://www.qq.com";
                //location.assign("http://www.baidu.com");
                //location.replace("http://www.baidu.com"); 替换地址栏的地址 不会记录历史
                //location.reload(false);//从缓存中访问网页,不从服务器中
            }
             
           /* 
            setTimeout(function() {
                    location.assign("http://www.baidu.com");
            },3000);
            */
           var num = document.querySelector("#num");
           var i = 5;
           var timeId = setInterval(()=>{
               --i;
               if(i === 0) {
                  location.assign("http://www.baidu.com");
                  return clearInterval(timeId);
               }
               num.innerHTML = i;
           },1000);
        </script>
    </body>
    </html>

    hiistory/1.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <button onclick="location.href='2.html'">跳转</button>
        <button onclick="history.go(1)">前进</button>
        <button onclick="history.forward()">前进</button>
    </body>
    </html>

    hiistory/2.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <button onclick="history.go(-1)">后退</button>
        <button onclick="history.back()">后退</button>
    </body>
    </html>

    open/index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <button id="btn">操作子窗口</button>
        <script>
            // 主页面 打开后弹出子页面
            var oSub = open("sub.html","_blank","width=300,height=300,left=200,top=300");
            var btn = window.document.getElementById("btn");
            btn.onclick = function() {
                var sub_p = oSub.document.querySelector("p");
                console.log(sub_p);
                oSub.focus();
                sub_p.style.background = "red";
                
            }
    
            window.onunload = function() {
                if (!oSub.closed) {
                    oSub.close();
                }
            }
        </script>
    </body>
    </html>

    open/sub.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <p>好好学习 天天向上</p>
        <button id="t">操作父窗口</button>
        <script>
            var t = document.querySelector("#t");
            t.onclick = function() {
                window.opener.document.getElementById("btn").style.color = "yellow";
            }
        </script>
    </body>
    </html>

    综合运用:animate

    01animate.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            * {
                padding: 0;
                margin: 0
            }
    
            .box {
                width: 100px;
                height: 100px;
                background-color: pink;
                position: relative;
            }
    
            .box2 {
                background-color: blue;
            }
        </style>
    </head>
    
    <body>
        <button id="btn">运动到400</button>
        <button id="btn2">运动到800</button>
        <div class="box"></div>
        <div class="box box2"></div>
        <script>
            var btn = document.querySelector("#btn");
            var btn2 = document.querySelector("#btn2");
            var box = document.querySelector(".box");
            btn.onclick = function () {
                /* 让box运动到400px
                //box.style.left = "400px";
                //console.log(box.offsetLeft);
                var step = 9; // 步长
                var target = 400;//目标
                var timeId = setInterval(() => {
                    if (box.offsetLeft >= target) {
                        box.style.left = target + "px";
                        return clearInterval(timeId);
                    }
                    box.style.left = box.offsetLeft + step + "px";
                }, 30);
                */
               animate(box,400);
            }
            btn2.onclick = function () {
                /*
                var step = 9; // 步长
                var target = 800;//目标
                var timeId = setInterval(() => {
                    if (box.offsetLeft >= target) {
                        box.style.left = target + "px";
                        return clearInterval(timeId);
                    }
                    box.style.left = box.offsetLeft + step + "px";
                }, 30);
                */
               animate(box,800);
            }
            var timeId = null;
            function animate(ele, target) {
                if(timeId) {
                    clearInterval(timeId);
                    timeId = null;
                }
                var step = 9; // 步长
                timeId = setInterval(() => {
                    if (ele.offsetLeft >= target) {
                        ele.style.left = target + "px";
                        return clearInterval(timeId);
                    }
                    ele.style.left = ele.offsetLeft + step + "px";
                }, 30);
            }
    
        </script>
    </body>
    
    </html>

    02animate.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            * {
                padding: 0;
                margin: 0
            }
    
            .box {
                width: 100px;
                height: 100px;
                background-color: pink;
                position: relative;
                left: 1000px;
            }
    
            .box2 {
                background-color: blue;
            }
        </style>
    </head>
    
    <body>
        <button id="btn">运动到400</button>
        <button id="btn2">运动到800</button>
        <div class="box"></div>
        <div class="box box2" id="box2"></div>
        <script src="sport.js"></script>
        <script>
            var btn = document.querySelector("#btn");
            var btn2 = document.querySelector("#btn2");
            var box = document.querySelector(".box");
            var box2 = document.querySelector("#box2");
            btn.onclick = function () {
               //animate(box,400);
               //animate(box2,400);
               move(box,400,"left");
               move(box2,400,"left");
            }
            btn2.onclick = function () {
               animate(box,800);
               animate(box2,800);
            }
            var timeId = null;
            function animate(ele, target) {
                if(ele.timeId) {
                    clearInterval(ele.timeId);
                    ele.timeId = null;
                }
                var step = 9; // 步长
                ele.timeId = setInterval(() => {
                    /*
                    if (ele.offsetLeft >= target) {
                        ele.style.left = target + "px";
                        return clearInterval(ele.timeId);
                    }
                    */
                    // 假如物体元一开始在终点右侧 应该往左移动 
                    if(ele.offsetLeft > target) {
                        step = -Math.abs(step);
                    } 
                   
                    if(Math.abs(ele.offsetLeft - target) < Math.abs(step)) {
                        ele.style.left = target + "px";
                        return clearInterval(ele.timeId);
                    }
                    ele.style.left = ele.offsetLeft + step + "px";
                }, 30);
            }
    
        </script>
    </body>
    
    </html>

     

     

     

  • 相关阅读:
    jQuery 1.6 正式版发布
    EXT.NET Toolbar GridPanel自动宽度和高度的解决方案,引入Viewport
    sql server 2005 数据库状态 变成 可疑的解决方案
    将远程图片读取到本地,并保存
    ^M 替换 VI
    php ctags
    闲来无聊,想了下秒杀、抢购实现方法
    mysql 'OR','IN',‘union’效率分析
    js 全选
    yii rule
  • 原文地址:https://www.cnblogs.com/HiJackykun/p/11178701.html
Copyright © 2020-2023  润新知