第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

下面的代碼為什么不能實現(xiàn)鼠標(biāo)移入移出div1的width在200px到600px之間變化?

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<title>運動框架</title>
<style type="text/css">
?*{ margin: 0; padding: 0;}
??? #div1{? width: 200px; height: 100px; background-color: #ff0000;}
</style>
<script type="text/javascript">
window.onload = function(){
?oDiv = document.getElementById('div1');
?oDiv.onmouseover = function(){
??startMove(600);
?}
?oDiv.onmouseout = function(){
??startMove(200);
?}
}
function getStyle(obj,attr){
?if(obj.currentStyle){
??return obj.currentStyle[attr];
?}else{
??return getComputedStyle(obj,false)[attr];
?}
}
var timer = null;
function startMove(iTarget){
?clearInterval(timer);
?var oDiv = document.getElementById('div1');
?var div_width = parseInt(getStyle(oDiv,'width'));
?timer = setInterval(function(){
??var speed = 0;?
??if(div_width > iTarget){
???speed = -10;
??}else if(div_width <iTarget){
???speed = 10;
??}
??if(div_width == iTarget){
???clearInterval(timer);
??}else{
???oDiv.style.width = div_width + speed + 'px';
??}
?},30)
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>

正在回答

2 回答

解決方案:

需要把下面兩行代碼移動到timer=setInterval()這個方法里的函數(shù)的函數(shù)體里。

?var oDiv = document.getElementById('div1');

?var div_width = parseInt(getStyle(oDiv,'width'));

最終有效的代碼是這樣的:

<!DOCTYPE?html>
<head>
<meta?charset="UTF-8">
<title>運動框架</title>
<style?type="text/css">
?*{?margin:?0;?padding:?0;}
????#div1{??width:?200px;?height:?100px;?background-color:?#ff0000;}
</style>
<script?type="text/javascript">
window.onload?=?function(){
?oDiv?=?document.getElementById('div1');
?oDiv.onmouseover?=?function(){
??startMove(600);
?}
?oDiv.onmouseout?=?function(){
??startMove(200);
?}
}
function?getStyle(obj,attr){
?if(obj.currentStyle){
??return?obj.currentStyle[attr];
?}else{
??return?getComputedStyle(obj,false)[attr];
?}
}
var?timer?=?null;
function?startMove(iTarget){
?clearInterval(timer);
?timer?=?setInterval(function(){
??var?speed?=?0;?
??var?oDiv?=?document.getElementById('div1');???????//這行代碼發(fā)生了位置上的移動
??var?div_width?=?parseInt(getStyle(oDiv,'width'));?//這行代碼也發(fā)生了位置上的移動
??if(div_width?>?iTarget){
???speed?=?-10;
??}else?if(div_width?<iTarget){
???speed?=?10;
??}
??if(div_width?==?iTarget){
???clearInterval(timer);
??}else{
???oDiv.style.width?=?div_width?+?speed?+?'px';
??}
?},30)
}
</script>
</head>
<body>
<div?id="div1"></div>
</body>
</html>


0 回復(fù) 有任何疑惑可以回復(fù)我~

在你最后的一個else里面有錯誤。你可以改成這樣:

div_width+=speed;oDiv.style.width=div_width+'px';

否則你的div_width永遠只是200+10=210px

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Metotaste 提問者

雖然你的方案并不能解決問題,還是非常感謝你的熱心回答!
2016-02-22 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

下面的代碼為什么不能實現(xiàn)鼠標(biāo)移入移出div1的width在200px到600px之間變化?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號