CSS - 翻转图像
CSS - Flip image
我正在尝试翻转使用 jquery 拖动的图像
当我将图像拖到新的 div 时,它会生成一个 class。我使用 ui.helper.addClass("gemaakt");
并且工作正常!
问题是,我的 CSS 脚本正在翻转图像等。但出于某种原因不是 classes?由于我拖动了这些图像,它会将它们放入 class
很难解释,所以我决定 post 在 JSfiddle 上,这样你就可以看到它,
http://jsfiddle.net/qbvzwsg2/
http://jsfiddle.net/qbvzwsg2/2/ <- 更新版本
如您所见,翻盖(在底部,工作正常)
点击图片时,翻转无误,没问题。
但是现在,将一张卡片拖到框中,然后单击该图像..
什么都没发生:(
<div class="flip-container">
<div class="flipper" onclick="this.classList.toggle('flipped')">
<div class="front">
<div class="ui-draggable gemaakt dropped"> </div>
</div>
<div class="back">
<img src="./img/test.jpg">
</div>
</div>
</div>
由于某种原因它不能翻转 class
帮助别人? :D
您忘记将翻转容器翻转 类 添加到您 html
中的图像元素中。
我没时间把它弄得漂亮 :P
Persijn 是正确的。图像不翻转。翻转的是整个容器,如底部的卡片:
<div class="flip-container">
<div class="flipper" onclick="this.classList.toggle('flipped')">
<div class="front">
<div class="ui-draggable gemaakt dropped"> </div>
</div>
<div class="back">
<img src="./img/test.jpg">
</div>
</div>
</div>
因此,为了让事情发生,您可以更改 .cards img
的 HTML 来完成该结构并将可拖动对象更改为 .cards .flip-container
。
为了更容易向您展示 fiddle,我只是添加了这个脚本来准备正确的结构,而不是更改 HTML:
$(".cards img").each(function() {
$(this).wrap('<div class="front"></div>').parent().wrap('<div class="flipper"></div>').parent().wrap('<div class="flip-container"></div>').append('<div class="back">FLIPPED</div>');
});
然后,根据正确的结构,我将 draggable 更改为 .flip-container
,正如我上面提到的:
$(".cards .flip-container").draggable({
并通过添加 onclick
回调更改其 stop
处理程序,使卡片在放置在正确位置时可翻转:
stop: function (event, ui) {
ui.helper.removeClass("draggable");
var imgSrc = ui.helper.find("img")[0].src.split("/");
var image = imgSrc[imgSrc.length - 1];
if ($.ui.ddmanager.drop(ui.helper.data("draggable"), event)) {
ui.helper.find(".flipper").attr("onclick", "this.classList.toggle('flipped')");
} else {
}
}
最后,添加了不破坏外观的样式:
.flip-container, .front, .back {
display: inline-block !important;
height: 150px !important;
}
#dvDest img {
margin: 0px !important;
}
我正在尝试翻转使用 jquery 拖动的图像
当我将图像拖到新的 div 时,它会生成一个 class。我使用 ui.helper.addClass("gemaakt");
并且工作正常!
问题是,我的 CSS 脚本正在翻转图像等。但出于某种原因不是 classes?由于我拖动了这些图像,它会将它们放入 class
很难解释,所以我决定 post 在 JSfiddle 上,这样你就可以看到它,
http://jsfiddle.net/qbvzwsg2/ http://jsfiddle.net/qbvzwsg2/2/ <- 更新版本
如您所见,翻盖(在底部,工作正常) 点击图片时,翻转无误,没问题。
但是现在,将一张卡片拖到框中,然后单击该图像.. 什么都没发生:(
<div class="flip-container">
<div class="flipper" onclick="this.classList.toggle('flipped')">
<div class="front">
<div class="ui-draggable gemaakt dropped"> </div>
</div>
<div class="back">
<img src="./img/test.jpg">
</div>
</div>
</div>
由于某种原因它不能翻转 class
帮助别人? :D
您忘记将翻转容器翻转 类 添加到您 html
中的图像元素中。
我没时间把它弄得漂亮 :P
Persijn 是正确的。图像不翻转。翻转的是整个容器,如底部的卡片:
<div class="flip-container">
<div class="flipper" onclick="this.classList.toggle('flipped')">
<div class="front">
<div class="ui-draggable gemaakt dropped"> </div>
</div>
<div class="back">
<img src="./img/test.jpg">
</div>
</div>
</div>
因此,为了让事情发生,您可以更改 .cards img
的 HTML 来完成该结构并将可拖动对象更改为 .cards .flip-container
。
为了更容易向您展示 fiddle,我只是添加了这个脚本来准备正确的结构,而不是更改 HTML:
$(".cards img").each(function() {
$(this).wrap('<div class="front"></div>').parent().wrap('<div class="flipper"></div>').parent().wrap('<div class="flip-container"></div>').append('<div class="back">FLIPPED</div>');
});
然后,根据正确的结构,我将 draggable 更改为 .flip-container
,正如我上面提到的:
$(".cards .flip-container").draggable({
并通过添加 onclick
回调更改其 stop
处理程序,使卡片在放置在正确位置时可翻转:
stop: function (event, ui) {
ui.helper.removeClass("draggable");
var imgSrc = ui.helper.find("img")[0].src.split("/");
var image = imgSrc[imgSrc.length - 1];
if ($.ui.ddmanager.drop(ui.helper.data("draggable"), event)) {
ui.helper.find(".flipper").attr("onclick", "this.classList.toggle('flipped')");
} else {
}
}
最后,添加了不破坏外观的样式:
.flip-container, .front, .back {
display: inline-block !important;
height: 150px !important;
}
#dvDest img {
margin: 0px !important;
}