コンテナー div ( "screenshots-container"
) 内に 3 つの div があり、imgs を表示します。div ( "individual-screenshot"
) 内の img をクリックすると、img
.
- 別のdivの画像をクリックすると、最初の画像のアニメーションを逆にすることができません。
私がこれまで取り組んできたこと:
をクリックするとimg
、コンテナ クラス名が から"individual-screenshot"
に更新され"individual-screenshot current-screenshot"
ます。次に、img のサイズと位置をアニメーション化します。
img
別の をクリックするdiv
と、前div
の のクラス名が に戻り"individual-screenshot"
、新しくクリックさdiv
れた のクラス名が に更新され、それに応じ"individual-screenshot current-screenshot"
て新しくクリックされたimg
サイズと位置がアニメーション化されます。最初にクリックされたものは元div
のimg
状態に戻りません元の位置とサイズ。
次のような問題があります:
最初にクリックされたimg
内div
の は、アニメーション化されて元の位置に戻りません。
HTML
<div class="screenshots-container">
<div class="individual-screenshot current-screenshot">
<a href="#"><img src="assets/test-icon.png" style="display: inline-block; height: 200px; width: 200px; margin-left: 280px; position: relative;"></a>
</div>
<div class="individual-screenshot">
<a href="#"><img src="assets/party.png"></a>
</div>
<div class="individual-screenshot">
<a href="#"><img src="assets/test-icon.png"></a>
</div>
</div>
</div>
CoffeeScript (jQuery を使用):
showScreenShot: (e) ->
e.preventDefault()
$imgClicked = $(e.currentTarget)
console.log "$imgClicked:", $imgClicked
$div = $($imgClicked[0].parentElement.parentNode) # img's parent div (individual-screenshot)
$screenshotsContainer = $(".screenshots-container")
$screenshotsList = $screenshotsContainer[0].childNodes
$otherScreenshots = $($screenshotsContainer[0].childNodes).not($div)
console.log "$otherScreenshots: ", $otherScreenshots
# Adds "current-screenshot" as class for all in array
$.each $screenshotsList, (index, value) ->
# changes class name of div
$value = $(value).removeClass("current-screenshot") # remove current-screenshot class name on other divs
if $div.hasClass("current-screenshot")
console.log "$div: ", $div
$screenshot = $($div[0].childNodes[0].children)
$screenshot.animate
"height": "200px"
"width": "200px"
"marginLeft": "280px"
.css
"position": "relative"
else
# not sure how to proceed. How can I get a reference to the originally clicked div, so that I can reverse its animation back to where it was?