怎么用js让div盒子像IOS系统里的那样抖动?

JavaScript09

怎么用js让div盒子像IOS系统里的那样抖动?,第1张

可以结合css3实现。

css3可以设置动画和过渡,动画当中可以设置旋转、移动和缩放等参数。

可以在长按的时候,更改为带有动画的类名,就可以执行css3的动画了。

基本流程:

先看一下Web中,我们给h1标签添加一个onclick事件,让它在被点击之后,修改当前的url。

Web中的HTML代码:

<html>

<head>

<script>

function getInfo(name)

{

window.location = "/getInfo/"+name

}

</script>

</head>

<body>

<h1 onclick="getInfo('why')">Name</h1>

</body>

</html>

iOS中,先拖拽WebView,访问localhost,然后通过WebView的委托事件监听url跳转操作,并且把跳转截取下来。

也就是说,在onclick的时候,普通浏览器灰跳转到那个url,但是在iOS的这个WebView里面,这个跳转会被拦截,

用这种方式可以巧妙地实现JS调用iOS的原生代码:

//

// DWViewController.m

// DareWayApp

//

// Created by why on 14-6-3.

// Copyright (c) 2014年 DareWay. All rights reserved.

//

#import "DWViewController.h"

@interface DWViewController ()

@property (weak, nonatomic) IBOutlet UIWebView *myWebview // 主页面

@end

@implementation DWViewController

- (void)viewDidLoad

{

[super viewDidLoad]

// Do any additional setup after loading the view, typically from a nib.

// 适配iOS6的状态栏

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

_myWebview.frame = CGRectMake(0,20,self.view.frame.size.width,self.view.frame.size.height-20)

}

// 加载制定的URL

NSURL *url =[NSURL URLWithString:@"http://localhost"]

NSURLRequest *request =[NSURLRequest requestWithURL:url]

[_myWebview setDelegate:self]

[_myWebview loadRequest:request]

}

// 网页中的每一个请求都会被触发

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

{

// 每次跳转时候判断URL

if([request.mainDocumentURL.relativePath isEqualToString:@"/getInfo/why"])

{

NSLog(@"why")

return NO

}

return YES

}

- (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning]

// Dispose of any resources that can be recreated.

}

@end

//①ji与android交互

//js调用android方法

window.类.方法名称(参数1,参数2)

//android调用js方法(loginIn:方法名称,uname:参数)

//activity.loadUrl("javascript:loginIn('" + uname + "')")

//②js与ios交互

//js调用ios方法(objc:协议)

window.location.href='objc://方法名称|参数1|参数2'

//ios调用js方法:

同android

其中:android的activity如下:

@Override

public void onCreate(Bundle savedInstanceState) {

// setFullScreen(true)

Intent intent = new Intent(getApplicationContext(),

SplashActivity.class)

startActivity(intent)

super.onCreate(savedInstanceState)

super.init()

// Set by <content src="index.html" /> in config.xml

activity = this

// this.appView.setBackgroundResource(R.drawable.welcome)// 设置背景图片

//

// super.setIntegerProperty("splashscreen", R.drawable.welcome)

// 设置闪屏背景图片

// super.setBooleanProperty(name, value)

// super.loadUrl("这里是html页面的路径")

super.appView.addJavascriptInterface(new Fu(), "这里是类名(js中需要通过这个类名访问android方法)")

super.loadUrl(Config.getStartUrl())

// super.loadUrl("file:///android_asset/www/index.html")

// mController.openShare(activity, false)

// try {

// getToken()

// } catch (NoSuchAlgorithmException e) {

// // TODO Auto-generated catch block

// //e.printStackTrace()

// }

}