回到顶部相关知识
-
h5回到顶部回到顶部1.锚点<aname="top"></a><ahref="#top"></a>2.回到顶部document.documentElement.scrollTop=0;document.body.scrollTop=0;
-
回到顶部按钮滚动条滚动到下一屏出现回到顶部按钮,点击回到顶部按钮滚动条回到顶部。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>Javascript 回到顶部效果</title> <style> #btn { width:40px; height:40px; position:fixed; left:50%; display:none; margin-left:
-
javascript实现回到顶部效果```本文根据慕课网视频制作: 如果要做一些内容比较多的网站,前端的显示内容会很多,如果不加以设计,会使得用户使用很麻烦,像上次的PHP分页,是为了将部分内容展示到前端,而当一页内容过多时我们就需要实现一个javascript回到顶部的样式设计。 设计知识点也比较基础: JS中的DOM操作: document.getElementById//获
-
jQuery实现回到顶部功能在网页中,我们经常会由于网页内容过长,而需要在浏览网页时有一个快速回到网页顶部的功能,在浏览网页内容离顶部有一段距离时,出现快速回到网页顶部的工具,从而能使我们的网页更人性化。以下分为几个步骤来实现:步骤1:引入jquery库<script type="text/javascript" src="js/jquery-1.8.0.js"></script>步骤2:在网页中引入回到顶部的网页元素,并且设置元素的样式<div id="gotop"></div>设置元素样式,默认开始隐藏<style type="text/css">#gotop{display:none;width:55px;height:55px;position:fixed;right:50px;bottom:50px;url(images /backtop2013.png) no-repeat -70px
回到顶部相关课程
回到顶部相关教程
- 3.1 顶部模块 在上述区域图中,我们会看到明显的标有 1 2 3 序号的模块区域,这些就是 RabbitMQ 消息管控台的主要功能模块。在本部分中,我们先来看除了这些主要功能模块之外的地方,也就是 RabbitMQ 消息管控台的顶部模块,如下图所示:在顶部模块的第一部分,也就是标序号 1 框起来的区域,这是 RabbitMQ 当前状态信息,包括 RabbitMQ 的 logo ,以及 RabbitMQ 的版本、Erlang 语言支持库的版本,由上图可以:当前使用的 RabbitMQ 的版本为 3.8.5 ,当前使用的 Erlang 语言支持库的版本为 23.2.1 。在顶部模块的第二部分,也就是标序号 2 框起来的区域,这是当前 RabbitMQ 消息管控台的底部配置区域,其中,Refreshed 表示当前 RabbitMQ 消息管控台监控的频率,默认的监控频率为每 5 秒刷新一次消息管控台,当然,我们可以根据实际情况来设置不同的刷新频率,如下图所示:接着,Virtual host 表示当前被监控的虚拟主机,默认监控全部的虚拟主机,当然,我们也可以选择需要进行监控的虚拟主机,如下图所示:最后的 Cluster 则表示当前 RabbitMQ Server 所在的节点名称,User 则表示当前登录进 RabbitMQ 消息管控台的用户,当前我是使用的自定义的 steafan 账号来登录的。在用户名的右侧,是 Log Out 按钮,即登出按钮,当我们点击此按钮之后,我们就会推出 RabbitMQ 消息管控台,来到其登录界面。
- 2.1 第一部分 顶部区域 在顶部栏区域的最左侧是 Swagger 的 Logo 图标,我们不需要关心。在顶部栏区域的最右侧是一个 Explore 按钮,该按钮的作用就是刷新 Swagger-UI 界面,在我们点击时就会刷新,没有其他用途。在 Explore 按钮的左侧,是 Swagger-UI 加载 html 界面模板的区域,这是一个下拉框,可以选择我们自定义的界面显示。
- 1. 从外部迭代到内部迭代 对于一个集合迭代是我们常用的一种操作,通过迭代我们可以处理返回每一个操作。常用的就是 for 循环了。我们来看个例子:1273输出: 2这里我们统计数组 numbers 中大于 5 的元素的个数,我们通过 for 循环对 numbers 数组进行迭代,随后对每一个元素进行比较。这个调用过程如下:在这个过程中,编译器首先会调用 List 的 iterator() 方法产生一个 Iterator 对象来控制迭代过程,这个过程我们称之为 外部迭代。 在这个过程中会显示调用 Iterator 对象的 hasNext() 和 next() 方法来完成迭代。这样的外部迭代有什么问题呢?Tips: 对于循环中不同操作难以抽象。比如我们前面的例子,假设我们要对大于 5 小于 5 和等于 5 的元素分别进行统计,那么我们所有的逻辑都要写在里面,并且只有通过阅读里面的逻辑代码才能理解其意图,这样的代码可阅读性是不是和 Lambda 表达式的可阅读性有着天壤之别呢?Java 8 中提供了另一种通过 Stream 流来实现 内部迭代 的方法。我们先来看具体的例子:1274输出: 2在这个例子中,我们调用 stream() 方法获取到 Stream 对象,然后调用该对象的 filter() 方法对元素进行过滤,最后通过 count() 方法来计算过滤后的 Stream 对象中包含多少个元素对象。与外部迭代不同,内部迭代并不是返回控制对象 Iterator, 而是返回内部迭代中的相应接口 Stream。进而把对集合的复杂逻辑操作变成了明确的构建操作。在这个例子中,通过内部迭代,我们把整个过程被拆分成两步:找到大于 5 的元素;统计这些元素的个数。这样一来我们代码的可读性是不是大大提升了呢?
- 2. 顶级作用域 顶级作用域(Top Level Scope)意味着您未调用任何方法,或者所有的方法都已经返回。简单来讲,当我们刚打开irb或在一个没有任何类或方法的Ruby脚本之中,我们所处的就是顶级作用域。在Ruby中一切皆为对象,即使您处于顶级作用域,也位于一个对象之中,它的名字叫做main,属于类Object。下面是irb的示例:$irb> puts selfmain=> nil> puts self.classObject=> nil或在一个空脚本中输入:p selfp self.class# ---- 输出结果 ----mainObject
- 3.3 顶层函数的原理 通过以上例子思考一下顶层函数在 JVM 中是怎么运行的?仅仅是在Kotlin中使用这些顶层函数,那么可以不用细究。但是 Java 和 Kotlin 混合开发模式,那么就有必要深入内部原理。都知道 Kotlin 和 Java 互操作性是很强的,所以就衍生出了一个问题:在 Kotlin 中定义的顶层函数,在Java可以调用吗?答案肯定是可以的。要想知道内部调用原理很简单,我们只需要把上面例子代码反编译成 Java 代码就一目了然了:package com.imooc.kotlin.top;import java.math.BigDecimal;import kotlin.Metadata;import kotlin.jvm.JvmName;import kotlin.jvm.internal.Intrinsics;import org.jetbrains.annotations.NotNull;@Metadata( mv = {1, 1, 9}, bv = {1, 0, 2}, k = 2, d1 = {"\u0000\u001c\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u0006\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010\u0011\n\u0002\b\u0002\u001a\u000e\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003\u001a\u0019\u0010\u0004\u001a\u00020\u00052\f\u0010\u0006\u001a\b\u0012\u0004\u0012\u00020\u00010\u0007¢\u0006\u0002\u0010\b¨\u0006\t"}, d2 = {"formateFileSize", "", "size", "", "main", "", "args", "", "([Ljava/lang/String;)V", "production sources for module Function"})@JvmName(//注意这里多了注解 name = "FileFormatUtil")public final class FileFormatUtil {//这里生成的类名就是注解中自定义生成的类名了 @NotNull public static final String formateFileSize(double size) { if(size < (double)0) { return "0 KB"; } else { double kBSize = size / (double)1024; if(kBSize < (double)1) { return "" + size + " B"; } else { double mBSize = kBSize / (double)1024; if(mBSize < (double)1) { return "" + (new BigDecimal(String.valueOf(kBSize))).setScale(1, 4).toPlainString() + " KB"; } else { double mGSize = mBSize / (double)1024; if(mGSize < (double)1) { return "" + (new BigDecimal(String.valueOf(mBSize))).setScale(1, 4).toPlainString() + " MB"; } else { double mTSize = mGSize / (double)1024; return mTSize < (double)1?"" + (new BigDecimal(String.valueOf(mGSize))).setScale(1, 4).toPlainString() + " GB":"" + (new BigDecimal(String.valueOf(mTSize))).setScale(1, 4).toPlainString() + " TB"; } } } } } public static final void main(@NotNull String[] args) { Intrinsics.checkParameterIsNotNull(args, "args"); String var1 = "文件大小: " + formateFileSize(15582.0D); System.out.println(var1); }}通过以上的代码可以总结出两点内容:1、顶层文件会反编译成一个容器类。(类名一般默认就是顶层文件名+"Kt"后缀,注意容器类名可以自定义)2、顶层函数会反编译成一个 static 静态函数,如代码中的 formateFileSize 和 main 函数。
- 1. 局部变量 局部变量以往我们使用eval来获取。实例:b = binding(1..3).each do |num| b.eval("a_#{num} = #{num}")end(1..3).each do |num| puts b.eval("a_#{num}")end# ---- 输出结果 ----123Tips:binding是获取所处在的作用域的方法。解释:因为each后面有一个 block,两个 block 里面的作用域不共享(详细在作用域章节中会学习到),这里我们用了binding,让eval可以共享顶级作用域。分别动态定义了 a_1~a_3 的方法,并动态输出出来。在 Ruby 2.1.0 之后,增加了local_variable_set、和local_variable_get方法。实例:b = binding(1..3).each do |num| b.local_variable_set("a_#{num}".to_sym, num)end(1..3).each do |num| puts b.local_variable_get("a_#{num}".to_sym)end# ---- 输出结果 ----123它们本质上是相同的。
回到顶部相关搜索
-
h1
h6
hack
hadoop
halt
hana
handler
hanging
hash
hashtable
haskell
hatch
hbase
hbuilder
hdfs
head
header
header php
headers
headerstyle