Javascript 新的随机数jQuery
这是我的密码Javascript 新的随机数jQuery,javascript,jquery,Javascript,Jquery,这是我的密码 (function ($) { $.fn.snow2 = function (options) { var $flake = $('<a style="text-decoration: none;" href="/flake"><div id="flake" /></a>').css({ 'position': 'absolute', 't
(function ($) {
$.fn.snow2 = function (options) {
var $flake = $('<a style="text-decoration: none;" href="/flake"><div id="flake" /></a>').css({
'position': 'absolute',
'top': '-50px',
'z-index': '100'
}).html('❄'),
documentHeight = $(document).height(),
documentWidth = $(document).width(),
defaults = {
minSize: 30,
maxSize: 50,
newOn: Math.floor(Math.random() * 14000) + 7000,
flakeColor: "#CE1126"
},
options = $.extend({}, defaults, options);
var interval = setInterval(function () {
var startPositionLeft = Math.random() * documentWidth - 100,
startOpacity = 0.5 + Math.random(),
sizeFlake = options.minSize + Math.random() * options.maxSize,
endPositionTop = documentHeight - 40,
endPositionLeft = startPositionLeft - 100 + Math.random() * 200,
durationFall = documentHeight * 10 + Math.random() * 5000;
$flake
.clone()
.appendTo('body')
.css({
left: startPositionLeft,
opacity: startOpacity,
'font-size': sizeFlake,
color: options.flakeColor
})
.animate({
top: endPositionTop,
left: endPositionLeft,
opacity: 0.2
},
durationFall,
'linear',
function () {
$(this).remove()
}
);
}, options.newOn);
};
})(jQuery);
(函数($){
$.fn.snow2=功能(选项){
变量$flake=$('').css({
'位置':'绝对',
'顶部':'-50px',
“z指数”:“100”
}).html(“❄;”),
documentHeight=$(document).height(),
documentWidth=$(document).width(),
默认值={
minSize:30,
最大尺寸:50,
newOn:Math.floor(Math.random()*14000)+7000,
鳞片颜色:“CE1126”
},
选项=$.extend({},默认值,选项);
var interval=setInterval(函数(){
var startPositionLeft=Math.random()*documentWidth-100,
StartCapacity=0.5+数学.random(),
sizeFlake=options.minSize+Math.random()*options.maxSize,
endPositionTop=文件高度-40,
endPositionLeft=startPositionLeft-100+Math.random()*200,
durationFall=documentHeight*10+Math.random()*5000;
$flake
.clone()
.appendTo('正文')
.css({
左:开始位置左,
不透明度:startOpacity,
“字体大小”:sizeFlake,
颜色:options.flakeColor
})
.制作动画({
顶部:endPositionTop,
左:endPositionLeft,
不透明度:0.2
},
持续下降,
“线性”,
函数(){
$(this.remove())
}
);
},options.newOn);
};
})(jQuery);
我试图让它以7000到14000毫秒的随机间隔吐出雪花,问题是当我调用函数时,它会得到7000到14000之间的随机数,并反复使用相同的值。假设它返回12806,它将每12806毫秒吐出一片雪花。每次我都要一个新号码。我将如何着手实现这一点?我从一些不同的东西中分解了这段代码,并且对JavaScript或jQuery不是很有经验。非常感谢您的帮助。问题在于
setInterval
,这正是您所抱怨的。我想您最好使用setTimeout
。从:
setTimeout()
在指定延迟后调用函数或执行代码段
setInterval()
调用函数或重复执行代码段,每次调用该函数之间有固定的时间延迟。问题在于setInterval
,它正是您所抱怨的。我想您最好使用setTimeout
。从:
setTimeout()
在指定延迟后调用函数或执行代码段
setInterval()
调用函数或重复执行代码段,每次调用该函数之间有固定的时间延迟。问题在于setInterval
,它正是您所抱怨的。我想您最好使用setTimeout
。从:
setTimeout()
在指定延迟后调用函数或执行代码段
setInterval()
调用函数或重复执行代码段,每次调用该函数之间有固定的时间延迟。问题在于setInterval
,它正是您所抱怨的。我想您最好使用setTimeout
。从:
setTimeout()
在指定延迟后调用函数或执行代码段
setInterval()
调用函数或重复执行代码段,每次调用该函数之间有固定的时间延迟。是的,我将使用setTimeout并使用新的超时值调用函数本身。另外,我会将newOn设置为函数而不是变量,因为它作为变量只计算一次
查看此小提琴的行为是否符合您的要求:
在小提琴中,我将第一个超时设置为0,以便第一个会立即出现
另外,这感觉更像是雪:很酷的主意
$.fn.snow2 = function (options) {
var $flake = $('<a style="text-decoration: none;" href="/flake"><div id="flake" /></a>').css({
'position': 'absolute',
'top': '-50px',
'z-index': '100'
}).html('❄'),
documentHeight = $(document).height(),
documentWidth = $(document).width(),
defaults = {
minSize: 30,
maxSize: 50,
newOn: function(){return Math.floor(Math.random() * 14000) + 7000},
flakeColor: "#CE1126"
},
options = $.extend({}, defaults, options);
function newFlake() {
var startPositionLeft = Math.random() * documentWidth - 100,
startOpacity = 0.5 + Math.random(),
sizeFlake = options.minSize + Math.random() * options.maxSize,
endPositionTop = documentHeight - 40,
endPositionLeft = startPositionLeft - 100 + Math.random() * 200,
durationFall = documentHeight * 10 + Math.random() * 5000;
$flake
.clone()
.appendTo('body')
.css({
left: startPositionLeft,
opacity: startOpacity,
'font-size': sizeFlake,
color: options.flakeColor
})
.animate({
top: endPositionTop,
left: endPositionLeft,
opacity: 0.2
},
durationFall,
'linear',
function () {
$(this).remove()
}
);
setTimeout(newFlake, options.newOn());
};
setTimeout(newFlake, options.newOn());
}(jQuery);
$.fn.snow2=函数(选项){
变量$flake=$('').css({
'位置':'绝对',
'顶部':'-50px',
“z指数”:“100”
}).html(“❄;”),
documentHeight=$(document).height(),
documentWidth=$(document).width(),
默认值={
minSize:30,
最大尺寸:50,
newOn:function(){return Math.floor(Math.random()*14000)+7000},
鳞片颜色:“CE1126”
},
选项=$.extend({},默认值,选项);
函数newFlake(){
var startPositionLeft=Math.random()*documentWidth-100,
StartCapacity=0.5+数学.random(),
sizeFlake=options.minSize+Math.random()*options.maxSize,
endPositionTop=文件高度-40,
endPositionLeft=startPositionLeft-100+Math.random()*200,
durationFall=documentHeight*10+Math.random()*5000;
$flake
.clone()
.appendTo('正文')
.css({
左:开始位置左,
不透明度:startOpacity,
“字体大小”:sizeFlake,
颜色:options.flakeColor
})
.制作动画({
顶部:endPositionTop,
左:endPositionLeft,
不透明度:0.2
},
持续下降,
“线性”,
函数(){
$(this.remove())
}