我不知道如何定位具有特定数据属性的元素。就我而言,a
withclass="zoom-image"
和data-order-item-id="<?=$order_item_id ?>"
.
html/php 如下(此代码在循环中,将重复多次):
<div class="history_image">
<img src="<?= $order_image ?>" alt="Image of product">
<a href="javascript:void(0)" class="zoom-image" data-order-item-id="<?=$order_item_id ?>">
<span class="trans_top"><?= lang('view')?></span>
<span class="trans_bottom"></span>
</a>
<div id="zoom-image-holder-<?=$order_item_id ?>" class="zoom-image-holder hidden">
<img src="<?= $order_image_full?>" alt="Image of product">
</div>
</div>
我的 js 适用于一个,但是当您有多个时,它适用于所有。我只需要定位a
悬停的那个并将其data-order-item-id="<?=$order_item_id ?>
用作参考点(我认为)。js 所做的基本上是添加淡入淡出,并对一些链接进行动画处理:
function hoverFadeIn()
{
zoomId = $(this).data("order-item-id");
var holderHeight = ($(this).height());
var transRatio = 0.7;
transValue = holderHeight * transRatio;
transValueTop = transValue+'px';
transValueBottom = '-'+transValue+'px';
$(this).animate({
backgroundColor: 'rgba(0,0,0,0.6)',
}, 300, function() {
// Animation complete.
});
$('.trans_top').animate({
transform: 'translateY('+transValueTop+')'
});
$('.trans_bottom').animate({
transform: 'translateY('+transValueBottom+')'
});
}
function hoverFadeOut()
{
$(this).animate({
backgroundColor: 'rgba(0,0,0,0)',
}, 300, function() {
// Animation complete.
});
$('.trans_top').animate({
transform: 'translateY(0px)'
});
$('.trans_bottom').animate({
transform: 'translateY(0px)'
});
}
$(document).ready(function() {
var zoomId = 0 ;
$(".zoom-image").click(function() {
zoomId = $(this).data("order-item-id");
$("#zoom-image-holder-"+zoomId).dialog(opt).dialog("open");
});
$(".ui-widget-overlay").live("click", function() { $("#zoom-image-holder-"+zoomId).dialog("close"); } );
$(".zoom-image").hoverIntent( hoverFadeIn, hoverFadeOut );
});
我确信它$(this).animate
需要改变并且也只适用
$('.trans_top').animate({
transform: 'translateY('+transValueTop+')'
});
$('.trans_bottom').animate({
transform: 'translateY('+transValueBottom+')'
});
到当前 div 被悬停