ios -html-JS

JS简介-基本数据类型

1.1 JS中的常见语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js</title>
    <!--引进js标签地址-->
    <script type="text/javascript">
        <!--警报视图-->
        alert('hello word');
        alert('shijie');
        //打印
        console.log('tiaoshishuchu');
    </script>
</head>
<body>
</body>
</html>
  • 所有变量的返回类型都是var
  • number类型
  • string类型
  • boolean类型
  • object类型
 //基本数据类型
        var age=18; //number
        var money=100.9; //number
        var name='jack'; //string
            name2='marry'; //string
        var number=undefined; //undefined
        var result=true; //boolean

        //输出基本数据
        console.log(age, money, name, number, result);
        //输出基本数据类型
        console.log(typeof age, typeof money, typeof name, typeof number, typeof result);
基本数据类型

1.2 变量的拼接

  • 变量的拼接都是从左往右
  • 任何类型的变量和string类型的变量拼接,都会被转换为string类型
//基本数据类型运算
        //规律:运算从左往右,任何类型的变量与string拼接都会被强制转化为string类型
        //例子1:
        var newName= name+'_'+name2;
        console.log(newName);

        //例子2:
        var str1=10+10+'10';
        var str2='10'+10+10;
        var str3=10+'10'+10;

        console.log(str1, str2, str3);
变量拼接

1.3 数组

  • 遍历数组
//数组,内容可以为任何变量或对象
        var  array=[10, name, result,['哈哈', '喝喝']];

        //遍历数组
        for(var index= 0; index<array.length; index++) {
            console.log(index, array[index]);
        }
遍历数组
  • 增加/删除元素
//删除数组元素
        array.pop();
删除数组元素
 //添加数组元素
        array.push('ljc');

        for (var i in array) {
            console.log(i, array[i]);
        }
添加数组元素
  • 取出最小值和最大值
 //js常用类库 math
        var nums=[10, 20, 40];
        var maxNum=Math.max(10,200,30);

        var  newMax=Math.max.apply(this, nums);

        console.log(maxNum, newMax);
取出最小值和最大值

1.4 JS中的函数

  • 普通函数的类型:函数的调用: 函数名();
  • 函数中的内置数组(arguments):用于存放外部传入的参数
  • 匿名函数:格式---匿名函数的调用:变量名();
        js函数结构
        function 函数名() {
            函数体
        }

<p>例子</p>

function sum(num1, num2) {
            return num1 + num2;
        }
        var rel=sum(10,20);
        console.log(rel);

        function sum2(nums1) {
            var rel=0;
            for (var i in nums1){
                rel+=nums1[i];
            }
            return rel;
        }
        var newRel=sum2([10, 20, 30, 40, 50]);
        console.log(newRel);
函数
//匿名函数
        var res=function (nums1) {
            var rel=0;
            for (var i in nums1){
                rel+=nums1[i];
            }
            return rel;
        }
        var newRel1=res([10, 20, 30, 40, 50]);
        console.log(newRel1);
匿名函数

JS语法-对象语法

2.1 产生单个对象

  • 格式:var dog = {};
  • 设置对象的属性
  • 设置对象的方法
  • 调用对象的属性和方法
  • this:this所在函数在哪个对象中,this就代表该对象
//创建对象
        var  dog={
            //属性
            name :'jack',
            age : 18,
            height:1.60,
            dogFriend:['wangcai', 'lili'],

            // 方法
            run: function () {
                console.log(this.name + ' run');
            },

            //带参数方法
            eat : function (something) {
                console.log(this.name +' eat' + something);
            }
        };//object

        //获取函数属性
        console.log(typeof  dog.name);
        //调用函数方法
        dog.run();
        dog.eat(' 骨头');
创建对象

2.2 产生多个对象

  • 构造函数
  • 产生新对象:new
//普通函数--> 构造函数(对象)
        var Dog=function () {
            this.name = null;
            this.age = null;
            this.height = null;
            console.log('一般函数');
            // 方法
            this.run=function () {
                console.log(this.name + ' run');
            };

            //带参数方法
            this.eat= function (something) {
                console.log(this.name +' eat' + something);
            }
        };
        //普通调用
        Dog();

        //生成构造对象
        var  dog1=new Dog();
        dog1.name='11111';
        dog1.height=2222;
        dog1.age=3333;


        var  dog2=new Dog();
        dog2.name='aaaa';
        dog2.height=444;
        dog2.age=555;

        console.log(dog1, dog2);

        dog1.eat('iiiii');
        dog2.eat('ttttt');
构造对象

2.3 JS语法的灵活性

JS语法-内置对象window
  • 功能1:获取所有全局变量和属性
    <p>所有的全局变量都是window的属性</p>
    <p>所有的全局函数都是window的函数</p>

  • 功能2:动态跳转
    <p>window.location.href = 'http://baidu.com';</p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        // 第一大作用:
         // 1.1 所有全局的变量都是window的属性
         // 1.2 所有的全局函数都是window的方法

         // 全局的变量
         var age = 17;
         console.log(window.age);

        // 全局的函数
         function Dog() {
             var name = '张三';
             console.log(name);
         }

         Dog();
         window.Dog();

//         window.alert('哈哈');
//         window.console.log('全局的');

        function Person() {
            console.log(this);
        }

        Person(); // window
        new Person(); // Person

        // 第二大作用
        // 1.动态的跳转
        alert(0);
        window.location.href = 'http://www.520it.com';
        window.location.href = 'XMG2://openCamera?user=zhangsan'

    </script>
</head>
<body>
</body>
</html>
JS语法-内置对象document

<p>功能</p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        // document内置对象的作用:
        // 1. 可以动态获取网页中所有的标签(节点)
        // 2. 可以对获取到的标签进行CRUD

        document.write('你好,世界!');
        document.write('<input type="file">');
        document.write('![](http://www.520it.com/userfiles/1/images/cms/site/2015/09/index_06.jpg)')
    </script>
</head>
<body>

</body>
</html>

<p>1.可以动态的获取网页中的任意一个节点(标签)</p>
<p>2.可以对获取到的节点进行DOM操作(CRUD)</p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function changeImg() {
//            alert(0);
          // 1.获取网页中的图像标签
           var img = document.getElementsByClassName('icon')[0];
//           console.log(img);
          // 2.改变src属性
            img.src = 'image/img_02.jpg'
        }
    </script>
</head>
<body>
    ![](image/img_01.jpg)
    <p></p>
    <button onclick="changeImg();">更改图片</button>
</body>
</html>
  • DOM操作01-常用事件:</p>
    <p>当前页面加载完毕:window.onload</p>
    <p>鼠标进入标签:onmouseover</p>
    <p>鼠标在标签上移动:onmousemove</p>
    <p>鼠标离开标签:onmouseout</p>
    <p>鼠标在标签上按下:onmousedown</p>
    <p>鼠标在标签上抬起:onmouseup</p>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    ![](ic_default@2x.png)
    <p id="p1" >图片名字:ic_default@2x.png</p>
    <button  id="btn" > 切换图片 </button>

    <script>
        window.onload = function () {
            console.log('当前页面加载完毕');
        };
        var image = document.getElementsByClassName('image')[0];
        var p2 = document.getElementById('p1');
        var name = document.getElementById('p1').innerHTML;
        var btn = document.getElementById('btn');

        image.onmouseover = function () {
            console.log('鼠标进入标签');
        };
        image.onmousemove= function () {
            console.log('鼠标在标签上移动');
        };
        image.onmouseout = function () {
            console.log('鼠标离开标签');
        };
        image.onmousedown = function () {
            console.log('鼠标在标签上按下');
        };
        btn.onclick = function () {
            console.log(name);
            if (name == '图片名字:ic_default@2x.png'){
                image.src ='ic_home_class@2x.png';
                name = '图片名字:ic_home_class@2x.png';
            } else {
                image.src = 'ic_default@2x.png';
                name = '图片名字:ic_default@2x.png';
            }
            p2.innerText=name;
        }
    </script>
</body>
</html>
  • DOM操作02-显示和隐藏元素
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   ![](image/img_01.jpg)
   <p id="word">这里风景很美</p>
   <p></p>
   <button>隐藏</button>


   <script>
       // 1.1 拿到所有要操作的标签
       var icon = document.getElementsByClassName('icon')[0];
       var p = document.getElementById('word');
       var btn = document.getElementsByTagName('button')[0];

//       console.log(btn);

       // 1.2 监听按钮的点击
       btn.onclick = function () {
           // 隐藏 css属性 style display
         if (btn.innerText == '隐藏'){
             p.style.display = 'none';
             icon.style.display = 'none';
             btn.innerText = '显示';
         }else{
             p.style.display = 'block';
             icon.style.display = 'inline-block';
             btn.innerText = '隐藏';
         }

       }

   </script>
</body>
</html>
  • DOM操作03-上下切换图片
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上下切换图片</title>
</head>
<body>
    ![](image/icon_01.png)
    <br>
    <button>上一张</button>
    <button>下一张</button>

    <script>
        <!--最大图片-->
        var maxIndex = 9;
        <!--最小图片-->
        var minIndex = 1;
        var currentIndex = minIndex;
//      获取标签
        var image = document.getElementsByTagName('img')[0];
        var pre = document.getElementsByTagName('button')[0];
        var next = document.getElementsByTagName('button')[1];
//      上一张
        pre.onclick = function () {
            if (currentIndex == minIndex) {
                currentIndex = maxIndex;
            } else {
                currentIndex--;
            }

            image.src='image/icon_0'+currentIndex+'.png';
            console.log(image.src);

        }

//        下一张
        next.onclick = function () {
            if (currentIndex == maxIndex) {
                currentIndex = minIndex;
            } else  {
                currentIndex++;
            }
            image.src='image/icon_0'+currentIndex+'.png';
            console.log(image.src);
        }
    </script>
</body>
</html>
  • DOM操作04-倒计时
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>定时器</title>
    <style>
        body {
            text-align: center;
            margin-top: 100px;
            background-color: black;
        }
        img {
            display: none;
        }
        p{
            display: none;
            font-size: 70px;
            color: red;
        }
        div {
            font-size: 80px;
            color: white;
        }

    </style>

</head>
<body>

    ![](image/flower.gif)
    <p id="word">二狗最美,最爱媛娃</p>
    <div id="number">3</div>

    <script>

        var image=document.getElementById('image');
        var word=document.getElementById('word');
        var number=document.getElementById('number');

        var timer = setInterval(function () {
            number.innerText -= 1;
            if (number.innerText == 0) {
                //取消定时器
                clearInterval(this.timer);

                //在JS中调用标签属性应该加上'style'
                number.style.display = 'none';
                image.style.display = 'block';
                word.style.display = 'inline-block';
            }
        }, 1000);

    </script>
</body>
</html>
  • DOM操作05-节点操作
    <p>增(C)</p>
    <p>删(D)</p>
    <p>改(U)</p>
    <p>查(R)</p>

<p>js</p>

/**
 * Created by ljh on 2017/6/9.
 */
document.write('meihao');

//增
var mainView = document.getElementById('main');
var image = document.createElement('img');
image.src='image/img_01.jpg';
mainView.appendChild(image);

//删
// image.remove();

//查
console.log( mainView.childNodes);

<p>html</p>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width: 300px;
            height: 300px;
            background-color: black;
            color: white;
        }
    </style>
</head>
<body>

    <div id="main"> mainView </div>
    //引进外部JS
    <script src="js/index.js"></script>
</body>
</html>
增删改除

JS综合demo-选项卡切换

  • 作用:用最小的空间放最多的内容
  • 难点
    <p>相对定位</p>
    <p>标签及对应内容之间的切换</p>
    <p>标题和内容的显示和隐藏</p>
  • JS核心代码
/**
 * Created by xiaomage on 16/5/9.
 */

function $(id) {
    // 类型的比较
    return typeof id === 'string' ? document.getElementById(id): id;
}
// 当网页加载完毕是调用
window.onload = function () {
   // 拿到所有的li标签和对应的内容
    var lis = $('tab-header').getElementsByTagName('li');
    var contents = $('tab-content').getElementsByClassName('dom');
    // console.log(lis, contents);
  // 验证
    if(lis.length !== contents.length) return;
    // 遍历
    for(var i=0; i<lis.length; i++){
        // 取出每一个li标签
        var li = lis[i];
        // console.log(li);
        li.id = i;
        
        // 监听鼠标在li上面的移动
        li.onmousemove = function () {
            for(var j=0; j<lis.length; j++){
                //让所有的li标签都不被选中
                lis[j].className = '';
                contents[j].style.display = 'none';
            }
            // 设置当前对象的className
            this.className = 'selected';
            contents[this.id].style.display = 'block';
        }
    }
}
  • CSS核心代码
a, address, b, big, blockquote, body, center, cite, code, dd, del, div, dl, dt, em, fieldset, font, form, h1, h2, h3, h4, h5, h6, html, i, iframe, img, ins, label, legend, li, ol, p, pre, small, span, strong, u, ul, var{
    margin:0;
    padding: 0;
}

ul{
    list-style: none;
}

a{
    text-decoration: none;
    color: black;
}

body{
    margin: 100px;
}


#tab{
  border:1px solid #dddddd;
  width: 498px;
  height: 120px;

  /*裁剪超出部分*/
  overflow: hidden;
}

#tab-header{
    height: 38px;
    line-height: 38px;
    background-color: #F7F7F7;
    text-align: center;

    position: relative;
}

#tab-header ul{
    width: 501px;

    position: absolute;
    left:-1px;
}

#tab-header ul li{
    float: left;
    /*background-color: red;*/
    width: 98px;

    /*内填充*/
    padding: 0 1px;

    /*下线*/
    border-bottom: 1px solid #dddddd;
}

#tab-header ul li.selected{
    background-color: white;
    /*下线*/
    border-bottom: 0;

    /*内填充*/
    padding: 0;

    /*设置左右线条*/
    border-left: 1px solid #dddddd;
    border-right: 1px solid #dddddd;
}

#tab-content .dom{
    display: none;
}


#tab-content .dom a{
    /*background-color: red;*/
    width: 220px;
    /*左浮动*/
    float: left;
    margin:8px;
}
  • html 核心代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--引入外部的样式-->
    <link href="css/index.css" rel="stylesheet">
</head>
<body>
    <div id="tab">
         <!--头部-->
         <div id="tab-header">
             <ul>
                 <li class="selected">公告</li>
                 <li>规则</li>
                 <li>论坛</li>
                 <li>安全</li>
                 <li>公益</li>
             </ul>
         </div>
         <!--主要内容-->
         <div id="tab-content">
             <div class="dom"  style="display: block">
                 <ul>
                     <li>
                         <a href="#">数据七夕:金牛爱送玫瑰</a>
                     </li>
                     <li>
                         <a href="#">阿里打造"互联网监管"</a>
                     </li>
                     <li>
                         <a href="#">10万家店60万新品</a>
                     </li>
                     <li>
                         <a href="#">全球最大网上时装周</a>
                     </li>
                 </ul>
             </div>
             <div class="dom">
                 <ul>
                     <li>
                         <a href="#">“全额返现”要管控啦</a>
                     </li>
                     <li>
                         <a href="#">淘宝新规发布汇总(7月)</a>
                     </li>
                     <li>
                         <a href="#">炒信规则调整意见反馈</a>
                     </li>
                     <li>
                         <a href="#">质量相关规则近期变更</a>
                     </li>
                 </ul>
             </div>
             <div class="dom">
                 <ul>
                     <li>
                         <a href="#">阿里建商家全链路服务</a>
                     </li>
                     <li>
                         <a href="#">个性化的消费时代来临</a>
                     </li>
                     <li>
                         <a href="#">跨境贸易是中小企业机</a>
                     </li>
                     <li>
                         <a href="#">美妆行业虚假信息管控</a>
                     </li>
                 </ul>
             </div>
             <div class="dom">
                 <ul>
                     <li>
                         <a href="#">接次文件,毁了一家店</a>
                     </li>
                     <li>
                         <a href="#">账号安全神器阿里钱盾</a>
                     </li>
                     <li>
                         <a href="#">新版阿里110上线了</a>
                     </li>
                     <li>
                         <a href="#">卖家学违禁避免被处罚</a>
                     </li>
                 </ul>
             </div>
             <div class="dom">
                 <ul>
                     <li>
                         <a href="#">为了公益high起来</a>
                     </li>
                     <li>
                         <a href="#">魔豆妈妈在线申请</a>
                     </li>
                 </ul>
             </div>
         </div>
    </div>
    <script src="js/index.js"></script>
</body>
</html>
tabbar
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容