rails应用ajax之三:进一步完善ajax动画特效果

简介:

    本猫已经对界面放低标准很久了,但是复习了ajax之后突然发现:哇!原来世界可以这么美,这么生动鲜活的!所以本篇主要讨论下如何用ajax在rails中做一些简单的动画效果。

    其实最新版的的rails中使用的是coffeescript,它也是对js的高级封装,使其更贴近于ruby简洁灵动的语法。coffeescript暂时不校习鸟,以后补上吧!在rails旧版本中使用的js框架是prototype,其自带一个effects.js图像效果库。比如说我想在每次新插入user时将整ul元素背景短暂高亮,用prototype可以这样写:

new Effect.Highlight('users');
new Insertion.Bottom('users','<%= escape_javascript(render @user)%>');

高版本的rails自身已不带prototype鸟,需要安装prototype-rails gem然后将几个js文件拷贝到/public/javascripts目录下,然后在视图文件中包含js文件即可:

<%= javascript_include_tag 'prototype','effects' %>

    这里可以看到prototype的一些api的使用帮助:

http://thinhunan.cnblogs.com/archive/2006/04/01/DeveloperNotesForPrototype.html

    我们知道js的另一个不错的框架是jQuery,它和prototype一般是不可以混用的。所以下面讲一下如何用jquery做出类似上面prototype的效果。比如说我想让每个新插入的user(2行包括name和age)都在插入时有短暂的高亮效果,用jquery可以这样写:

$("<%= escape_javascript(render @user)%>").hide().css("background-color","yellow").appendTo("#users");
var color = $("#users li:first").css("background-color")
$("#users li:eq(-1),li:eq(-2)").fadeIn("slow",function(){
	//var color = $(this).css("background-color");
	var _this = this;
	//$(this).css("background-color","yellow");
	
	setTimeout(function(){
		$(_this).css("background-color",color);
	},500);
});

当然你不能包含prototype和effects了,你需要包含jquery:

<%= javascript_include_tag 'jquery' %>

    值得说明的是在jquery中延时执行有2种方法一种是向上面代码中用js的函数setTimeout,不过在此函数的上下文中this的值会变,所以必须事先保存你需要的值,这也是我var _this = this;代码的用意。还有一种延时方法是用jquery中的函数delay,不过该函数是异步调用的,而且在上述情况下不能达到偶的要求,所以用的是setTimeout的方法。jquery的api帮助可以看:http://www.w3school.com.cn/jquery/index.asp

    另外说一下,在调试html代码时用firefox的调试功能那时相当的酸爽哦,大家可以尝试下。

相关文章
|
7月前
|
前端开发 JavaScript Java
使用Ajax进行异步交互:提升Java Web应用的用户体验
【4月更文挑战第3天】Ajax技术在Web开发中提升UX,通过与服务器异步交互实现页面局部更新,无需完整刷新。核心组件包括XMLHttpRequest、JavaScript、HTML/CSS及服务器端脚本。在Java Web应用中,可使用原生JavaScript或框架如jQuery、AngularJS实现Ajax请求。Ajax减少页面刷新,实现实时数据更新,即时表单验证和动态UI,显著改善用户体验,是现代Web开发不可或缺的一部分。
97 0
|
4月前
|
前端开发 Java UED
瞬间变身高手!JSF 与 Ajax 强强联手,打造极致用户体验的富客户端应用,让你的应用焕然一新!
【8月更文挑战第31天】JavaServer Faces (JSF) 是 Java EE 标准的一部分,常用于构建企业级 Web 应用。传统 JSF 应用采用全页面刷新方式,可能影响用户体验。通过集成 Ajax 技术,可以显著提升应用的响应速度和交互性。本文详细介绍如何在 JSF 应用中使用 Ajax 构建富客户端应用,并通过具体示例展示 Ajax 在 JSF 中的应用。首先,确保安装 JDK 和支持 Java EE 的应用服务器(如 Apache Tomcat 或 WildFly)。
47 0
|
5月前
|
XML 前端开发 API
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
【7月更文挑战第13天】构建现代Web应用的关键在于提供无缝用户体验,这涉及AJAX和Fetch API的异步数据交换以及Python(如Flask)的后端支持。Fetch API以其基于Promise的简洁接口,改进了AJAX的复杂性。例如,一个Flask应用可提供用户数据,前端利用Fetch API在不刷新页面的情况下显示信息。这种结合提升了效率,减少了服务器负载,是现代Web开发的趋势。随着技术发展,预期将有更多工具优化这一过程。
74 3
|
6月前
|
前端开发 Python
Django框架中Ajax GET与POST请求的实战应用
Django框架中Ajax GET与POST请求的实战应用
|
6月前
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
|
7月前
|
JavaScript 前端开发
node.js第四天--ajax在项目中的应用
node.js第四天--ajax在项目中的应用
62 0
|
7月前
|
设计模式 开发框架 前端开发
ajax应用设计模式,Ajax设计模式下Web开发的研究与应用
ajax应用设计模式,Ajax设计模式下Web开发的研究与应用
N..
|
7月前
|
XML JSON 前端开发
jQuery实现Ajax
jQuery实现Ajax
N..
71 1
|
7月前
|
XML 前端开发 JavaScript
jQuery中ajax如何使用
jQuery中ajax如何使用
91 0
|
7月前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
161 0