前几天,所做项目要做一个循环滚动,滚动间隔5s。基本的效果是:移动到上面,滚动停止,鼠标移开,滚动继续。逻辑不复杂,主要是在时间的设定上有些麻烦。先把代码附在下面,希望可以抛砖引玉吧。
<div >
<div >
<div >
<div >
<p >途牛购票不错,第N次从途牛购票了,方</p>
<p >2013-03-03</p>
<span ></span>
</div>
<p ><span ><label>于先生/女士 满意度</label><em >100%</em></span></p>
</div>
<div >
<div >
<p >我早上订的票,因为有事中午才到,开车去的,里面停车的地方挺多,</p>
<p >2013-03-11</p>
<span ></span>
</div>
<p ><span ><label>赵先生/女士 满意度</label><em >100%</em></span></p>
</div>
</div>
</div>
$(function(){
controllTime();
});
var scrollhander;
var time = 50; // 100 = 10s
function controllTime(){
recallSH();
$(".tp_recall").each(function(i){
$(this).mouseover(function(){
//停止循环
clearInterval(scrollhander);
});
$(this).mouseout(function(){
//restart循环
recallSH();
});
});
}
//轮播
function recallSH(){
time --;
if(time == 0){
time = 70;
//点评条数
var remark = $(".tp_recall");
//当前点评
var flag = 0;
for(var i = 0 ,l = remark.length ; i < l ; i++){
if(remark.eq(i).css("display") == "block"){
flag = i;
}
}
//当前点评淡出,展示下一个点评
if(l > 0){
remark.eq(flag).fadeOut(1000,function(){
var nextFlag = flag == l - 1 ? 0:flag + 1;
remark.eq(nextFlag).fadeIn(1000);
});
}
}
scrollhander = setTimeout("recallSH()",100);
}
本文链接
本文应用SSH框架版本
Struts Version-struts-2.3.12-all.zip
Spring Version-spring-framework-3.0.1.RELEASE-A.zip
Hibernate Version-hibernate-3.2.5.ga.zip
下载地址
http://struts.apache.org/download
http://www.springsource.com/download/community
http://sourceforge.net/projects/hibernate/files/hibernate3/
一、加入struts相关配置
new一个web project 并且导入struts相关jar包
ognl-3.0.6.jar
struts2-core-2.3.12.jar
xwork-core-2.3.12.jar
commons-logging-api-1.1.jar
commons-lang3-3.1.jar
commons-fileupload-1.2.2.jar
freemarker-2.3.19.jar
commons-logging-1.1.1.jar
commons-io-2.0.1.jar
javassist-3.11.0.GA.jar (本jar包在struts2-blank-2.2.1.war示例工程中的web-inf/lib下可找到)
注: Jar包如果找不到的话可以去struts2-blank-2.2.1.war示例工程中的web-inf/lib下将里面的jarcopy 过去即可
src包下建立一个class继承ActionSupport类。并且写好一个action方法,并且在src包下面建立struts.xml配置该action
public class UserLogin extends ActionSupport{ public String login(){ System.out.println("经过了"); return SUCCESS; } }ClassPath下的struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" extends="struts-default"> <action name="login" class="com.struts.action.UserLogin" method="login"> <result name="success">/WEB-INF/pages/index.jsp</result> </action> </package> </struts>
更改web.xml加入struts相关配置
<!-- struts 跳转action配置 start --> <filter> <filter-name>struts</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.*</param-value> </init-param> </filter> <filter-mapping> <filter-name>struts</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <!-- struts 跳转action配置 end -->
说明:到此为止已经搭建完成了具备了一个struts2基本功能的web 项目。大家可以发布项目然后访问一下自己的action。看看有没有日志输出
二、加入spring相关配置
导入Jar包
将下载下来的jar包目录为spring-framework-3.0.1.RELEASE-A.zip包解压。找到里面的spring-framework-3.0.1.RELEASE-A\dist目录下的所有jar包copy到项目lib目录下
classpath下准备好applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"> <bean id="UserLogin" class="com.struts.action.UserLogin"> </bean> </beans>
在web.xml中键入spring配置
<!-- spring bean 容器配置start --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/applicationContext*.xml</param-value> </context-param> <!-- spring bean 容器配置end -->
整合spring和struts
导入struts下载包的struts2-spring-plugin-2.3.12.jar包即可
说明:到此我们就可以将struts.xml中配置class写为
<action name="login" class="UserLogin"method="login">这里的class和spring的bean配置的id关联
到此为止我们就整合了两个框架。启动服务,访问一下action。发现还是输出日志。正常。
三、加入hibernate相关配置导入Jar包
将hibernate解压包下的hibernate3.jar和lib文件夹下的文件全部copy到项目中。另外还要加入你的jdbc驱动。(这个要根据你的数据库而定了)
在classpath下面建立xml文件hibernate.cfg.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.driver_class"> oracle.jdbc.driver.OracleDriver </property> <property na
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="/blog_article/float_.css">
<script type="text/javascript">
//Object 通过Object类创建对象
/*
var p1=new Object();
p1.name="小明";
alert(p1.name);
alert(p1.constructor);
*/
/*
var n1=new Number(10); //等价于 n1=10
//给类添加共用的一个方法
Number.prototype.add=function(a){
return this+a; //this指的是 谁调用它就是谁,这里是n1调用它this就是n1
}
alert(n1.add(10).add(20)); //输出40
var b=90;
alert(b.add(40)); //同样调用add()方法,this 就是指的是b,所以输出130
*/
/*请思考给js的Array对象扩展一个find(name)方法,当一个Array对象调用该方法
时候,如果能找到name则返回其下标,否则返回-1;
*/
var arr =new Array(3);
arr[0]="lucy";
arr[1]="lily";
arr[2]="tom";
//遍历数组
for(var i=0;i<arr.length;i++){
document.writeln("name:"+arr[i]);
}
/*
document.writeln("<br/>");
//数组反转
arr.reverse();
for(var i=0;i<arr.length;i++){
document.writeln("name:"+arr[i]);
}
*/
//创建一个共用的find方法
Array.prototype.find=function(name){
//总结:this谁调用它就是谁
for(var i=0;i<this.length;i++){ //这里的this就是数组arr
if(name==this[i]){
//返回下标
return i;
}
}
return -1;
}
document.writeln("返回下标为:"+arr.find("tom"));
document.writeln("返回下标为:"+arr.find("ttt"));
//成员函数的理解
/*
function 函数名(参数列表(这里可以多个)){
语句;//函数主体
return 返回值;//这里可以有也可以没有
}
js不支持重载,运行的时候不报错,如重复就调用最后一个
*/
function test(a,b){
alert("test(a,b)");
}
function test(a){
alert(a);
}
function test(a,b){
alert(a+" "+b);
}
test(23); //调用最后一个输出 a undefined
test(3,"your")
/*
结论:
1.js在调用一个函数的时候,是根据函数名来调用的,如果有多个函数名相同,则认最后那一个函数.
2.直接定义一个函数或者变量,实际上这些函数和变量就是全局函数和全局变量(本质上他们是属于window对象的)
*/
</script>
</head>
<body>
</body>
</html>
如果不理解大家还是自己动手试一试。
本文链接