我想要播放文字。我正在使用代码: -
var cart = jQuery('.flying-shopping-cart');
var texttodrag = jQuery(this).html();
if (texttodrag) {
var textclone = texttodrag.clone()
.offset({
top: texttodrag.offset().top,
left: texttodrag.offset().left
})
.css({
'opacity': '0.5',
'position': 'absolute',
'height': '150px',
'width': '150px',
'z-index': '100'
})
.appendTo(jQuery('body'))
.animate({
'top': cart.offset().top + 10,
'left': cart.offset().left + 10,
'width': 75,
'height': 75
}, 1000, 'easeInOutExpo');
setTimeout(function () {
cart.effect("shake", {
times: 2
}, 200);
}, 1500);
textclone.animate({
'width': 0,
'height': 0
}, function () {
jQuery(this).detach()
});
}
但它显示TypeError: texttodrag.clone is not a function
。它适用于图像,但适用于文本。请帮帮我
答案 0 :(得分:1)
使用length属性检查html是否存在:
if (texttodrag.length) {
答案 1 :(得分:0)
问题已解决: -
function flyToCart(flyer, flyingTo, filterId , callBack) {
// try {
jQuery( ".currently" ).fadeIn(3000);
var $jqfunc = jQuery(this);
var divider = 3;
flyerClone = jQuery.trim(flyerClone);
var flyerClone = jQuery(flyer).clone();
jQuery(flyerClone).css({
'font-size': '14px',
'font-family':'Arial',
'background':'white',
'width':'150px',
'height':'150px',
position: 'absolute',
'display':'block',
'border':'1px solid #cccccc',
top: jQuery('#'+filterId).offset().top + "px",
left: jQuery('#'+filterId).offset().left + "px",
opacity: 1,
'z-index': 1000
});
jQuery('body').append(jQuery(flyerClone));
if(jQuery(flyingTo)) {
var gotoX = jQuery(flyingTo).offset().left + 10;
var gotoY = jQuery(flyingTo).offset().top + 10;
jQuery(flyerClone).animate({
opacity: 1,
left: gotoX,
top: gotoY,
width: 150,
height: 10,
padding: '5 10 10 10'
}, 1000,
function () {;
jQuery(flyingTo).fadeOut('slowly', function () {
jQuery(flyingTo).fadeIn('slowly', function () {
jQuery(flyerClone).fadeOut('slowly', function () {
jQuery(flyerClone).remove();
if( callBack != null ) {
callBack.apply($jqfunc);
}
});
});
});
});
}
}
我用过这个脚本,希望它能帮助其他人提供飞行效果。