JavaScript组件焦点与页内锚点间传值的方法


Posted in Javascript onFebruary 02, 2015

本文实例讲述了JavaScript组件焦点与页内锚点间传值的方法。分享给大家供大家参考。具体分析如下:

上述的这两个小功能在一些新式的手机页面是很有用的。

如何光标放上输入框就触发事件,离开输入框就触发另一个事件呢?即使用户不输入任何东西……

页间传值很简单,但在页内的锚点之间是如何传值呢?

一、基本目标

有一个页面,上面有一个输入框,一个超级链接,这两个东西是没有任何关联的,

只是因为功能不大,所以把两个功能合起来写

1、输入框功能

一旦把光标放上对话框背景就变成红色,一旦用户的鼠标点击其他地方则重新变为灰色的背景

JavaScript组件焦点与页内锚点间传值的方法

2、超级链接功能

向页面下方的bottom锚点通过get方法传递值text=1的值,bottom锚点下面有个已被禁用的输入框,不停在轮询地址栏上面的text参数

开始如果不点击,则没有text参数,所以输入框一直显示为null

一旦点击超级链接,下面的对话框在0.5秒之后,变为1,由于是毫秒级处理,所以用户的感觉是实时处理的,

JavaScript组件焦点与页内锚点间传值的方法

这个被disabled的上方还有一个back超级链接,清空页面的参数传递,再次把滚动条拉下来则又是显示为null。

请注意页内锚点间成功传值时,浏览器的url:

JavaScript组件焦点与页内锚点间传值的方法

二、制作过程

不用引入任何插件,直接开个html页面来写就可以了,请看下面的代码:

<!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>onfoucs</title>  

</head>  

  

<body>  

<!--定义个输入框,onfocus是获得焦点,一旦把光标放上输入框则马上触发getFocus()参数。onblur则是失去焦点,也onfocus刚好反过来。-->  

<p>  

<input type="text" onfocus="getFocus()"  onblur="loseFocus()"/>  

</p>  

  

<!--注意页内锚点传递参数的超级链接的语法,写用?接参数,再用#接锚点,多个参数则写成?texta=1&textb=2#bottom,用&链接-->  

<p>  

<a href="onfocus.html?text=1#bottom">锚点</a>  

</p>  

  

<!--这么多的li只是用来占行的~为了让大家看到锚点效果-->  

<li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li>  

  

<!--此超级链接相当于后退按钮-->  

<p>  

<a id="bottom" href="javascript:history.go(-1);">back</a>  

</p>  

  

<!--我就是那个被禁用的对话框-->  

<p>  

<input type="text" id="pollingtext" disabled="disabled"/>  

</p>  

  

</body>  

</html>  

<script>  

    /*一开始先把页面的背景颜色换成#eeeeee*/  

    window.onload=function(){  

        document.bgColor="#eeeeee";  

        Polling();  

        }  

      

    /*当对话框获得焦点就把背景颜色改成红色,反之则重新改成#eeeeee*/     

    function getFocus(){  

        document.bgColor="#ff0000";  

    }  

      

    function loseFocus(){  

        document.bgColor="#eeeeee";  

    }  

      

    /*这是取url get传值时的参数的专用正则表达式*/  

    function getUrlParam(name) {  

        var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");   

        var r = window.location.search.substr(1).match(reg);    

        if (r!=null) return unescape(r[2]); return null;   

    }  

      

    /*不停地轮询,检查是否有get参数传递过来了*/  

    function synchronous() {  

        document.getElementById("pollingtext").value =getUrlParam("text");  

    }  

      

    function Polling(){  

        synchronous();  

        setInterval("synchronous()", 500);  

    }  

</script>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jquery中加载图片自适应大小主要实现代码
Aug 23 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
jquery 判断是否支持Placeholder属性的方法
Feb 07 Javascript
如何使用Bootstrap 按钮实例详解
Mar 29 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 Javascript
动态加载JavaScript文件的3种方式
May 05 Javascript
vue引用js文件的多种方式(推荐)
May 17 Javascript
JS实现求5的阶乘示例
Jan 21 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
Mar 04 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
JavaScript分秒倒计时器实现方法
Feb 02 #Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 #Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 #Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 #Javascript
JavaScript实现更改网页背景与字体颜色的方法
Feb 02 #Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 #Javascript
jQuery及JS实现循环中暂停的方法
Feb 02 #Javascript
You might like
PHP学习之PHP运算符
2006/10/09 PHP
在命令行下运行PHP脚本[带参数]的方法
2010/01/22 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
jquery图片放大功能简单实现
2013/08/01 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
javascript每日必学之循环
2016/02/19 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
vue.js中created方法作用
2018/03/30 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python 字符串格式化代码
2013/03/17 Python
Python中input和raw_input的一点区别
2014/10/21 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
在python中画正态分布图像的实例
2019/07/08 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
Python @property原理解析和用法实例
2020/02/11 Python
在python里创建一个任务(Task)实例
2020/04/25 Python
Python colormap库的安装和使用详情
2020/10/06 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
struct和class的区别
2015/11/20 面试题
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL
Redis+AOP+自定义注解实现限流
2022/06/28 Redis
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python