亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

可以幫忙看下代碼嗎


<!DOCTYPE html>

<html>

<head>

? ? <meta charset="UTF-8">

? ? <title>Title</title>

? ? <style type="text/css">

? ? ? ? *{

? ? ? ? ? ? margin: 0;

? ? ? ? ? ? padding: 0;

? ? ? ? }

? ? ? ? div {

? ? ? ? ? ? width: 1000px;

? ? ? ? ? ? height: 300px;

? ? ? ? ? ?

? ? ? ? ? ? background: #0e90d2;

? ? ? ? ? ? filter: alpha(opacity:30);

? ? ? ? ? ? opacity: 0.3

? ? ? ?

? ? ? ? }


? ? </style>

</head>

<body>

<div>


</div>

<script type="text/javascript">

? ? window.onload = function () {

? ? ? ? var oDiv = document.getElementsByTagName('div')[0],


? ? ? ? ? timer = null;


? ? ? ? oDiv.onmouseover = function () {

? ? ? ? ? ? startMove('opacity',100);

? ? ? ? }


? ? ? ? oDiv.onmouseout = function () {

? ? ? ? ? ? startMove('opacity',30);

? ? ? ? }

? ? } ? ?

? ? ? ??



? ? ? ? function startMove(attr,iTarget) {

? ? ? ? ? ? clearInterval(timer);

? ? ? ? ? ? timer = setInterval(function(){

? ? ? ? ? ? ? ? var oDiv = document.getElementsByTagName('div')[0],

? ? ? ? ? ? ? ? var icur=0;

? ? ? ? ? ? ? ? if(attr=='opacity'){

? ? ? ? ? ? ? ? icur=Math.round(parseFloat(getStyle(oDiv,attr))*100);

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ? else{

? ? ? ? ? ? ? ? ?icur=parseInt(getStyle(oDiv,attr));

? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? var speed=(iTarget-icur)/8;

? ? ? ? ? ? ? ? speed=speed>0?Math.ceil(speed):Math.floor(speed);

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? if(icur==iTarget){

? ? ? ? ? ? ? ? ? clearInterval(timer);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else{

? ? ? ? ? ? ? ? ?if(attr=='opacity'){

? ? ? ? ? ? ? ? ?icur+=speed;

? ? ? ? ? ? ? ? ? ? ?oDiv.style.filter='alpha(opacity:'+icur+')';

? ? ? ? ? ? ? ? ? ? ?oDiv.style.opacity=icur/100;

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ?else{

? ? ? ? ? ? ? ? ?oDiv.style[attr]=icur+speed+'px'

? ? ? ? ? ? ? ? ?}

? ? ? ? ? ? ?}

? ? ? ? ? ? ?}, 30)

? ? ? ? ?}


? ??


? ? //獲取css樣式

? ? function getStyle(obj, attr) {

? ? ? ? if (obj.currentStyle) {

? ? ? ? ? ? return obj.currentStyle[attr];

? ? ? ? }

? ? ? ? else {

? ? ? ? ? ? return getComputedStyle(obj, null)[attr];

? ? ? ? }

? ? }

</script>

</body>

</html>


如加入obj參數 則

?? ? oDiv.onmouseover = function () {

? ? ? ? ? ? startMove(this,'opacity',100);

? ? ? ? }

在這里 我不用obj的參數可以么 直接默認為oDiv 不知道是不是這個原因?

正在回答

4 回答

理論上沒什么問題,但是不能應用于多物體運動

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

謝謝親的答復 但是在不傳入obj的參數的情況下 之前已經有定義timer=null,因此之后可以開始就可以clearsetinterval 不知道對不對。。

0 回復 有任何疑惑可以回復我~
<!DOCTYPE?html>
<html>
<head>
????<meta?charset="UTF-8">
????<title>Title</title>
????<style?type="text/css">
????????*{
????????????margin:?0;
????????????padding:?0;
????????}
????????div?{
????????????width:?1000px;
????????????height:?300px;
???????????
????????????background:?#0e90d2;
????????????filter:?alpha(opacity:30);
????????????opacity:?0.3
???????
????????}

????</style>
</head>
<body>
<div>

</div>
<script?type="text/javascript">
????window.onload?=?function?()?{
????????var?oDiv?=?document.getElementsByTagName('div')[0],
????????
????????timer?=?null;

????????oDiv.onmouseover?=?function?()?{
????????????startMove(this,'opacity',100);
????????}

????????oDiv.onmouseout?=?function?()?{
????????????startMove(this,'opacity',30);
????????}
????}????
????????


????????function?startMove(obj,attr,iTarget)?{

????????????clearInterval(obj.timer);
????????????obj.timer?=?setInterval(function(){
????????????????var?oDiv?=?document.getElementsByTagName('div')[0];
????????????????var?icur=0;
????????????????if(attr=='opacity'){
????????????????icur=Math.round(parseFloat(getStyle(oDiv,attr))*100);
?????????????????}
????????????????else{
?????????????????icur=parseInt(getStyle(oDiv,attr));
????????????????}

????????????????var?speed=(iTarget-icur)/8;
????????????????speed=speed>0?Math.ceil(speed):Math.floor(speed);
????????????????
????????????????if(icur==iTarget){
??????????????????clearInterval(obj.timer);
????????????????}
????????????????else{
?????????????????if(attr=='opacity'){
?????????????????icur+=speed;
?????????????????????oDiv.style.filter='alpha(opacity:'+icur+')';
?????????????????????oDiv.style.opacity=icur/100;
?????????????????}
????????????????
?????????????????else{
?????????????????oDiv.style[attr]=icur+speed+'px'
?????????????????}
?????????????}
?????????????},?30)
?????????}

????

????//獲取css樣式
????function?getStyle(obj,?attr)?{
????????if?(obj.currentStyle)?{
????????????return?obj.currentStyle[attr];
????????}
????????else?{
????????????return?getComputedStyle(obj,?null)[attr];
????????}
????}
</script>
</body>
</html>


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

黑色秋水

在你基礎上改的:1.你的startMove函數里面第四行,你第三行結尾是個逗號,應該是想同時定義多個變量,那你第四行var就不用寫; 2timer問題,參照老師的代碼,this是需要傳入的,以便將timer綁定在元素對象上,不然函數開始就清除一個未定義的定時器會報錯;
2016-10-20 回復 有任何疑惑可以回復我~
#2

poudoudou 提問者 回復 黑色秋水

謝謝親的答復 但是在不傳入obj的參數的情況下 之前已經有定義timer=null,因此之后可以開始就可以clearsetinterval 不知道對不對。。
2016-10-20 回復 有任何疑惑可以回復我~

沒聽明白你說什么

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

poudoudou 提問者

不好意思 就是代碼不能夠運行 在 function startMove (attr,iTarget) 中加上obj這個參數也不可以 不知道哪里出錯了。。。
2016-10-13 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

可以幫忙看下代碼嗎

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號