js学习中,写的一些小函数

本文提供了一系列实用的JavaScript函数,包括生成随机数、检查输入是否为数字、实现元素透明度渐变、对象抖动效果及平滑移动等,旨在帮助开发者快速实现网页互动效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*

my js的库

*/

//随机产生n个从x-y中不重复的整数

function check(n,x,y){

var num=[];

for(var i=0;i<n;i++){

num[i]=Math.ceil(Math.random()*(y-x)+x);

for(var j=0;j<num.length-1;j++){

if(num[j]===num[++j]){

num.splice(j,1);

n++;

}

}

}

//alert(num.length);

return num;

}

//返回一个X-Y之间的随机数

function stochastic(x,y){

//四舍五入和0-1之间的随机数

return Math.round(Math.random()*(y-x)+x);

}

//需要检测的标签对象-->检测标签中的内容是否全部都是数字(仅对与input标签)

function check(obj){

var text = obj.value;

//var judge=true;

for(var i=0;i<text.length;i++){

//alert(text.charCodeAt(i)>57);

if(text.charCodeAt(i)>57||text.charCodeAt(i)<48){

//judge=false;

return false;

}

}

/*

if(panduan==false){

alert("这不是一串数字");

}*/

//改进-->简单明了

//return judge==false? false: true;

return true;

}

//透明函数,对象,速度,目标点,改变频率,回调函数

function diaphaneity(obj,speed,target,rate,enfn){

var setTime =null;

var target=target;

speed = parseFloat(getStyle(obj,'opacity'))*100<target?speed:-speed;

setTime=setInterval(function(){


//console.log(parseFloat(getStyle(obj,'opacity'))*100);

var extent=parseFloat(getStyle(obj,'opacity'))*100+speed;//改变后的透明度

obj.style.opacity=extent*0.01+"";

if(parseFloat(getStyle(obj,'opacity'))*100===target){

obj.style.opacity=target*0.01+"";

clearInterval(setTime);

enfn&&enfn();

}


},rate);

}

//需要抖动的对象,抖动的频率,帧数,方向,初始位置

function shake(obj,rate,frame,att,size){

var arr=[];

var setTime=null;

for(var i=rate;i>0;i-=frame){

arr.push(i,-i);

}

arr.push(0);

var index=0;

var setdu=parseInt(size);//有问题的,待解决。

console.log(setdu);

setTime=setInterval(function(){

if(index>=arr.length){

index=0;

clearInterval(setTime);

setTime=null;

}else{

setdu=setdu+arr[index];

obj.style[att]=setdu+"px";

index++;

}

},50);

}

//让层上下左右移动 ,参数   标签对象,上/下/左/右,终点距离,回调函数 

function doMove ( obj, attr, dir, target, endFn ) {

var target=target;

dir = parseInt(getStyle( obj, attr )) < target ? dir : -dir;

clearInterval( obj.timer );

obj.timer = setInterval(function () {

var speed = parseInt(getStyle( obj, attr )) + dir; // 步长

if ( speed > target && dir > 0 ||  speed < target && dir < 0  ) {

speed = target;

}

obj.style[attr] = speed + 'px';

if ( speed == target) {

clearInterval( obj.timer );

/*

if ( endFn ) {

endFn();

}

*/

endFn && endFn();

}

}, 30);

}


//获取样式的值

function getStyle ( obj, attr ) { return obj.currentStyle?obj.currentStyle[attr] : getComputedStyle( obj )[attr]; }




本文转自 沉迷学习中 51CTO博客,原文链接:http://blog.51cto.com/12907581/1924484,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值