html5 笔记02

目录

01 svg的基本使用

02 svg绘图

03 进程和线程


 

01 svg的基本使用

        svg和canvas的区别:

        canvas: 1.canvas作为一个容器只有一个dom元素 ,内部元素无法使用dom操作

                   (canvas不能展开然后选择不到 svg查看元素能选中因为是通过标签控制的)

                2.canvas 是配合js完成各种绘制效果

                3.canvas 是位图 依赖像素 放大会变得模糊

        svg: 1.svg虽然也是一个容器, 到那时内部有各种各样的dom元素操作

                2.svg是通过各种标签进行绘制的内容(rect circle)

                3.svg是矢量图,不依赖像素 (放大缩小不会失真)

02 svg绘图

        1.绘制矩形

               <svg width="400" height="400" style="border:1px solid #000">

                        <rect x="50" y="50" width="200" height="200" fill="red"></rect>

                </svg>

                默认是fill填充效果   可以通过fill属性 修改填充颜色 

                如果只想描边 那么fill='none' ; stroke-width=" " 描边宽度; stroke=" " 描边颜色

        2.绘制圆

                <svg width="400" height="400" style="border:1px solid #000">

                        <circle cx="200" cy="200" r="100" fill="orange"></circle>

                </svg>

        3.绘制椭圆

               <svg width="400" height="400" style="border:1px solid #000">

                        <ellipse cx="200" cy="200" rx="200" ry="20" ></ellipse>

                </svg>

        4.绘制多点线

                <svg width="400" height="400" style="border:1px solid #000">

                        <polyline points="50,50 275,147 235,399 127,25"

                            fill="none" stroke-width="3" stroke="hotpink"></polyline>

                </svg>

        5.绘制多点形状

                <svg width="400" height="400" style="border:1px solid #000">

                        <polygon points="100,100 200,100 200,300 150,400 100,300"></polygon>

                </svg>

        6.svg渐变的使用

                线性渐变:

                        语法:<linearGradient></linearGradient>

                        属性:

                        id,定义了渐变的唯一名称

                        x1,渐变的起始x位置,百分比

                        y1,渐变的起始y位置,百分比

                        x2,渐变的结束x位置,百分比

                        y2,渐变的结束y位置,百分比

                        颜色用单标签stop设置,如:

                        offset:定义渐变颜色的开始和结束位置,其值是相对位置的百分比

                        stop-color:用于定义渐变的颜色

                例:   

                         

                径向渐变:

                        语法:<radialGradient></radialGradient>双标签

                        属性有:

                        id,定义了渐变的唯一名称

                        cx,定义最外面圆x

                        cy,定义最外面圆x

                        r,定义最外面圆半径

                        fx,定义了最里面的圆

                        fy,定义了最里面的圆

                        颜色也是使用stop实现

                        例:

                        

        7. svg的预定义标签

                标签分组: <g id='id值'></g>

                分组标签的使用:<use xlink:href='#id值'></use>

                

        8.svg 高斯模糊

                <defs>

                        <filter id=“a”>

                               <feGaussianBlur stdDeviation=“8”></feGaussianBlur>

                        </filter>

                </defs>

                <rect x="100" y="100" width="200" height="200" filter="url(#a)"></rect>

               stdDeviation 表示模糊度 值越大越模糊

                此处引入高斯模糊用的是filter不能是fill填充效果

        9.svg动态创建

                通过JS动态创建SVG图形

                1.获取svg对象

                2.动态创建一个子元素(并且设置子元素的属性)

                3.添加到父元素里面去

                        创建的方法:

                        Document.createElementNS(“http://www.w3.org/2000/svg”,”标签名”)

                        通过返回值的对象.setAttribute()方法设置属性

                        然后通过appendChild()把新创建的元素放到父元素里面

                        可以通过点击事件创建元素

                Tips:event.offsetX可以获取鼠标在盒子中的位置

        例:

                

        10.拖拽

                拖放(Drag 和 Drop)是很常见的特性。它指的是您抓取某物并拖入不同的位置。

                拖放是 HTML5 标准的组成部分:任何元素都是可拖放的。

                 为了把一个元素设置为可拖放,请把 draggable 属性设置为 true:

        <img draggable="true">
03 进程和线程

        1.进程和线程的概述

                进程: 正在运行的程序

                线程: 进程中具体的执行任务

                cpu在进程间高速切换实际上就是在每一个进程里面的线程上面切换,

                所以线程是cpu执行的最基本的单元.

                js 是单线程程序:

                        因为js运行环境硬件不够强大

                js这个单线程负责的内容:

                        页面更新 js代码执行 加载页面 请求数据...

        2.worker线程的使用

                一般情况下用不到开子线程 

                有耗时操作或者长轮询操作时会开启子线程

                开启线程的语法:

                        var worker = new Worker('js文件路径')

                如何通信:

                子线程给主线程通信:

                        this(子线程对象).postmessage({

                                自定义键值对

                        })

                        在主线程里面通过new出来的worker对象

                        worker.onmessage=function(e){

                                通过形参接收子线程传过来的数据

                        }

                主线程给子线程通信:

                        1. 在主线程中创建两个Handler对象 handler 和 handler2,

                            (图中是threadHandler),并直接初始化 handler,而handler2 不初始化。

                         2. 使用 HandlerThread 创建一个子线程 thread ,并启动 thread 。

                         3. 初始化 handler2(使用 thread 的 getLooper()作为参数),

                              这样一来handler2就是子线程的 Handler 对象。

                        4. 重写 handler 和 handler2 的 handleMessage()方法,

                            在里面创建Message对象,并使用对方的

                       sendMessageDelayed(message,1000);方法发送消息。

                         5. 定义一个Button,定义点击事件,由点击事件触发如上交互的操作。

                           如上操作中,第4点是核心,也就是两个 Handler 各自重写 handleMessage(),

                           方法里面却是使用对方的 sendMessage() 方法。

                           这样就实现了主线程和子线程的相互发送信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15791.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指纹识别概念解析

目录 1. 指纹是物证之首 1.1 起源于中国 1.2 发展于欧洲 1.3 流行于全世界 2. 指纹图像 3. 指纹特征 4. 指纹注册 5. 指纹验证 6. 指纹辨识 1. 指纹是物证之首 指纹识别技术起源于中国、发展于欧洲、流行于全世界。自20世纪以来&#xff0c;指纹在侦破刑事案件、解决诉…

水泥超低排平台哪家好?

随着环保政策的加强和绿色发展理念的深入人心&#xff0c;水泥行业的超低排放改造已成为行业发展的新趋势。选择一个合适的水泥超低排平台对于确保改造效果和实现企业的可持续发展至关重要。朗观视觉小编将从多个角度出发&#xff0c;为您提供一份综合评估与选择攻略&#xff0…

[C语言]自定义类型详解:结构体、联合体、枚举

目录 &#x1f680;结构体 &#x1f525;结构体类型的声明 &#x1f525;结构的自引用 &#x1f525;结构体变量的定义和初始化 &#x1f525;结构体内存对齐 &#x1f525;结构体传参 &#x1f525;结构体实现位段&#xff08;位段的填充&可移植性&#xff09; &a…

安装 Ubuntu桌面版,详细步骤(附引导 U盘制作工具)

下载镜像 安装Ubuntu首先要下载镜像包&#xff0c;访问下面网址下载镜像包 https://releases.ubuntu.com/ 选择你要安装的Ubuntu版本 将 .iso 文件保存到所需位置&#xff0c;下面会使用此文件创建可引导 U盘。 制作 Ubuntu 引导 U 盘 首先要找到一个大于4G的U盘&#xff…

猫头虎 解析:为什么AIGC在国内适合做TOB,在国外适合做TOC?

猫头虎 解析&#xff1a;为什么AIGC在国内适合做TOB&#xff0c;在国外适合做TOC&#xff1f; 博主 猫头虎 的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面…

ps进程查看命令详解

1、PS 命令是什么 查看它的man手册可以看到&#xff0c;ps命令能够给出当前系统中进程的快照。它能捕获系统在某一事件的进程状态。如果你想不断更新查看的这个状态&#xff0c;可以使用top命令。 2、ps命令支持三种使用的语法格式 UNIX 风格&#xff0c;选项可以组合在一起…

鸿蒙ArkUI-X平台差异化:【运行态差异化(@ohos.deviceInfo)】

平台差异化 简介 跨平台使用场景是一套ArkTS代码运行在多个终端设备上&#xff0c;如Android、iOS、OpenHarmony&#xff08;含基于OpenHarmony发行的商业版&#xff0c;如HarmonyOS Next&#xff09;。当不同平台业务逻辑不同&#xff0c;或使用了不支持跨平台的API&#xf…

Postman快捷功能-批量断言与快速查询替换

大家好&#xff0c;在我们日常的接口测试工作中&#xff0c;经常需要对接口返回的数据进行断言&#xff0c;以确保接口的正确性。当接口数量较多时&#xff0c;逐个编写断言语句会变得非常繁琐。此外&#xff0c;在接口测试过程中&#xff0c;我们还可能需要频繁地查找和替换某…

Python自动化工具(桌面自动化、Web自动化、游戏辅助)

工具介绍 连点工具是一款可以模拟键鼠后台操作的连点器工具。支持鼠标连点、键鼠脚本录制&#xff0c;支持辅助您实现办公自动化以及辅助游戏操作。功能简洁易用&#xff0c;非常方便操作。连点工具让您在在玩游戏、网购抢购的时候全自动点击鼠标&#xff01;主要功能有&#…

MySQL数据库的数据文件保存在哪?MySQL数据存在哪里

在安装好MySQL数据库使用一段时间后&#xff0c;会产生许多的数据库和数据。那这些数据库的数据文件存放在本地文件夹的什么位置呢 一、默认位置 一般来说MySQL数据库的数据文件都是存放在data文件夹之中&#xff0c;但是根据使用的存储引擎不同&#xff0c;产生的一些文件也…

24李林跌落神坛,880还刷吗?还是换1000、900、660?

“李林今年跌落神坛了&#xff01;” “全是固定题型没新题&#xff0c;结果今年考的全是新题。” 880是“老真题的神”&#xff0c; 遇到24年&#xff0c;冷门考点多&#xff0c;计算量又大&#xff0c;就不灵了。 但“老真题”&#xff0c;还是得刷。就像往年真题是要刷的…

(十一)统计学基础练习题五(50道选择题)

本文整理了统计学基础知识相关的练习题&#xff0c;共50道&#xff0c;适用于想巩固统计学基础或备考的同学。来源&#xff1a;如荷学数据科学题库&#xff08;技术专项-统计学二&#xff09;。序号之前的题请看往期文章。 201&#xff09; 202&#xff09; 203&#xff09; 2…

得帆信息PMO总监李健达受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 上海得帆信息技术有限公司aPaaS业务线副总裁、PMO总监李健达先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“AI时代的PMO工作法”。大会将于6月29-30日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#x…

Spring框架学习笔记(五):JdbcTemplate 和 声明式事务

基本介绍&#xff1a;通过 Spring 框架可以配置数据源&#xff0c;从而完成对数据表的操作。JdbcTemplate 是 Spring 提供的访问数据库的技术。将 JDBC 的常用操作封装为模板方法 1 JdbcTemplate 使用前需进行如下配置 1.1 在maven项目的pom文件加入以下依赖 <dependencies…

labelme的使用

创建虚拟环境 听说是要用这个3.6版本的python环境 conda create --namelabelme python3.6激活虚拟环境 activate labelme下载labelme pip install labelme #安装labelme组件启动labelme 在你打开文件的时候推荐还是自己先建立一个label.txt 把自己要分的类别放进去 label.…

翻译《The Old New Thing》- What‘s the deal with the EM_SETHILITE message?

Whats the deal with the EM_SETHILITE message? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071025-00/?p24693 Raymond Chen 2007年10月25日 简要 文章讨论了EM_SETHILITE和EM_GETHILITE消息在文档中显示为“未实现”的原因。这些…

前端 JS 经典:Web 性能指标

什么是性能指标&#xff1a;Web Performance Metrics 翻译成 Web 性能指标&#xff0c;一般和时间有关系&#xff0c;在短时间内做更多有意义的事情。 一个站点表现得好与不好&#xff0c;标准在于用户体验&#xff0c;而用户体验好不好&#xff0c;有一套 RAIL 模型来衡量。这…

音视频学习规划

文章目录 概述闲聊点 小结 概述 最近在学习音视频&#xff0c;觉得还是要先写个提纲&#xff0c;给自己制定下学习路线及目标。先写下我的个人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒体RTMP&#xff0c;HLS 闲聊点 先说下学习命令行吧&#xff0c;学习命令行是为了…

Python3 笔记:IDLE的几个基本设置

1、设置字体&#xff1a; Options > Configure IDLE > Fonts 2、设置文字颜色&#xff08;设置高亮&#xff09;&#xff1a; Options > Configure IDLE > Highlights 3、设置背景颜色&#xff1a; Options > Configure IDLE > Highlights 4、设置窗口&a…

各位数字和-第13届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第72讲。 各位数字和&#…