js基础第二天

1.利用js可以操作样式和结构

  • 1.DOM树


  • 2.利用DOM树访问HTML元素(节点)
    • 通过使用 getElementById() 方法

    • getElementById() 方法返回带有指定 ID 的元素

        // 1.获取id为box的盒子
        var box = document.getElementById('box');
        console.log(box);
        // 2.修改样式 js操作盒子的样式大多数都是设置行内样式
        box.style.width = '400px';
        box.style.backgroundColor = 'yellow';
      
  • 3.操作结构 innerHTML属性
    • 改变元素内容的最简单的方法是使用 innerHTML 属性

        // 1.获取标签
        var box = document.getElementById('box');
        // 2.操作标签
        // innerHTML: 获取或者修改 标签里面的内容
        box.innerHTML = '<h2>我是标题</h2><p>我是段落</p>';
      

2.事件的基本认识
我点击了开关,灯亮了
事件三要素 事件源 事件属性 事件指令
事件源:开关 对应HTML中的标签
事件属性: 做了什么动作, 点击
事件指令: 做的一系列操作 造成的结果/影响,灯亮了
三者结合起来: 事件源.事件属性 = 事件指令

  • 事件属性


  • 2.图片切换案例

      // 1.获取标签
      var box = document.getElementById('box');
      // 2.绑定事件 onmouseover 鼠标经过
      box.onmouseover = function () {
          box.src = 'images/22.jpg';
      };
      box.onmouseout = function () {
          box.src = "images/11.jpg";
      };
    

3.换肤效果案例 hao123换肤效果 给body设置背景
// 1.获取body
var body = document.body;
body.style.background = 'url(images/1.jpg)';

// 2.抽取函数 把相同的功能抽取出来,不同的做为参数传递
function changeSkin(id,url) {
    var dom = document.getElementById(id);
    dom.onclick = function () {
        body.style.background = url;
    };
}
changeSkin('pic1','url(images/1.jpg)');
changeSkin('pic2','url(images/2.jpg)');
changeSkin('pic3','url(images/3.jpg)');
changeSkin('pic4','url(images/4.jpg)');
changeSkin('pic5','url(images/5.jpg)');

4.电脑选取案例
// 1.获取标签
var box = document.getElementById('box');

function changeBackground(id,url) {
    var dom = document.getElementById(id);
    dom.onmouseover = function () {
        box.style.background = url;
    };
}
changeBackground('li1','url("images/1big.jpg")');
changeBackground('li2','url("images/2big.jpg")');
changeBackground('li3','url("images/3big.jpg")');
changeBackground('li4','url("images/4big.jpg")');
changeBackground('li5','url("images/5big.jpg")');

5.if语句的应用 美女竞价

// 1.获取标签
var oh2 = document.getElementById('oh2');
var btn = document.getElementById('btn');

btn.onclick = function () {
    // 弹出一个输入框
    /*
    * '' 代表价格为空
    * null 代表用户点击了取消
    * */
    var price = prompt('请输入价格');
    console.log(price);

    if(price != null){
        if (price == ''){
            // 价格为空,提示
            alert('价格不能为空');
        }else if(parseInt(price) < 1000){
            alert('美女很值钱,请重新竞价');
        }else if(isNaN(parseInt(price)) == true){
            // 用户输入的不是数字
            alert('请输入数字');
        } else {
            oh2.innerHTML = '底价是' + price + '元';
        }
    }else {
        console.log('用户点击了取消');
    }
}

NaN 不是一个数字, 但是一个number类型 NaN和自身不相等

6.switch应用
// 1.获取标签
var sel = document.getElementById('sel');
sel.onchange = function () {
// alert(sel.value);
var str = '';
switch (sel.value){
case '春天':
str = '春意盎然';
break;
case '夏天':
str = '夏日炎炎';
break;
case '秋天':
str = '秋风瑟瑟';
break;
case '冬天':
str = '冬雪皑皑';
break;
default:
str = '未知';
}
alert(str);
}
7.食物选择

  • html部分

      <div id="box">
      <span id="oSpan">食物选取</span>
      <ul id="oUl">
          <li>苹果</li>
          <li>香蕉</li>
          <li>黄瓜</li>
      </ul>
      </div>
    
  • js部分

      // 1.获取标签
      var box = document.getElementById('box');
      var oSpan = document.getElementById('oSpan');
      var oUl = document.getElementById('oUl');
      // 2.绑定事件
      box.onmouseover = function () {
          oSpan.style.backgroundImage = 'url("images/down.gif")';
          oUl.style.display = 'block';
      };
      box.onmouseout = function () {
          oSpan.style.backgroundImage = 'url("images/up.gif")';
          oUl.style.display = 'none';
      }
    
  • display 元素隐藏后不占用位置

  • visibility 元素隐藏后还继续占用原来的空间

8.transform属性
// 1.获取标签
var btn1 = document.getElementById('btn1');
var btn2 = document.getElementById('btn2');
var btn3 = document.getElementById('btn3');
var btn4 = document.getElementById('btn4');
var box = document.getElementById('box');
// 2.添加事件
// 平移
btn1.onclick = function () {
box.style.transform = 'translate(100px,100px)';
};
// 旋转
btn2.onclick = function () {
box.style.transform = 'rotate(45deg)';
};
// 缩放
btn3.onclick = function () {
box.style.transform = 'scale(0.5,0.5)';
}
// 综合
btn4.onclick = function () {
box.style.transform = ' translate(100px,100px) rotate(45deg) scale(0.5,0.5)';
}
9.输入框的制作

// 1.获取标签
var input = document.getElementById('input1');
var placeholder = '请输入产品名称';

// 2.绑定事件
// 当输入框成为焦点的时候会调用
input.onfocus = function () {
    if(input.value == placeholder){
        input.value = '';
        input.style.color = '#000';
    }
};
// 输入框失去焦点
input.onblur = function () {
    if (input.value == ''){
        input.value = placeholder;
        input.style.color = '#ccc';
    }
}

10.js引入的3中方法 行内式 内嵌式 外联式

  1. window.onload 当界面加载完毕的时候调用
    window.onload = function () {
    }
    12.数组
  • 1.数组的基本认识

      数组是用来存储大批量的数据, js中的数组可以存储不同类型的数据
      var arr = [1,'2',true,null,undefined,'123',456];
      console.log(arr);
    
    • 1.数组创建的2种方式

        var arr = new Array();
        var arr1 = [];
      
    • 2.数组是有序的,可以通过下标值/索引值来获取 索引值从 0 开始

        console.log(arr[0]);
        console.log(arr[1]);
        console.log(arr[2]);
        console.log(arr[3]);    
      
    • 3.数组的遍历, 数组有一个length属性可以获取数组中元素个数

        // 3.数组也可以采取遍历的方式取出元素
        for(var i = 0; i<arr.length; i++){
            console.log(arr[i]);
        }
      
  • 2.数组的应用 隔行变色

    • box.getElementsByTagName('li'); 获取box里面所有的li标签,返回一个伪数组,目前可以认为是一个数组
  • 3.全选,反选,不选

  • 4.排他思想

      // 1.获取按钮
      var list = document.getElementsByTagName('button');
      for(var i = 0; i<list.length; i++){
          // 绑定事件
          list[i].onclick = fn;
      }
      function fn() {
      //            alert('点我啊');
          // 1.取消所有的按钮选中
          for(var j = 0; j<list.length; j++){
              list[j].className = '';
          }
          // 2.选中当前的按钮
          // this 在事件指令中指向事件的调用者
          this.className = 'curr';
      }![88865-106.jpg](http://upload-images.jianshu.io/upload_images/9199255-6cb65ae37ac21a9b.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容

  • 一、DOM 什么是DOM?Document Object Model(文档对象模型)。DOM是针对HTML和XML...
    空谷悠阅读 966评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,739评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,061评论 1 10
  • DOM DOM内容主要分为四部分: 什么是DOM和节点; 获取节点; 节点操作(3种); 属性操作(3种)。 什么...
    magic_pill阅读 774评论 0 1
  • 找不到合适的工作,招不到合适的人才,这是求职者和招聘单位的纠结,原因在哪? 每年有很多求职大军,他们在城市的各个区...
    赤脚大爷阅读 274评论 0 0