html5 笔记02

news2025/1/14 18:42:29

目录

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.coloradmin.cn/o/1691294.html

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

相关文章

【学习笔记】Webpack5(Ⅱ)

Webpack 3、高级篇 3.1、提升开发体验 —— SourceMap 3.2、提升打包速度 3.2.1 HotModuleReplacement 3.2.2 OneOf 3.2.3 Include / Exclude 3.2.4 Cache 3.2.5 Thread 3.3、减少代码体积 …

iMX6ULL 嵌入式linux开发 | 4G无线广播终端实现方案介绍

现有的有线广播&#xff0c;如村上的大喇叭&#xff0c;需要布线&#xff0c;施工麻烦。借助现有的4G网络&#xff0c;传输音频流完全没问题&#xff0c;4G网络结合流媒体技术和MQTT消息传递实现设备间的同步推拉流。这种方案可以避免有线布线的麻烦&#xff0c;同时实现4G无线…

Spark在YARN上运行图解(资源调度+任务调度)及案例

前提&#xff1a;已经安装了spark集群&#xff0c;可参考上篇文章搭建&#xff1a;http://t.csdnimg.cn/UXBOp 一、Spark集群配置YARN 1、增加hadoop 配置文件地址 vim spark-env.sh 增加export HADOOP_CONF_DIR/usr/local/soft/hadoop-3.1.1/etc/hadoop 2、关闭虚拟内存 cd …

DMR对讲机数字协议详解

一、概述 DMR数字对讲机协议是欧洲电信标准协会在2005年4月推出的数字对讲机标准&#xff0c;后来又进行了多次修改。最新版本DMR数字对讲机协议是2007年12月公布的&#xff0c;共有四部分&#xff1a;第一部分为空中接口物理层和数据链路层协议&#xff0c;第二部分为空中接口…

【Unity AR开发插件】四、制作热更数据-AR图片识别场景

专栏 本专栏将介绍如何使用这个支持热更的AR开发插件&#xff0c;快速地开发AR应用。 链接&#xff1a; Unity开发AR系列 插件简介 通过热更技术实现动态地加载AR场景&#xff0c;简化了AR开发流程&#xff0c;让用户可更多地关注Unity场景内容的制作。 “EnvInstaller…”支…

牛客网刷题 | BC93 公务员面试

目前主要分为三个专栏&#xff0c;后续还会添加&#xff1a; 专栏如下&#xff1a; C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读&#xff01; 初来乍到&#xff0c;如有错误请指出&#xff0c;感谢&#xff01; 描述 公务员面试现场打分…

【安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT】

安装笔记-系列文章目录 安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT 文章目录 安装笔记-系列文章目录安装笔记-20240520-Windows-在 QEMU 中尝试运行 OpenWRT 前言一、软件介绍名称&#xff1a;OpenWRT主页官方介绍 二、安装步骤测试版本&#xff1a;openwrt-23.05…

C语言在VS中使用scanf报错?

我们在使用VS时&#xff0c;用scanf函数&#xff0c;VS会报以下错误&#xff1a; 以下是解决方法&#xff1a; 来到输出窗口&#xff0c;复制以下语句&#xff1a;_CRT_SECURE_NO_WARNINGS 第一种暂时方法 1.在代码的第一行&#xff0c;写下&#xff1a;#define _CRT_SECURE_…

vuejs路由和组件系统

前端路由原理 createRouter * hash* window.addEventListener(hashChange)* 两种实现路由切换的模式&#xff1a;UI组件&#xff08;router-link&#xff0c;router-view&#xff09;&#xff0c;Api&#xff08;push()方法&#xff09; * history * HTML5新增的API &#xff0…

2024年电工杯A题论文首发+摘要分享+问题一代码分享

问题一论文代码链接&#xff1a;https://pan.baidu.com/s/1kDV0DgSK3E4dv8Y6x7LExA 提取码&#xff1a;sxjm --来自百度网盘超级会员V5的分享 园区微电网风光储协调优化配置 摘要&#xff1a;园区微电网由风光发电和主电网联合为负荷供电&#xff0c;为了尽量提高风光电量的…

机器人运动轨迹学习——GMM/GMR算法

机器人运动轨迹学习——GMM/GMR算法 前置知识 GMM的英文全称为&#xff1a;Gaussian mixture model&#xff0c;即高斯混合模型&#xff0c;也就是说&#xff0c;它是由多个高斯模型进行混合的结果&#xff1a;当然&#xff0c;这里的混合是带有权重概念的。 一维高斯分布 GMM中…

鸿蒙布局List简介

鸿蒙布局List简介 List--常见的布局容器List 创建方式创建方式一&#xff0c;通过Listitem创建方式二&#xff0c;通过ForEach和Listitem创建方式三&#xff0c;通过ListItemGroup List–常见的布局容器 List是在app开发中最常见的一种布局方式&#xff0c;例如通讯录、新闻列…

Vue3实现简单的瀑布流效果,可抽离成组件直接使用

先来看下效果图&#xff1a; 瀑布流中的内容可进行自定义&#xff0c;这里的示例图是通过不同背景颜色的展示进行区分&#xff0c;每个瀑布流中添加了自定义图片和文字描述。 实现方式&#xff1a; 1.建立子组件&#xff08;可单独抽离&#xff09;写出瀑布流的样式 文件名为…

远程桌面连接不上远程服务器,如何有效的解决远程桌面连接不上远程服务器的问题

在解决远程桌面连接不上远程服务器的问题时&#xff0c;我们需要采取一种专业且系统的方法来排查和修复可能存在的故障。以下是一些建议和步骤&#xff0c;帮助用户更有效地解决此类问题。 首先&#xff0c;用户需要确认远程服务器的状态和网络连接是否正常。 这包括检查服务器…

51汇编版--配套proteus仿真

代码配套的仿真&#xff0c;我自己试过是好使的&#xff0c;外部中断&#xff0c;计数功能要自己添加脉冲信号或按键才能有对应现象&#xff0c;自己搞一下子。 不限速下载链接 https://wwo.lanzoul.com/iQ46m1zm456j 密码:g92f 如果连接不正常&#xff0c;请尝试将lanzoul的…

Python游戏编程:一步步用Python打造经典贪吃蛇小游戏

贪吃蛇作为一款极其经典且广受欢迎的小游戏&#xff0c;是早期 Windows 电脑和功能手机&#xff08;特别是诺基亚手机&#xff09;流行度极高的小游戏&#xff0c;是当时功能手机时代最具代表性的游戏之一。游戏的基本规则和目标十分简单&#xff0c;但却极具吸引力&#xff0c…

【管理咨询宝藏111】安永某集团供应链流程设计及现状分析报告

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏111】安永某集团供应链流程设计及现状分析报告 【格式】PDF版本 【关键词】安永、供应链、流程优化 【核心观点】 - 缺乏客户分级&#xff0c;无…

力扣HOT100 - 75. 颜色分类

解题思路&#xff1a; 单指针&#xff0c;对数组进行两次遍历。 class Solution {public void sortColors(int[] nums) {int p 0;int n nums.length;for (int i 0; i < n; i) {if (nums[i] 0) {int tmp nums[i];nums[i] nums[p];nums[p] tmp;p;}}for (int i p; i …

visual studio 2022 ssh 主机密钥算法失败问题解决

 Solution - aengusjiang 问题&#xff1a; I follow the document, then check sshd_config, uncomment“HostKey /etc/ssh/ssh_host_ecdsa_key” maybe need add the key algorithms: #HostKeyAlgorithms ssh-ed25519[Redacted][Redacted]rsa-sha2-256,rsa-sha2-512 Ho…

对于高速信号完整性,一块聊聊啊(10)

本文包含的主要内容有: 过孔设计概述:从前面的各种基础知识到过孔设计,逐步对信号完整性有了初步了解,在过孔设计这里稍微做一个概述,也是个人的一些理解,算是一个小结。 过孔设计的必要性。 过孔结构的基础知识 实例:过孔设计仿真HFSS实例 过孔设计概述 通过前面…