anchor相关知识
-
ExtJs的Anchor布局学习Anchor布局的效果直接看代码和效果图最为直观。!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Window&
-
论文阅读:S 3FD: Single Shot Scale-invariant Face DetectorICCV2017的paper 作者是自动化所的直博生,一直都在做这一块,这两年各种paper,可以follow一下。感叹一下,人与人之间的差距,有时候比人与狗之间还要大。嘤嘤嘤这篇文章是对ssd在人脸检测上的改进,写的蛮好的,通俗易懂,逻辑很清晰。是一篇实验性很强的paper吧。现有问题:基于anchor的检测在目标变小的时候效果下降的很厉害。原因作者觉得有如下三点(图片截取于http://www.cbsr.ia.ac.cn/users/sfzhang/Shifeng%20Zhang's%20Homepage_files/iccv2017_poster.pdf)对应这三个问题,作者提出如下解决方案:1.scale-equtable framework检测层中的stride意味着anchor之前的间隔,这里的stride设置为anchor大小的四分之一,这是为了保证不同尺度的anchor有相同的强度,这样不同尺度的人脸可以match到数量相同的anchor.这里还讨论了theoritically re
-
【译】前端开发者都应知道的 jQuery 小技巧回到顶部按钮 通过使用 jQuery 中的 animate 和 scrollTop 方法,你无需插件便可创建一个简单地回到顶部动画: 1 // Back to top 2 $('a.top').click(function (e) { 3 e.preventDefault(); 4 $(document.body).animate({scrollTop: 0}, 800); 5 }); 1 <!-- Create an anchor tag --> 2 <
-
12个JQuery小贴士返回顶部 使用JQuery的 animate 和 scrollTop 方法可以创建简单地返回顶部的动画: // Back to top $('a.top').click(function (e) { e.preventDefault(); $(document.body).animate({scrollTop: 0}, 800); }); HTML中得有一个按钮: <!-- Create an anchor tag --> <a class="top" href="#">Ba
anchor相关课程
-
解锁网络编程之NIO的前世今生 网络编程->RPC的“基石”。众所周知,网络编程有三种方式:BIO、NIO、AIO。本课程通过对BIO/NIO两种编程模型对比的形式,引入NIO的优势。后对NIO核心类进行梳理、分析。最后通过动手实践,完成一个基于NIO的多人聊天室功能。通过动手实践,来加深对NIO原理的理解,并发现NIO的不足之处,培养辩证的看待和使用NIO解决问题的能力。关联课程:https://coding.imooc.com/class/381.html。讲师新课上线啦,口号是:打破996魔咒,向资本家宣战【告别996,高效工作,优雅编程】:https://coding.imooc.com/class/evaluation/382.html#Anchor
讲师:张小喜 入门 26816人正在学习
-
MongoDB 4.0新特性 本课程介绍了MongoDB 4.0推出的几大核心新特性,理论结合实例。 与课程关联实战课正式与慕粉们见面,希望得到大家的关注和喜爱。 1、玩转MongoDB4.0: https://coding.imooc.com/class/324.html. 2、JavaIO三剑客之BIO/NIO/AIO: https://coding.imooc.com/class/chapter/381.html#Anchor 致慕课网各位忠实Fans的一封信: 经过几个月的精心策划和筹备,我们家“傻儿子+丑闺女”-《玩转MongoDB4.0》、《JavaIO三剑客之BIO/NIO/AIO》终于在准时与各位慕粉见面。所谓“父母之爱子则为之计深远”,为“孩子”远大前程,特地为其【聚人气】,希望慕粉们喜爱他,认他为干儿子干闺女干兄弟姐妹,有你们的一起支持,他一定会更优秀。
讲师:Stannum 中级 10487人正在学习
anchor相关教程
- 2. PopupWindow 的常用 API setContentView(View contentView):设置 PopupWindow 上显示的 ViewgetContentView():获得 PopupWindow 上显示的 ViewshowAsDropDown(View anchor):在控件 anchor 的正左下方展示showAsDropDown(View anchor, int xoff, int yoff):在控件 anchor 的正左下方位置,横向偏移 xoff、纵向偏移 yoff 展示**showAtLocation(View parent, int gravity, int x, int y): **设置在父控件重心位置,横向偏移 x,纵向偏移 y 处展示。这里的 gravity 和 Layout 里面的 gravity 类似,可以设置成Gravity.TOP或者Gravity.RIGHT等setWidth:设置弹窗的宽度,和 View 设置宽度一样,支持直接写具体数值,也可以用WRAP_CONTENT或者MATCH_PARENTsetHeight::设置弹窗的高度,使用方法和setWidth一样,这两个参数也可以通过 PopupWindow 的构造器设置setAnimationStyle(int):设置弹窗的动画特效setOutsideTouchable(boolean touchable):设置 PopupWindow 之外的区域是否可点击,通常点击弹窗外的区域会让弹窗消失setBackgroundDrawable(Drawable background):设置弹窗的背景资源,可以传入一个 Drawable 资源注意: 这几个方法都比较好理解,其中需要注意的是最后两个:setOutsideTouchable、setBackgroundDrawable。从字面上理解,setOutsideTouchable就是控制是否在点击弹窗区域以外时关闭弹窗,但实际上它的生效需要配合setBackgroundDrawable使用,简而言之就是需要同时使用这两个方法才能实现点击外围区域关闭弹窗,代码如下: // 设置点击弹窗以外区域关闭弹窗 popWindow.setBackgroundDrawable(new BitmapDrawable()); popWindow.setOutsideTouchable(true)两句代码缺一不可,具体原因可以参考 PopupWindow 源代码中preparePopup()方法的实现。
- 3.3 项目代码结构 action 包主要定义插件中的两个 action,我们都知道在插件开发中 Action 是功能执行的入口,ImageSlimmingAction 是前面说到第一个功能点批量压缩指定输入和输出目录的,RightSelectedAction 是前面说过的第二个功能点在项目选中图中文件直接右键压缩的,最后这两个 Action 都需要在 plugin.xml 中注册。 <actions> <action class="com.imooc.plugins.image.slimming.action.ImageSlimmingAction" text="ImageSlimming" id="com.imooc.plugins.image.slimming.action.ImageSlimmingAction" description="compress picture plugin" icon="/img/icon_image_slimming.png"> <add-to-group group-id="MainToolBar" anchor="after" relative-to-action="Android.MainToolBarSdkGroup"/> </action> <action id="com.imooc.plugins.image.action.rightselectedaction" class="com.imooc.plugins.image.slimming.action.RightSelectedAction" text="Quick Slim Images" description="Quick Slim Images"> <add-to-group group-id="ProjectViewPopupMenu" anchor="after" relative-to-action="ReplaceInPath"/> </action> </actions>extension 包主要是定义了 Kotlin 中的扩展函数,一个是 Boolean 的扩展可以类似链式调用来替代 if-else 判断,另一个则是 Dialog 使用的扩展://Boolean 扩展sealed class BooleanExt<out T>object Otherwise : BooleanExt<Nothing>()//Nothing是所有类的子类,协变的类继承关系和泛型参数类型继承关系一致class TransferData<T>(val data: T) : BooleanExt<T>()inline fun <T> Boolean.yes(block: () -> T): BooleanExt<T> = when { this -> TransferData(block.invoke()) else -> Otherwise}inline fun <T> Boolean.no(block: () -> T): BooleanExt<T> = when { this -> Otherwise else -> TransferData(block.invoke())}inline fun <T> BooleanExt<T>.otherwise(block: () -> T): T = when (this) { is Otherwise -> block() is TransferData -> this.data}//Dialog扩展fun Dialog.showDialog(width: Int = 550, height: Int = 400, isInCenter: Boolean = true, isResizable: Boolean = false) { pack() this.isResizable = isResizable setSize(width, height) if (isInCenter) { setLocation(Toolkit.getDefaultToolkit().screenSize.width / 2 - width / 2, Toolkit.getDefaultToolkit().screenSize.height / 2 - height / 2) } isVisible = true}fun Project.showWarnDialog(icon: Icon = UIUtil.getWarningIcon(), title: String, msg: String, positiveText: String = "确定", negativeText: String = "取消", positiveAction: (() -> Unit)? = null, negativeAction: (() -> Unit)? = null) { Messages.showDialog(this, msg, title, arrayOf(positiveText, negativeText), 0, icon, object : DialogWrapper.DoNotAskOption.Adapter() { override fun rememberChoice(p0: Boolean, p1: Int) { if (p1 == 0) { positiveAction?.invoke() } else if (p1 == 1) { negativeAction?.invoke() } } })}helper 包主要是用文件 IO 操作,由于两个 Action 都存在图片压缩操作,为了复用就直接把图片压缩 API 调用的实现操作抽出封装在 ImageSlimmingHelper 中,ui 包主要就是 Swing 框架中一些界面 GUI 的实现和交互。
- 3. 导出图片 工具栏组件的“图片导出”按钮可将图表导出为静态图片,支持 jpeg、png、svg 三种格式,可通过 toolbox.feature.saveAsImage 项进行配置,其中比较重要的配置项有:type:用于设定导出图片的格式,当 renderer = canvas 时,支持 jpeg、png,默认为 png;当 renderer = svg 时仅支持 svg 格式;name:导出的文件名,默认为配置项中的 title.text 值;excludeComponents:导出时需要忽略的组件列表,默认值为 [‘toolbox’];pixelRatio:导出图片的分辨率。例如对于下述配置:1332导出效果:Tips:pixelRatio 定义导出图片的缩放比例,例如上例中图表容器的宽高为 style="width: 600px; height: 400px;",若 pixelRatio = 1 则导出图片分辨率为 600x400;若pixelRatio = 2 则为 1200x800;若 pixelRatio = 0.5 则为 300x200。下限为 0,当数值超过 35 时,导出图片可能为空。除工具栏按钮外,开发者还可以通过 echartsInstance.getDataURL 接口将图表内容导出为 base64 串,该接口接受如下参数:(opts: { // 导出的格式,可选 png, jpeg, svg type?: string, // 导出的图片分辨率比例,默认为 1。 pixelRatio?: number, // 导出的图片背景色,默认使用 option 里的 backgroundColor backgroundColor?: string, // 忽略组件的列表 excludeComponents?: Array<string>,}) => string;结合 getDataURL 接口,下述代码片段同样可实现导出为本地图片文件功能:function saveAsImg(chart) { const img = chart.getDataURL({ backgroundColor: '#fff', excludeComponents: ['legend'], pixelRatio: 1, }); const anchor = document.createElement('a'); anchor.href = img; anchor.setAttribute('download', 'test.jpeg'); anchor.click();}导出效果:导出功能对 bmap 插件失效,无法导出百度地图层。
- 2.2 开始编写第一个插件 构建插件项目的方式主要分为两种:一种是直接创建 IDEA 内置的插件项目。另一种则是先通过构建一个 gradle 项目,然后加入 plugin.xml 配置以及 加入 IDEA ERP 的依赖,然后来构建一个插件项目 (整个开发过程就和开发一个 Android 项目一样),当然这个构建过程可参考官方给出的 gradle-intellij-plugin 项目来实现。(这里我们以第一种为例) 打开已经安装好的 IntelliJ IDEA,然后 create New Project. 选择一个 IntelliJ Platform Plugin 项目。注意需要引入 IntelliJ IDEA 的 SDK选择好 SDK 后,然后只需要一步一步把项目创建完毕即可,创建好的项目结构如下:正如你所看到,生成了一个 plugin.xml,这个文件是插件项目的配置文件,它记录了插件相关的版本扩展等基本信息,还记录了插件事件与具体实现类绑定过程,下面就一一介绍每个标签的含义。<idea-plugin> <id>com.your.company.unique.plugin.id</id> <name>Plugin display name here</name> <version>1.0</version> <vendor email="support@yourcompany.com" url="http://www.yourcompany.com">YourCompany</vendor> <description><![CDATA[ Enter short description for your plugin here.<br> <em>most HTML tags may be used</em> ]]></description> <change-notes><![CDATA[ Add change notes here.<br> <em>most HTML tags may be used</em> ]]> </change-notes> <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description --> <idea-version since-build="173.0"/> <!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html on how to target different products --> <!-- uncomment to enable plugin in all products <depends>com.intellij.modules.lang</depends> --> <extensions defaultExtensionNs="com.intellij"> <!-- Add your extensions here --> </extensions> <actions> <!-- Add your actions here --> </actions></idea-plugin>标签含义解释说明 plugin 插件项目的标识和 Android 项目中的 package 功能类似,唯一标识一个插件项目插件名字发布到 jetBrains plugin 仓库中会用这个插件版本号这个用于标识插件版本,一般用于更新 jetbrains plugins 仓库中插件版本标识开发者信息,邮箱和个人主页,公司名字或个人开发者姓名用于插件仓库中插件信息介绍显示 <description> 插件的描述信息主要是描述插件有什么功能,支持标签内部内嵌 HTML 标签 <changNote> 插件版本变更信息一般用于插件版本变更的信息,支持标签内部内嵌 HTML 标签 <idea-version> 插件支持的 idea 版本这个版本标签需要注意下,它决定了该插件能够运行在最低版本的 IDEA 中,一旦配置不当,会导致插件安装不成功,有点类似 Android 中 AndroidManifest.xml 中配置最低兼容 Android 版本意思 <depends> 当前的插件项目依赖哪些内置或者外部的插件库依赖例如你需要实现类似 git 功能插件,你就可以通过 depends 标签引入 Git4Idea 即可,Git4Idea, 如果看过 IDEA 源码的话,实际上内置 GitHub 插件就是通过 depends 依赖内部 Git4Idea 插件实现的,还有现在的码云 git 工具插件也是通过依赖 Git4Idea 内置插件来实现的 <extension> 插件与其他插件或与 IDE 本身交互 (默认是 IDEA) 如果您希望插件扩展其他插件或 IntelliJ Platform 的功能,则必须声明一个或多个扩展名 <action> 决定了你的插件在 IDE 上显示的位置和顺序这个标签非常重要,它决定了你的插件在 IDE 上显示的位置和顺序,以及这个插件的点击事件和插件项目 Action 实现类的绑定。创建一个 Action 类,在 IDEA 插件项目中,IDEA 点击 Item 或者按钮或者一个图标对应是触发了插件中一个 Action,创建 Action 主要有两种方式:第 1 种:通过 IDEA 提供的一个入口,直接去创建 Action,然后它自动帮你实现 plugin.xml 中的事件绑定的注册:第 2 种: 手动创建一个 Action 类,然后继承 AnAction 类或者 DumbAwareAction 类,然后在 plugin.xml 中的 action 标签去注册 action 类与事件绑定://创建Action类package com.imooc.plugins.demoimport com.intellij.openapi.actionSystem.AnActionimport com.intellij.openapi.actionSystem.AnActionEventimport com.intellij.openapi.ui.Messages//注意import,是com.intellij.openapi包下class DemoAction: AnAction() { override fun actionPerformed(p0: AnActionEvent?) { Messages.showInfoMessage("Just a Test ", "来自DemoAction提示") }}在 plugin.xml 中注册 action 类的绑定: <actions> <!-- Add your actions here --> <action id="com.imooc.plugins.demo.DemoAction" class="com.imooc.plugins.demo.DemoAction" text="DemoAction" description="just a test demo"> <add-to-group group-id="ToolbarRunGroup" anchor="last"/><!--加入到ToolbarRunGroup内置组--> </action> </actions>在 plugin.xml 中配置插件图标,先在插件项目中 resource 目录下创建一个 image 目录或者直接把图标拷贝目录下即可 然后 action 标签中指定 icon 属性: <actions> <!-- Add your actions here --> <action id="com.imooc.plugins.demo.DemoAction" class="com.imooc.plugins.demo.DemoAction" text="DemoAction" description="just a test demo" icon="/image/icon_pic_demo.png"><!--指定图标--> <add-to-group group-id="ToolbarRunGroup" anchor="last"/><!--加入到ToolbarRunGroup内置组--> </action> </actions>在 plugin.xml 中配置自定义组,并把自定义的组加入内置的组中: <group id="com.imooc.plugins.group.demo" text="Demo" description="just a demo group"><!--group标签实现自定义组,id:组的唯一标识,text:组显示名称,description:组的描述名--> <add-to-group group-id="MainMenu" anchor="last"/><!--把组加入到内置的组中--> <action id="com.imooc.plugins.demo.DemoAction" class="com.imooc.plugins.demo.DemoAction" text="DemoAction" description="just a test demo" icon="/image/icon_pic_demo.png"><!--指定图标--> <add-to-group group-id="ToolbarRunGroup" anchor="last"/><!--加入到ToolbarRunGroup内置组--> </action> </group>配置 OK 后,现在就可以运行插件了,运行成功后会新启动一个 Intellij IDEA,这个 IDE 就是安装了开发的插件,然后就可以在里面去调试你的插件功能:点击运行,进行测试,此外还支持断点调试:最后一步,打包插件,并发布。选择顶部工具栏 Build, 点击 "Prepare Plugin Module ‘Demo’ For Deployment", 就会在当前工作目录下生成一个 jar 或 zip 的包。然后发布插件,只需要在 jetBrains Plugins Repository 上传你的包,等待 jetBrains 官方的审核通过了,就能通过 ide 中的 plugins 仓库中搜索找到。
- 1.2 HTML层面引入超链接 接下来我们讲解一下 HTML 中超链接的引入方式,在 W3C 定义的 Web 标准中,超链接是以 anchor 锚标签也就是<a href="...."></a>引入到 HTML 网页中的。首先,我们打开 Dreamweaver 主界面,在菜单栏中选择文件,新建 HTML 页面。在新建的 HTML 中,点击屏幕上方的代码,切换到代码模式下,我们可以看到目前空白 HTML 模版中所有的 HTML 的代码。如下图所示。从上面的图片我们可以看到,左侧红框框出的部分就是网页的“正文”部分,也叫网页的内容部分。从HTML 这中标记语言的语法角度讲,就是一对 body 标签<body> </body>之间。接下来,我们在 body 标签内输入一个 <,可以看到,Dreamweaver CC 2018 会弹出一个提示框,如下图所示:在这个弹出框中,我们可以看到下面有一个 HTMLAnchorElement,这是 Dreamweaver CC 2018 的智能化编辑器在猜想我们可能是要输入一个 HTML 锚元素(HTMLAnchorElement),我们敲下回车,一个完成的元素标签 a 标签就被输入在 body 标签中了,可以说是非常的智能了。时至今日,程序开发界备受喜爱的几款主流代码编辑器,均已经良好支持代码提示,语法深色等智能化功能,旨在提升程序员的开发效率。也让代码维护起来更加容易。同学们要考虑到一种情况,你设计的网页今后可能是由他人来维护的,毕竟从严格逻辑意义上讲,我们设计代码并不是一个人与代码绑定的过程,网页源文件作为知识经济的产物,它可能在不同人之间来回传递。因此,选择一款好的代码编辑器也是同学们今后要面临的诸多选择的一种。不过现阶段,由于 Dreamweaver CC 2018 已经足够完美,大家只需要用这一款软件就可以享受到最前沿的软件开发体验。
- ASK转向 一站式Redis解决方案
anchor相关搜索
-
ajax
android
a href
abap
abap开发
abort
absolutelayout
abstractmethoderror
abstracttablemodel
accept
access
access教程
accordion
accumulate
acess
action
actionform
actionlistener
activity
addeventlistener