0

非常に単純なコード、非常に単純な問題。リンクが押されると、divが上下に移動します。ただし、段階的に移動させることはできません。私はこれが単純な構文エラーであることを知っていますが、グーグルは私のやり方のエラーを明らかにしていません。私を啓発してくれる人はいますか?

<a class="galsel" onclick="document.getElementById('innerscroll').style.bottom -='167px';">&laquo;</a>

<a class="galsel" onclick="document.getElementById('innerscroll').style.bottom +='167px';">&raquo;</a>

divが垂直に並べて表示されるように既に持っているので、「高すぎる」または「低すぎる」の心配はありません。

現在の状況は次のとおりです。drainteractive.com/FBD/ projects.php

4

3 に答える 3

2

を含む文字列から値を解析する必要がありますpx

// Increase by 167
document.getElementById('innerscroll').style.bottom = (parseInt(document.getElementById('innerscroll').style.bottom, 10) + 167) + ' px'

// Decrease by 167
document.getElementById('innerscroll').style.bottom = (parseInt(document.getElementById('innerscroll').style.bottom, 10) - 167) + ' px'

// Abstracted
function addToBottom(el, amount) {
   // You probably add lower and upper bound check conditions
   el.style.bottom = (parseInt(el.style.bottom) + amount) + ' px';
}

var el = document.getElementById('innerscroll');
addToBottom(el, 167);
addToBottom(el, -167);

また、最初にボトムが設定されていない場合にも機能するようにしてください

var currentBottom = parseInt(document.getElementById('innerscroll').style.bottom) || 0;
于 2012-10-29T22:33:36.460 に答える
1

+='167px'それを連結し、それがなり'167px167px167px167px167px'ます。結果はわかりません-='167px'が、おそらくエラーになります。

于 2012-10-29T22:28:36.540 に答える
0

文字列から「px」をリッピングし、それをintに変換(?)してから、そこから減算する必要があります。

onclick="var mElem = document.getElementById('innerScroll'); mCur = parseInt(mElem.style.bottom.replace('px', 0)); mElem.style.bottom = (mCur-167)+'px'"

当然、これはすべて別の関数に入れる必要があります。この関数は、上記の怪物ではなく、onclickで呼び出されます。

function moveUp()
{
var mElem = document.getElementById('innerScroll'); 
var mCur = parseInt(mElem.style.bottom.replace('px', 0)); 
mElem.style.bottom = (mCur-167)+'px';
}

..。

<strike>onlick="moveUp()"</strike>
onclick="moveUp()"

私の心はどこかにあったに違いない。

于 2012-10-29T22:35:21.753 に答える