事件基础 属性的操作

目录

一、事件基础

1、事件概述

2、事件概述

3、执行事件步骤

4、常见的鼠标事件

二、属性的操作

1、获取属性值

2、设置属性值

3、移除属性

4、案例 Tab栏切换


一、事件基础

1、事件概述

JavaScript 使我们有能力创建动态页面,而事件是可以被 JavaScript 侦测到的行为。
简单理解: 触发--- 响应机制。
  网页中的每个元素都可以产生某些可以触发 JavaScript 的事件,例如,我们可以在用户点击某按
钮时产生一个 事件,然后去执行某些操作。

2、事件概述

事件源 (谁)
事件类型 (什么事件)
 事件处理程序 (做啥)
页面中有一个按钮,当鼠标点击按钮的时候,弹出 你好 警示框。

 分析:

① 获取事件源(按钮)
② 注册事件(绑定事件),使用 onclick
③ 编写事件处理程序,写一个函数弹出 alert 警示框

3、执行事件步骤

获取事件源
 注册事件(绑定事件)
 添加事件处理程序(采取函数赋值形式)

4、常见的鼠标事件

鼠标事件触发条件
onclick鼠标点击左键触发
onmouseover鼠标经过触发
onmouseout鼠标离开触发

onfocus

获得鼠标焦点触发
onblur失去鼠标焦点触发
onmousemove鼠标移动触发
onmouseup鼠标弹起触发
onmousedown鼠标按下触发

二、属性的操作

1、获取属性值

在DOM对象中可以使用“element.属性”的方式来获取内置的属性值,但是DOM对象并不能直接使用点语法获取到自定义属性的值,那么如何获取自定义属性值呢?

在DOM中,可以使用getAttribute('属性')方法来返回指定元素的属性值。

<div id="demo" index="1" class="nav"></div>
  <script>
    var div = document.querySelector('div'); 
    console.log(div.id);                               // 结果为:demo
     console.log(div.getAttribute('id'));     // 结果为:demo
    console.log(div.getAttribute('index')); // 结果为:1
  </script>

2、设置属性值

在DOM对象中可以使用“element.属性= '值'”的方式来设置内置的属性值,并且针对于自定义属性,提供了“element.setAttribute('属性', '值')”的方式进行获取。

<div></div>
  <script>
    var div = document.querySelector('div');
    div.id = 'test';                        // 设置id值为test
    div.className = 'navs';        // 设置class类名为navs
    div.setAttribute('index', 2);  // 设置属性名为index,值为2
  </script>

效果图如下

 另外,也可以使用setAttribute()方式设置元素的类名。

div.setAttribute('class', 'footer');

【class 是属性  footer 是类名】

3、移除属性

在DOM中使用“element.removeAttribute('属性')”的方式来移除元素属性。 

<div id="test" class="footer" index="2"></div>
  <script>
    var div = document.querySelector('div');   
    div.removeAttribute('id');        // 移除div元素的id属性
    div.removeAttribute('class');   // 移除div元素的class属性                        
    div.removeAttribute('index'); // 移除div元素的index属性
  </script>

4、案例 Tab栏切换

案例要求:标签栏在网站中的使用非常普遍,它的优势在于可以在有限的空间内展示多块的内容,用户可以通过标签在多个内容块之间进行切换。

(1)编写HTML代码:

<div class="tab">
  <div class="tab_list">
 </div> // 标签部分
  <div class="tab_con">            // 标签内容部分
    <div class="item" style="display: block;">商品介绍模块内容</div>
    <div class="item">规格与包装模块内容</div>
    <div class="item">售后保障模块内容</div>
    <div class="item">商品评价(50000)模块内容</div>
    <div class="item">手机社区模块内容</div>
  </div>
</div>

(2)编写CSS样式代码

<style>
        * {
            margin: 0;
            padding: 0;
        }

        li {
            list-style: none;
        }

        .tab {
            width: 1000px;
            margin: 100px auto;
        }

        .tab_list {
            height: 40px;
            border: 1px solid gray;
            background-color: rgb(233, 235, 233);
        }

        .tab_list li {
            float: left;
            height: 40px;
            line-height: 40px;
            padding:0 55px;
            cursor: pointer;
        }
        .tab_list .current{
            background-color: red;
            color: honeydew;
        }
        .items{
            display: none;
        }
    </style>

(3)编写JS代码,获取标签部分和内容部分的对象元素 

<script>
     // 获取标签部分的所有元素对象
     var tab_list = document.querySelector('.tab_list');
     var lis = tab_list.querySelectorAll('li');
     // 获取内容部分的所有内容对象
     var items = document.querySelectorAll('.item');
</script>

(4)编写JS代码,for循环绑定单击事件 

for (var i = 0; i < lis.length; i++) {        // for循环绑定点击事件
    lis[i].setAttribute('index', i);	   // 开始给5个小li设置索引号
    lis[i].onclick = function () {  // 清除所有li的class类,给自己设置current类
      for (var i = 0; i < lis.length; i++) {  lis[i].className = ''; }
      this.className = 'current';
      // 2. 下面的显示内容模块
      var index = this.getAttribute('index');
      for (var i = 0; i < items.length; i++) { items[i].style.display = 'none'; }
      items[index].style.display = 'block';
    }
 };

展示效果:

 案例分析:

① Tab栏切换有2个大的模块
② 上的模块选项卡,点击某一个,当前这一个底色会是红色,其余不变(排他思想) 修改类
名的方式
③ 下面的模块内容,会跟随上面的选项卡变化。所以下面模块变化写到点击事件里面。
④ 规律:下面的模块显示内容和上面的选项卡一一对应,相匹配。
⑤ 核心思路: 给上面的 tab_list 里面的所有小 li 添加自定义属性,属性值从 0 开始编号。
⑥ 当我们点击 tab_list 里面的某个小 li ,让 tab_con 里面对应序号的 内容显示,其余隐藏(排他
思想)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Blender是一个功能强大的三维建模软件,用于创建动画、视觉效果和游戏等。下面是Blender的一些基础操作: 1. 界面布局:打开Blender后,可以看到一个分割的视窗,包括3D视图、时间轴、属性和对象列表等。可以自定义界面布局以适应自己的工作流程。 2. 视图导航:右键点击鼠标可以选择物体,滚动鼠标滚轮实现缩放,按住鼠标中键可以平移视图。 3. 物体操作:选择一个物体后,可以按G键移动、按R键旋转、按S键缩放。可以按X、Y或Z键锁定移动方向。 4. 添加物体:按Shift + A键可以在场景中添加各种基本形状的物体,如立方体、球体、圆环等。 5. 材质和贴图:在属性面板中,可以为物体设置材质和贴图。选择一个物体后,打开材质选项卡,可以添加新的材质和纹理,并调整其属性。 6. 建模工具:Blender提供了多种建模工具,如顶点、边、面的操作,修剪、剪切等工具。可以通过键盘快捷键或者工具栏上的图标进行操作。 7. 渲染:Blender的渲染引擎可以用来创建照片级的图像。可以在渲染选项卡中设置渲染引擎、光源、阴影、材质等参数。 8. 动画:在Blender中可以创建复杂的动画效果。选择一个物体后,在时间轴中设置关键帧,可以控制物体的位置、旋转、缩放等属性的变化。 9. 导出和导入:Blender支持多种文件格式的导入和导出,如.obj、.fbx等。可以将Blender中创建的场景、物体导出为其他软件可以识别的格式。 通过掌握这些基础操作,可以开始学习更高级的Blender技术,如复杂的细节建模、动态模拟、粒子系统等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值