更新于 
部分信息可能已经过时,请谨慎参考本文内容。

编写雪花js特效无显示

原因、效果代码以及解决方法

原因

webview控件未设置启动js

效果代码
定义js事件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script>
//获取屏幕宽高
var windowWidth = window.screen.width;
var windowHeight = window.screen.height;

//创建雪花
function createSnow(){
var left = 0;
var top = 0;

//定义一个初始化随机数,使雪花在屏幕中
var left_random = Math.random() * windowWidth;
var top_random = Math.random()* windowHeight;
var div = document.createElement('div');
div.className = 'snow';
div.style.transform = 'scale('+(Math.random())+')'

document.body.appendChild(div);

//雪花飘落
setInterval(function () {

div.style.left = left_random + left +'px';
div.style.top = top_random + top +'px'
left += 0.2;
top += 0.2;

//如果雪花跑到屏幕外面了,让雪花重新返回屏幕顶部
if(left_random + left >= windowWidth){
left_random = Math.random();
left = 0;
}

if(top_random + top >= windowHeight){
top_random = Math.random();
top = 0;
}
},10)

}
for(var i = 0 ; i < 200 ; i++){
createSnow()
}
</script>
定义css
1
2
3
4
5
6
7
.snow{
background: white;
position: absolute;
width: 20px;
height: 20px;
border-radius: 50%;
}
解决方法

webview使用mWebView参数绑定id

1
2
mWebView.getSettings().setJavaScriptEnabled(true); //启用js
mWebView.getSettings().setBuiltInZoomControls(true);//启用缩放