初探JavaScript魅力

JavaScript是什么?

网页特效原理

  • 淘宝、新浪、报读
  • JavaScript就是修改样式

编写JS的流程

  • 布局:HTML+CSS
  • 属性:确定要修改哪些属性
  • 事件:确定用户做哪些操作(产品设计)
    -编写JS:在事件中,用JS来修改页面元素的样式

第一个JS特效——鼠标提示框

分析效果实现原理:

  • 样式:div的display
  • 事件:onmouseover、onmouseout
  • 动手编写此效果

特效基础

  • 事件驱动:onmouseover
  • 元素属性操作:obj.style.[……]
  • 特效实现原理概括:相应用户操作,对页面元素(标签)进行某种修改

代码如下:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        #div1 {
            width: 200px;
            height: 100px;
            background:#e2e1e1;
            border:1px solid #999;
            display: none;
        }
    </style>
</head>
<body>
    <!-- 鼠标经过提示功能: -->
    <input type="checkbox">
    <label for="" onmouseover="document.getElementById('div1').style.display='block';" onmouseout="document.getElementById('div1').style.display='none';">两周内自动登录</label>
    <div id="div1">
        为了您的信息安全,请不要在网吧、公司或者其他公共电脑上使用此功能……
    </div>
</body>
</html>

初识函数

  • 制作更复杂的效果(DIV的颜色、大小都变化)
  • 直接在事件内写代码会很乱
    1、引入function()函数的基本形式
    2、把JS从标签里放入到函数里,类似css的class
    3、变量的使用——别名
  • 定义和调用
    1、函数的定义:只是告诉系统有这个函数,不会实际执行
    2、函数的调用:真正执行函数里面的代码
    3、关系和区别

初步使用函数:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        #div1 {
            width: 200px;
            height:200px;
            background:red;
        }
    </style>
</head>
<body>
    <div id="div1" onmouseover="toGreen()" onmouseout="toRed()"></div>
    <script>
        var oDiv = document.getElementById('div1');
        function toGreen() {
            oDiv.style.width='300px';
            oDiv.style.height='300px';
            oDiv.style.background='green';
        }
        function toRed() {
            oDiv.style.width='200px';
            oDiv.style.height='200px';
            oDiv.style.background='red';
        }
    </script>
</body>
</html>

getElementById

  • 这是一个兼容性问题
  • 在FF下直接使用id存在问题
    1、引入document.getElementById()
    2、doucument.getElementById在任何浏览器下均可使用
  • 网页换肤
    1.土豆网“开灯、关灯”效果
    2.任何标签都可以加id,包括link
    3.任何标签的任何属性,也可以修改
    4.HTML里面怎么写,JS里就怎么写

换肤:
HTML:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link id="l1" rel="stylesheet" type="text/css" href="">
</head>
<body>
    <input type="button" value="皮肤1" onclick="skin1()">
    <input type="button" value="皮肤2" onclick="skin2()">
    <script>
        var oL = document.getElementById('l1');
        function skin1(){
            oL.href='css1.css';
        }
        function skin2(){
            oL.href='css2.css';
        }
    </script>
</body>
</html>

css1.css:

@charset "utf-8";

body {
    background-color: black;
}

input {
    width: 200px;
    height: 100px;
    background-color: yellow;
}

css2.css:

@charset "utf-8";

body {
    background-color: #ccc;
}

input {
    width: 100px;
    height: 50px;
    background-color: red;
}

HTML里面怎么写,JS里就怎么写:
如,修改input里面的文字:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <input id="text1" type="text">
    <input type="button" value="改文字" onclick="setText()">
    <script>
        var oTxt = document.getElementById('text1');
        function setText(){
            oTxt.value="改变input里面的文字";
        }
        
    </script>
</body>
</html>

if判断

if,翻译过来就是“如果”的意思,if在javascript里面就是判断,所谓判断就是遇到不同的情况就做不同的操作,不同的问题就做不同的处理;
if的基本格式:

if(条件){
    //  语句1
}else{
    //  语句2
}

意思是,如果条件成立,那么执行语句1,如果条件不成立,则执行语句2

  • 点击按钮显示/隐藏div(点击下拉菜单)
    特效实现过程及原理分析

当点击的时候
如果div是显示的,则隐藏(oDiv.style.display='none')
如果div是隐藏的,则显示(oDiv.style.display='block')

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #div1 {
            width: 100px;
            height: 200px;
            background-color: #ccc;
            border:1px solid #999;
            display: none;
        }
    </style>
</head>
<body>
    <button onclick="showHide()">更多></button>
    <div id="div1">
        <ul>
            <li>北京</li>
            <li>天津</li>
            <li>上海</li>
            <li>广州</li>
            <li>深圳</li>
        </ul>
    </div>
    <script>
        function showHide(){
            var oDiv = document.getElementById('div1');
            if(oDiv.style.display == 'block'){
                oDiv.style.display = 'none';
            }else{
                oDiv.style.display = 'block';
            }
        }
    </script>
</body>
</html>
Paste_Image.png

if的基本形式

  • 扩展
    为a链接添加JS
<a href="javascript:;"></a>

className的使用:
DOM 0级事件绑定方式,可以将js事件代码跟HTML分离;

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #div1 {
            width: 100px;
            height: 200px;
            border:1px solid black;
        }
        .box {
            background-color: red;
        }
    </style>
</head>
<body>
    <button id="btn">变红</button>
    <div id="div1">
        
    </div>
    <script>
        var oDiv = document.getElementById('div1');
        var oBtn = document.getElementById('btn');
        //DOM 0级事件处理程序:
        //将js事件代码和HTML代码相分离
        oBtn.onclick = function(){
            oDiv.className = "box";
        }
    </script>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容

  • 1.函数 1.1.函数的基础知识 1.1.1.为什么要使用函数 在写代码的时候,有一些常用的代码需要书写多次,如果...
    想做一个画家阅读 76评论 0 0
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,763评论 0 8
  • 在去尼泊尔之前,和高老师的对话 —“嘿 ,我终于要在毕业三年后的今天去尼泊尔了,只不过看着各路游记,有点失望,好发...
    行走的路痴少女阅读 1,679评论 0 1
  • 虽然我们生活在同一个世界里,但是他会有两个镜像。一正一反,一阴一阳。,就像我们照镜子一样,我们举右手,镜子的你举左...
    七年剑阅读 326评论 2 0
  • 遇见我之前,阿聪做着自由旅者,以梦为马,随处可栖,他从未停下过, 遇见我之后,他开始在一个城市定居,安稳工作,学着...
    白大狸阅读 1,791评论 0 3