慕课网javascript 进阶篇 第十章 编程练习

---恢复内容开始---

第十章的编程练习是选项卡切换的问题。

  先分析下思路,

一、HTML页面布局

 我们可以用ui li 标签来写最上面一行的内容;用个div来装下面内容,为了实现更多的效果,我们可以把上面那行的文字放在<a>标签里。

二、CSS样式制作

  对文档进行基本的样式设置,font color border 那些

三、JS实现选项卡切换

通过改变DOM的css类名称,当前点击的选项卡显示,其它隐藏。

---恢复内容结束---

第十章的编程练习是选项卡切换的问题。

  先分析下思路,

一、HTML页面布局

 我们可以用ui li 标签来写最上面一行的内容;用个div来装下面内容,为了实现更多的效果,我们可以把上面那行的文字放在<a>标签里。

二、CSS样式制作

  对文档进行基本的样式设置,font color border 那些

三、JS实现选项卡切换

1 当我们点击的时候下面的内容是变换过来了,那么就是内容的的切换,我一开始可以设置三个div,分别装三部分文字内容,切换到谁就让谁显示出来

也就是display:block;其余的都是display:none;隐藏起来。

2  既然是一个选项对应这一个内容 那他们之间是什么联系着的?我们在写js的时候应该怎么把两者关联上,因为我们绑定事件的时候 他们是要一起发生事件的。

开始敲吧:

 html css布局  加样式就不多说了 主要是js:

 <style type="text/css">
        /* CSS样式制作 */
   div,.house,ul,p,a{margin:0px;
              padding:0px;
       font-size:14px;
       font-family:Arial,'sans-serif',微软雅黑;
        }
   div{
       text-indent:8px;
   }
  a{color: #819d8c;
      display:inline-block;
     width:62px;
    height:22px;
      text-decoration: none;
    border:none;}
  a:hover{
      color: #4c6fe2;}
  a:active{color: #e29996
  }
 ul{ margin-left:40px;
     border-bottom:2px saddlebrown solid;
     display: block;
     height: 22px;
   width:302px;}

        li{
            list-style: none;
            display: inline-block;
           border-top:2px solid rgba(89, 110, 180, 0.44);
            border-left:1px solid rgba(89, 110, 180, 0.44);
            border-right:1px solid rgba(89, 110, 180, 0.44);
            border-bottom:2px solid #6e3c2a;
            text-align: center;
            line-height:20px;
            width:60px;
            height:20px;;
            padding:0px;
            margin:0px;
            background:#fff;

        }
 .div1,.div2,.div3 {width:300px;
     height:120px;
     border:1px solid #7e96e2;
     border-top:none;
     margin-left:40px;

 }
 .div2,.div3{  display: none;

 }

  p         {padding-top:5px;
     }
.house{
    list-style: none;
    display: inline-block;
    border:1px solid #819d8c;
    border-bottom:2px solid #fff;
    border-top:2px solid #6e3c2a;
    text-align: center;
    line-height:20px;
    width:60px;
    height:px;;
    padding:0px;
    margin:0px;

}
  .hide{display: none;}
</style>
<ul>
    <li class="house"><a href="#" onclick="changecolor()">房产</a></li>
    <li><a href="#" onclick="changecolor()">家居</a></li>
    <li><a href="#" onclick="changecolor()">二手房</a></li>
</ul>
<div class="div1">
        <p>275万购昌平邻铁三居 总价20万买一居</p>
        <p>200万内购五环三居 140万安家东三环</p>
        <p>北京首现零首付楼盘 53万购东5环50平</p>
        <p>京楼盘直降5000 中信府 公园楼王现房</p>

</div>
<div class="div2">
    <p>40平出租屋大改造 美少女的混搭小窝</p>
    <p>经典清新简欧爱家 90平老房焕发新生</p>
    <p>新中式的酷色温情 66平撞色活泼家居</p>
    <p>瓷砖就像选好老婆 卫生间烟道的设计</p>
</div>
<div class="div3">
    <p>通州豪华3居260万 二环稀缺2居250w甩</p>
    <p>西3环通透2居290万 130万2居限量抢购</p>
    <p>黄城根小学学区仅260万 121平70万抛!</p>
    <p>独家别墅280万 苏州桥2居优惠价248万</p>
</div>
js:
<script type="text/javascript">
        // JS实现选项卡切换

        function changecolor() {
            var anode=document.getElementsByTagName("a");
            var linode=document.getElementsByTagName("li");
            var divnode=document.getElementsByTagName("div")
           // var divn2ode=document.getElementById("div2");
            //var divn3ode=document.getElementById("div3");

            for(var i=0;i<linode.length;i++){
                linode[i].index=i;  //因为一开始不知道index这个属性;所以一直联系不上li标签和div标签的关系
                linode[i].onclick=function () {

                 for(var n=0;n<linode.length;n++){
                      linode[n].className="";
                      divnode[n].className="hide";
                    }      //这个地方给的for循环很有意思 也用的很好  得好好琢磨琢磨
                    this.className="house";//这两端代码不能写在内部for循环之前,因为js是从上解析到下的 因为前面的for循环是把所有的li属性都归结到原始的状态
                    divnode[this.index].className="div1";//我们后面的是给前面归结到原始状态的添加新的className属性 div属性也一样 一开始都隐藏起来 后来在给予


               }
                }
        }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DeveWork

WordPress免插件仅代码实现“返回顶部、返回底部、评论”效果(样式二)

之前发表过一种样式的“返回顶部、返回底部、评论”效果,今天在这里分享Devework.com目前使用的效果:一个博客侧边滑动,返回顶部,查看评论的小工具,作为W...

1909
来自专栏前端说吧

css - 评分效果的星星✨外衣

这种效果,如果遇到一分一个星,没有半星(或者有也可以,直接加一个半星的类名)的情况,还可以通过添加多个结构实现。

271
来自专栏施炯的IoT开发专栏

美化Windows Mobile上的自定义ListView

    在移动设备上,我们经常需要列出数据给用户看,ListView是经常用到的控件。而有些时候,我们需要同时列出预览的图片和数据,所谓图文并茂,这样可以带来更...

1836
来自专栏张戈的专栏

网站集成打字震动特效JS代码改进版

这又是一个拖欠了很久的分享,很早就有朋友留言问评论打字炫彩、震动特效怎么实现的。这功能其实网上早就有人分享 N 遍了,有点搜索技巧和 DIY 能力的站长同学也早...

3477
来自专栏GIS讲堂

Javascript+CSS实现影像卷帘效果

用过Arcgis的筒子们对于Arcmap里面的一个卷帘效果肯定记忆很深刻,想把它搬到自己的WebGIS系统中去,抱着同样的想法,我也对这种比较炫的卷帘效果做了一...

492
来自专栏Coco的专栏

神奇的选择器 `:focus-within`

有个错误有必要每次讲到伪类都提一下,有时你会发现伪类元素使用了两个冒号 (::) 而不是一个冒号 (:),这是 CSS3 规范中的一部分要求,目的是为了区分伪类...

1205
来自专栏前端杂货铺

文本框的属性监测

之前很简单的认为对input的value监测就用2个事件可以搞定兼容性,知道我看了司徒正美的这篇博客,还是感慨自己不够深入,接触的太少。   对于IE全系列,可...

2886
来自专栏DeveWork

WordPress文章版权保护:复制文字自动添加版权信息

这年头,个人博客抄袭成风;某些博主非常不厚道,常常是原封不动地拿过去,不署名来源是常事,还有更可恨的是说成自己的。本站DeveWork.com 为了不必要的纠纷...

18010
来自专栏从零开始学 Web 前端

从零开始学 Web 之 移动Web(四)实现JD分类页面

如下面的结构:大盒子1和大盒子2分为上下结构,小盒子3和小盒子4在大盒子2的内部,分为左右结构。

673
来自专栏软件工程师成长笔记

火星坐标拾取工具

在国内必须至少使用GCJ-02的坐标系,而GCJ-02,“火星坐标”是在国内最广泛使用的坐标体系。那么,我们就来看看,如何直接获取到GCJ-02坐标呗。 请大...

1162

扫码关注云+社区