为了账号安全,请及时绑定邮箱和手机立即绑定

为啥我的鼠标移出来的效果不显示。。。。。

window.onload = function(){

var box = document.getElementById('box') ; 

box.onmouseover = function(){

play(1);

}

box.onmouseout = function(){

play(0.3);

}

}

var alpha = 0.3 ;

function play(target){

var timer = null ;

var box = document.getElementById('box') ; 

clearInterval(timer);

timer = setInterval(function(){

var speed = 0 ;

if(alert > target){

speed = -0.1;

}else{

speed = 0.1 ;

}

if(alpha == target){

clearInterval(timer);

}else{

alpha = alpha + speed;

box.style.opacity = alpha;

}

},30);

}

就是看不出是哪里错了。。。。

正在回答

4 回答

window.onload = function() {

var box = document.getElementById('box');

box.onmouseover = function() {

play(1);

}

box.onmouseout = function() {

play(0.3);

}

}

var alpha = 0.3;

var timer = null;


function play(target) {

clearInterval(timer);

var box = document.getElementById('box');

var speed = 0;

timer = setInterval(function() {

if(alpha > target) {

speed = -0.01; 

} else {

speed = 0.01;

}

if(alpha == target) {

clearInterval(timer);

} else {

alpha = alpha + speed;

box.style.opacity = alpha;

}

}, 3);

}

这个是我复制你的代码之后拉过去改的  测试可以 你对照下


1 回复 有任何疑惑可以回复我~
#1

任性不是罪 提问者

好哒,非常感谢!!!thank you !!!
2016-07-25 回复 有任何疑惑可以回复我~

window.onload = function() {

var box = document.getElementById('box');

box.onmouseover = function() {

play(100);

}

box.onmouseout = function() {

play(30);

}

var timer = null;//这俩货既不在上面的{}里

var alpha = 30;//也不在下面的{}里

function play(target) {

clearInterval(timer);

timer = setInterval(function() {

var speed = 0;

if(alpha > target) {

speed = -10;

} else {

speed = 10;

}

if(alpha == target) {

clearInterval(timer);

} else {

alpha += speed;

box.style.opacity = alpha / 100;

}

}, 30);

}


}


0 回复 有任何疑惑可以回复我~
#1

脑阔疼

这个涉及到作用域的问题 全局变量 和临时变量 建议你看看
2016-07-25 回复 有任何疑惑可以回复我~
#2

任性不是罪 提问者 回复 脑阔疼

恩呢,好哒
2016-07-25 回复 有任何疑惑可以回复我~

window.onload = function(){

var box = document.getElementById('box') ; 

var timer = null ;

box.onmouseover = function(){

play(100);

}

box.onmouseout = function(){

play(30);

}

function play(target){

var alpha = 30 ;

clearInterval(timer);

timer = setInterval(function(){

var speed = 0 ;

if(alpha > target){

speed = -10;

}else{

speed = 10 ;

}

if(alpha == target){

clearInterval(timer);

}else{

alpha += speed;

box.style.opacity = alpha/100;

}

},30);

}


}


0 回复 有任何疑惑可以回复我~

第一:

if(alert > target){//这里应该是 alpha

speed = -0.1;

}else{

speed = 0.1 ;

}

第二:

function play(target){

var timer = null ;//这个变量应该声明在方法体外面。

var box = document.getElementById('box') ; 


clearInterval(timer);


第三:

speed的绝对值为0.1 最后鼠标移出div可能会闪屏  建议缩小 然后同时缩小相应倍数计时器的间隔时间 达到效果不变


0 回复 有任何疑惑可以回复我~
#1

任性不是罪 提问者

已经全部改过来了,可是还是不行。。。。
2016-07-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为啥我的鼠标移出来的效果不显示。。。。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信