添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常

  这两天想在网页中添加一个添加浮动按钮,点击该按钮滚动则到网页底部。在网上bing搜索了一下,大多是JQuery的。

  我想要纯JavaScript的,只好DIY了。在IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常。

  其中难点在于,setScrollBottom这个函数。

  按常规写法:

	function setScrollBottom(value) {
		if (document.documentElement.scrollTop){
			 document.documentElement.scrollTop += value;
		} else {
			document.body.scrollTop += value;
		}
	}

  在网页第一次载入完成时点击浮动按钮,在IE9、11,Maxthon 1.6.7,Firefox30、31中会无效,在360极速浏览器则有效。

  在IE9、11,Maxthon 1.6.7,Firefox30、31中无效,是因为此时滚动条按钮在顶部,不论document.body.scrollTop还是document.documentElement.scrollTop值都是0,document.documentElement.scrollTop += value;不会被执行,而document.body.scrollTop += value这句虽然会被执行,但由于声明了文档类型,document.body.scrollTop恒为0。

  在360极速浏览器中有效,则是因为即使声明了文档类型,chrome内核仍然不认document.documentElement.scrollTop,只用document.body.scrollTop。

  如果改成:

	function setScrollBottom(value) {
		if (document.body.scrollTop){
			 document.body.scrollTop += value;
		} else {
			 document.documentElement.scrollTop+= value;
		}
	}

  效果就会反过来。

  要想两全齐美,当然我们可以通过添加识别浏览器类型的代码来进行区分并做相应处理,不过我们可以利用document.body.scrollTop值是否恒为0这一点来做简单的区分,如下面的演示代码所示。

  btw,在网上找到两个直接沉底的简单代码:

  其1:

<a href="#1" onclick="window.scrollTo(0,99999);return false;">跳到网页底部方法1</a>

  思路:document.all[document.all.length-1]获得最后一个元素。scrollIntoView()滚动到视线内。IE和FireFox都行。文档最末元素不在最底下时不适用。

  其2:

<a href="#1" onclick="window.scrollTo(0,99999);return false;">跳到网页底部方法2</a>

  思路:只要滚动到一个很远很远的地方就可以了。

  也一并放入演示代码里了。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn">
<HEAD>
<TITLE>添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码(goBottom)by PurpleEndurer</TITLE>
<style type="text/css">
#goBottomBtn	{float:right; POSITION: fixed; TEXT-ALIGN: center; LINE-HEIGHT: 20px; WIDTH: 30px; BOTTOM: 65px; FONT-SIZE: 12px; CURSOR: pointer; RIGHT: 0px; _position: absolute; _right: auto; border: 1px solid gray; background:green; color:white;}
</style>
</HEAD>
<BODY>
<p>添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码(goBottom) by PurpleEndurer <a href="http://blog.csdn.net/purpleendurer">http://blog.csdn.net/purpleendurer</a></p>
<p>IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常</p>
<p><a href="#1" onclick="window.scrollTo(0,99999);return false;">跳到网页底部方法1</a>  <a href="#1" onclick="window.scrollTo(0,99999);return false;">跳到网页底部方法2</a></p>

<script type="text/javascript">
<!--
//添加99行文字
function writeLine()
{
	for (var j=0; j < 100; j++)
	{
		document.writeln(‘<p>‘+ j +‘ 添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码<p>‘);
	}
}
writeLine();

function goBottomEx()
{
	function addGoBottomDiv()
	{
		var div = document.createElement(‘div‘);
		div.innerHTML = ‘<br /><span style="font-size:30px;" title="直达底部">↓</span>‘;
		div.setAttribute(‘id‘, ‘goBottomBtn‘);
		document.body.appendChild(div);
	}

	var o = document.getElementById(‘goBottomBtn‘);
	if (null==o)
	{
		addGoBottomDiv();
		showBottomBtn();
	}
	o = document.getElementById("goBottomBtn");

	function getScrollTop()
	{
		return document.documentElement.scrollTop || document.body.scrollTop;
	}

	function setScrollBottom(value) {
		document.body.scrollTop += value;

		if (0==document.body.scrollTop){
			 document.documentElement.scrollTop += value;
		}
	}

	function isBottom() {
		var a = document.documentElement.clientHeight || document.body.clientHeight;
		var b = document.documentElement.scrollTop || document.body.scrollTop;
		var c = document.documentElement.scrollHeight || document.body.scrollHeight;

		return (a+b >= c);
	}

	function showBottomBtn(){
		var o = document.getElementById(‘goBottomBtn‘);
		o.style.display = isBottom() ?  "none" : "";
	}

	window.onscroll = function() {
		showBottomBtn();
	}

	o.onmousemove = function() {
		this.style.background = "#33cc66";
	}

	o.onmouseout = function() {
		this.style.background = "green";
	}

	o.onclick = function() {
		var goBottom = setInterval(scrollMove, 10);
		function scrollMove() {
			setScrollBottom((getScrollTop() + 100) / 5); //网页刚载入完成时getScrollTop()返回值为0
			if (isBottom()) {clearInterval(goBottom);}
		}//scrollMove()
	}//o.onclick
}//goBottomEx()

goBottomEx()

//-->

</script>
</BODY>
</HTML>
时间: 2024-10-05 05:58:27

添加浮动按钮点击滚动到网页底部的纯JavaScript演示代码 IE9、11,Maxthon 1.6.7,Firefox30、31,360极速浏览器7.5.3.308下测试正常的相关文章

练习题:获取登录按钮及整个登录面板,给登录按钮添加事件,点击时让登录层示,点击登录面板的关闭按钮,关闭整个登录层

获取登录按钮及整个登录面板,给登录按钮添加事件,点击时让登录层示,点击登录面板的关闭按钮,关闭整个登录层 点击登录后: <!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> *{margin:0;padding:0;} .head{font-size:1

如何添加打印按钮或链接到你的网页

通过在优锐课的java学习中,get很多学习干货. 打印按钮或链接是对网页的简单添加 CSS(层叠样式表)使你可以控制屏幕上的网页内容. 此控件也扩展到其他媒体,例如在打印网页时. 你可能想知道为什么要在网页上添加打印功能; 毕竟,大多数人已经知道或可以轻松地知道如何使用浏览器的菜单打印网页. 但是在某些情况下,在页面上添加打印按钮或链接不仅会使你的用户在需要打印页面时更加轻松,而且可能甚至更重要的是使你可以更好地控制这些打印结果在页面上的显示方式 纸. 这是在页面上添加打印按钮或打印链接的方法

iOS 获取UIWebView上面的按钮点击事件

UIWebView的一些用法总结的网址 http://blog.csdn.net/zhaoweixing1989/article/details/13021513 在网上看到很多文章都说iOS的UIWebView比较耗内存,在我的项目中,最开始我也是用UIWebView来加载网页的.刚开始加载的是自己拼接成的Html,后来在Html中加入一个按钮,点击之后用当前的UIWebView去加载网络上的网页.程序跑起来发现非常耗内存,加载几个网上的网页之后就爆内存警告了,不处理的话很容易被评估拒掉app

Android 浮动按钮的伸缩效果

在做项目时想增加点动感,于是就有如下效果: 实现起来也很简单,通过属性动画和recyclerview 滑动结合就很好实现了. 通过给recycleview添加一个滑动监听:通过滚动的差值来处理动画 mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newSt

Flutter中的浮动按钮 FloatingActionButton

FloatingActionButton 简称 FAB ,可以实现浮动按钮,也可以实现类似闲鱼 app 的底部凸起导航 . 常用属性 FloatingActionButton的常用属性,同flutter中其他按钮的常用属性大部分相同,但是也有特殊的: child :子视图,一般为 Icon,不推荐使用文字 tooltip FAB: 被长按时显示,也是无障碍功能 backgroundColor: 背景颜色 elevation :未点击的时候的阴影 hignlightElevation :点击时阴影

免费统计微信复制//打开/咨询/下载/表单按钮点击统计工具-好多粉

今天要跟大家讲解的是好多粉新上线的自定义行为转化统计,相对于传统的复制统计功能,只能统计微信号是否被复制,而无法统计页面上其他的内容,比如无法统计用户是否点击了打开微信按钮?是否点击了咨询按钮?是否提交了表单信息?等等! 好多粉最新推出的自定义行为转化统计功能,可以统计页面上的所有按钮点击情况,不受位置限制,方便统计访客的所有点击行为,并且支持统计的网页标签类型不受限制,可以是按钮,文字,图片,表单提交等.系统已提供数十种统计类型,便于分析访客的行为和推广效果,使用非常简单,系统提供了多种统计方

Android实现按钮点击效果(第一次点击变色,第二次恢复)

1.首先创建一个按钮 <Button android:id="@+id/click" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="点击变色" android:background="@drawable/btn_st" android:gravity="center&

代码添加一个按钮及监听方法

有时候无法从控件中拖拽一个按钮到storyboard,必须用编写代码方式添加按钮: 1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // Do any additional setup after loading the view, typically from a nib. 5 //计算出展示表情区域的宽和 展示区距顶部的高度+10个偏移量 6 //添加按钮 9 //创建button 10 addBtn = [[UIButton alloc

ListView item中按钮点击实现删除

ListView item中按钮点击实现删除 在处理ListView 中item的按钮点击事件首先需要在item的根布局中添加 android:descendantFocusability="blocksDescendants"属性,否则item的点击事件会把其中image button的点击事件屏蔽掉 item的布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"