我对jquery完全不熟悉,并决定使用下面的放大镜。我已经设法让它起作用但是我想添加一个简单的淡入淡出并淡出脚本。任何想法我在哪里以及如何放置它。我尝试了一些但失败了。任何建议表示赞赏 非常感谢 GK
/**
* loupe - an image magnifier for jQuery
* (C) 2010 jdbartlett, MIT license
* http://github.com/jdbartlett/loupe
*/
(function ($) {
$.fn.loupe = function (arg) {
var options = $.extend({
loupe: 'loupe',
width: 200,
height: 150
}, arg || {});
return this.length ? this.each(function () {
var $this = $(this), $big, $loupe,
$small = $this.is('img') ? $this : $this.find('img:first'),
move, hide = function () { $loupe.hide(); },
time;
if ($this.data('loupe') != null) {
return $this.data('loupe', arg);
}
move = function (e) {
var os = $small.offset(),
sW = $small.outerWidth(),
sH = $small.outerHeight(),
oW = options.width / 2,
oH = options.height / 2;
if (!$this.data('loupe') ||
e.pageX > sW + os.left + 10 || e.pageX < os.left - 10 ||
e.pageY > sH + os.top + 10 || e.pageY < os.top - 10) {
return hide();
}
time = time ? clearTimeout(time) : 0;
$loupe.show().css({
left: e.pageX - oW,
top: e.pageY - oH
});
$big.css({
left: -(((e.pageX - os.left) / sW) * $big.width() - oW)|0,
top: -(((e.pageY - os.top) / sH) * $big.height() - oH)|0
});
};
$loupe = $('<div />')
.addClass(options.loupe)
.css({
width: options.width,
height: options.height,
position: 'absolute',
overflow: 'hidden'
})
.append($big = $('<img />').attr('src', $this.attr($this.is('img') ? 'src' : 'href')).css('position', 'absolute'))
.mousemove(move)
.hide()
.appendTo('body');
$this.data('loupe', true)
.mouseenter(move)
.mouseout(function () {
time = setTimeout(hide, 10);
});
}) : this;
};
}(jQuery));
答案 0 :(得分:0)
替换$loupe.show()
$loupe.fadeIn()
应该有效。还要查找$ loupe.hide()并用.fadeOut()
替换hide。即使从未看过放大器插件工作,代码也不是很复杂,你应该修补它并将其用作学习实验,以更好地理解jQuery的工作原理。
答案 1 :(得分:0)
对代码的这个小编辑应该做你想要的
使用Javascript:
(function ($) {
$.fn.loupe = function (arg) {
var options = $.extend({
loupe: 'loupe',
width: 200,
height: 150
}, arg || {});
return this.length ? this.each(function () {
var $this = $(this), $big, $loupe,
$small = $this.is('img') ? $this : $this.find('img:first'),
move, hide = function () { $loupe.fadeOut(); },
time;
if ($this.data('loupe') != null) {
return $this.data('loupe', arg);
}
move = function (e) {
var os = $small.offset(),
sW = $small.outerWidth(),
sH = $small.outerHeight(),
oW = options.width / 2,
oH = options.height / 2;
if (!$this.data('loupe') ||
e.pageX > sW + os.left + 10 || e.pageX < os.left - 10 ||
e.pageY > sH + os.top + 10 || e.pageY < os.top - 10) {
return hide();
}
time = time ? clearTimeout(time) : 0;
$loupe.fadeIn().css({
left: e.pageX - oW,
top: e.pageY - oH
});
$big.css({
left: -(((e.pageX - os.left) / sW) * $big.width() - oW)|0,
top: -(((e.pageY - os.top) / sH) * $big.height() - oH)|0
});
};
$loupe = $('<div />')
.addClass(options.loupe)
.css({
width: options.width,
height: options.height,
position: 'absolute',
overflow: 'hidden'
})
.append($big = $('<img />').attr('src', $this.attr($this.is('img') ? 'src' : 'href')).css('position', 'absolute'))
.mousemove(move)
.hide()
.appendTo('body');
$this.data('loupe', true)
.mouseenter(move)
.mouseout(function () {
time = setTimeout(hide, 10);
});
}) : this;
};
}(jQuery));