【斗医】【15】Web应用开发50天 之 易用性问题

在介绍HTML富文本使用之前,先解决几个易用性的问题

1、在chrome浏览器中textarea高度自适应存在问题:当输入任何一个字符时textarea高度都会增加

解决办法:

(1)在challenge.js中定义autoAdaptHeight()方法,内容如下:

/**

* textarea高度自适应

*/

function autoAdaptHeight(component){

var paddingTop = parseInt($(component).css("padding-top"));

var paddingBtm = parseInt($(component).css("padding-bottom"));

var scrollHeight = component.scrollHeight;

var height = $(component).height();

// 判断是否为chrome浏览器

if(window.navigator.userAgent.indexOf("Chrome") > 0){

if(scrollHeight - paddingTop - paddingBtm > height){

$(component).css("height", scrollHeight);

}

return;

}

$(component).css("height", scrollHeight);

}

(2)修改initInputComponent()方法,使其调用autoAdaptHeight()方法

// 设置textArea高度自适应

dynamicItem.bind("keyup", function(event){

autoAdaptHeight(this);

});



【备注】:

1、在网上搜索相关解决方案时,很多都存在此问题,对兼容性做的稍差一些。网上也有一些组件,感兴趣的可以看一下源码

2、效果不好演示,这里就不给出效果图了



2、当战书标题长度超长时没有给出相应的提示

解决办法:

(1)在challenge.js中定义setLengthHit()方法,内容如下:

/**

* textarea长度超出时提示

*/

function setLengthHint(component){

if(component.id == "challenge_title_id"){

if(!component.value){

return;

}

var titleId = $("#challenge_title_hint_id");

if(component.value && component.value.length > 96){

titleId.parent().show();

} else {

titleId.parent().hide();

}

titleId.text(component.value.length - 96);

}

}

(2)修改initInputComponent()方法,使其调用setLengthHint()方法

dynamicItem.bind("keyup", function(event){

// 设置textArea高度自适应

autoAdaptHeight(this);

// 长度超长时给出提示信息

setLengthHint(this);

});

效果如下图所示:

3、进入下战书页面,标题textarea没有自动获取鼠标

解决办法:

修改initInputComponent()方法,添加如下内容:

/**

* 初始化文本框

*/

function initInputComponent(){

var textareaArray = new Array("challenge_title_id", "challenge_prescript_id", "challenge_challenger_id");

// 进入页面"标题textarea"获取焦点

$("#" + textareaArray[0]).focus();

$.each(textareaArray, function(i, item){

var dynamicItem = $("#" + item);

// 绑定PlaceHolder

bindPlaceHolder(dynamicItem);

dynamicItem.bind("keyup", function(event){

// 设置textArea高度自适应

autoAdaptHeight(this);

// 长度超长时给出提示信息

setLengthHint(this);

});

});

}

效果如下图所示:



【题外话】:

一个系统的好坏,真的不在于它使用了哪些牛的技术,对于用户来讲就是易用性,拿iphone来讲它的app并不是全都好用,只是把其中的某个点做到了极致;facebook的成功亦是如此,它开始时就把其中的几个点做的很体贴。



本文出自 “青客” 博客,请务必保留此出处http://qingkechina.blog.51cto.com/5552198/1423592

【斗医】【15】Web应用开发50天 之 易用性问题,布布扣,bubuko.com

时间: 2024-10-13 09:18:02

【斗医】【15】Web应用开发50天 之 易用性问题的相关文章

【斗医】【16】Web应用开发50天

在本文完成下挑战书的功能,其中里面也涉及到富文本编辑器的使用 1.生成challenge数据表 在D:\medical\war\etc\db.txt文本中增加数据表challenge脚本,然后通过navicat工具把数据表在mysql中生成 /*创建挑战书记录表*/CREATE TABLE CHALLENGE(challengeId int PRIMARY KEY NOT NULL, userId VARCHAR(20), title VARCHAR(128), depId int, presc

【斗医】【17】Web应用开发20天

细心的读者可能已发现"Web应用开发50天"改为了"Web应用开发20天",之所以这样调整是因为当时想前20篇只讲解Web基础知识,中间10篇讲解我一直想要封装的Web框架,后20篇将该应用转换为Android应用.但由于最近女儿出生,业余时间都被她占用了,为了尽快把Web基础讲述完就把这部分独立出来了. 本文主要讲解数据表的Hibernate配置,Come on... 1.由于系统首页内容会涉及到几张数据表,这里列出涉及的几张表 2.写出数据表创建脚本,并在MyS

【斗医】【19】Web应用开发20天

本文把挑战书的具体内容显示在独立页面上,这里涉及如下四个步骤: 1.增加触发入口 2.增加业务配置 3.服务端获取数据后封装为Json对象返回 4.通过对DOM元素操作绘制页面 在讲解这四个步骤之前先修改一个Bug: [问题描述]: (1)用户首次点击"下战书"菜单,进入登录界面提示用户需要登录 (2)用户登录成功之后就进入下战书页面 (3)此时再次点击"下战书"菜单,界面又进入到登录页面 期望:下次再点击"下战书"菜单,此时的会话已存在,所以不

Web前端开发高手进阶

js框架+Ajax技术01.初识javascript及其语言基础(一)02.初识javascript及其语言基础(二)03.初识javascript及其语言基础(三)及js原始数据类型(一)04.javascript原始数据类型(二)05.javascript原始数据类型(三)06.javascript原始数据类型(四)07.javascript原始数据类型(五)及数组(一)08.javascript 数组(二)09.javascript 数组(三)10.函数.Math.Date.RegExp(

麦子学院-Web前端开发工程师系列培训教程

HTML+CSS基础入门1.课程介绍2.html的语法3.html的基本结构4.html的文档设置标记上(格式标记)5.html的文档设置标记下(文本标记)6.html图像标记img7.html超链接的使用8.html表格相关的标记9.html表格实战<简单的网页布局>10.html框架详解与框架布局实战11.HTML表单设计(上)12.HTML表单设计(下)13.使用CSS样式的方式14.定义CSS样式(CSS选择器)15.CSS常用属性(颜色属性)16.css常用属性(字体相关属性)17.

Web前端开发人员和设计师必读文章推荐【系列十】

<Web前端开发人员和设计师必读文章推荐系列十>给大家带来最近两个月发布在<梦想天空>的优秀文章,特别推荐给 Web 开发人员和设计师阅读.梦天空博客关注 前端开发 技术,展示最新 HTML5 和 CSS3 技术应用,分享实用的 jQuery 插件,推荐优秀的 网页设计 案例,共享精美的设计素材和优秀的 Web 开发工具.希望这些文章能帮助到您. HTML5 & CSS3 应用 2012五大主流浏览器 HTML5 和 CSS3 兼容性大比拼 不可思议!23个纯 CSS3 打

移动web app开发必备 - 异步队列 Deferred

背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeout/setInterval CSS3 Transition/Animation HTML5 Web Database postMessage Web Workers Web Sockets and more… 后面几个是CSS3 HML5加入的新API.这些接口都是会产生异步的操作 比如本人的一个

web前端开发中的浏览器兼容性总结

1.居中问题 div里的内容,IE默认为居中,而FF默认为左对齐,可以尝试增加代码margin: 0 auto; 2.高度问题 两上下排列或嵌套的div,上面的div设置高度(height),如果div里的实际内容大于所设高度,在FF中会出现两个div重叠的现象:但在IE中,下面的div会自动给上面的div让出空间所以为避免出现层的重叠,高度一定要控制恰当,或者干脆不写高度,让他自动调节,比较好的方法是 height:100%;但当这个div里面一级的元素都float了的时候,则需要在div块的

web移动开发最佳实践之 css篇

web移动开发最佳实践之 css篇 一.css概述 css即层叠样式表(Cascading Style Sheets),它的作用主要是控制页面元素的样式,包括布局.颜色.字体.字号.空白.边框.属性等等.css的出现使得html的内容和样式分离,极大的提高了工作效率. 目前最新的标准是css3,下面几节将介绍在使用css过程中应遵循的最佳实践方案. 二.使用高效的css选择器 欲创建一个高效的web应用,你要了解浏览器是如何读取你的web页面并呈现出来的.当浏览器读取你的html文档时,它首先对