我想知道如何将 div(box2) 一直移动到屏幕右侧并在用户将鼠标悬停在另一个 div(box1) 上时消失。我知道我们必须使用 Jquery。到目前为止,我知道如何使用切换功能使 box2 消失,但我不确定如何使用 animate 功能将其向右移动然后消失。任何帮助将不胜感激。
问问题
250 次
3 回答
2
一种在屏幕上滑动元素,然后将其淡出的方法:
// get the widths of the window (or the parent of the element to move):
var winWidth = $(window).width(),
// get the width of the element itself:
demoWidth = $('#demo').width(),
// find out how far to move the element:
delta = winWidth - demoWidth,
// the time-frame over which to animate:
duration = 1500;
// bind the animate method:
$('#demo').animate({
// move the element the distance held by the 'delta' variable:
'left': delta
// animate for the duration defined by 'duration':
}, duration,
// callback function, to occur once first stage of the animation has completed:
function () {
// binding the fadeOut() method:
$(this).fadeOut(duration);
});
上面的演示使用(简单)HTML:
<div id="demo"></div>
和CSS:
#demo {
width: 5em;
height: 5em;
background-color: #f00;
/* to move an element, using the 'left' property,
the 'position' must be set to a value other than 'static' (the default):
*/
position: relative;
}
做同样的事情,一旦#box1
元素被悬停:
var winWidth = $(window).width(),
demoWidth = $('#box2').width(),
delta = winWidth - demoWidth,
duration = 1500;
$('#box1').mouseenter(function () {
$('#box2').animate({
'left': delta
}, duration,
function () {
$(this).fadeOut(duration);
});
});
以上使用以下 HTML:
<div id="box1"></div>
<div id="box2"></div>
参考:
于 2013-10-20T00:33:15.267 回答
0
您在问如何使用 $.animate()?
http://api.jquery.com/animate/
基本上...
$(document).ready()
{
$(selector).animate(
{
"backgroundColor" : "red"
}, 500, "swing");
}
插入你的选择器,你应该知道怎么做。
Animate 有两个主要参数,但我添加了第三个参数,即“缓动”。
第一个是包含 CSS 更改的对象字面量。
第二个是以毫秒为单位的动画完成时间。
第三个是缓动,它允许您在曲线上制作动画。默认为“线性”,看起来很僵硬。
你的问题似乎并不存在。如果您只是询问一般信息,请先尝试在搜索引擎中查找。
于 2013-10-20T00:32:16.120 回答
0
有很多方法可以做到这一点,但您可以考虑在悬停时使用 hover() 和 animate()。
<div class='slide-right'>howdy</div>
<div class='slide-right'>doody</div>
这完全取决于您使用哪些属性来进行向右滑动。在这里,我以动画左边距为例。这将影响布局,因此请考虑使用left
绝对定位。您可以选择在不透明度滑入和滑出视图时为其设置动画。
$('.slide-right').hover(function()
{
$(this).siblings('.slide-right').animate({ 'margin-left': '+=50' });
},
function()
{
$(this).siblings('.slide-right').animate({ 'margin-left': '-=50' });
});
于 2013-10-20T00:43:45.417 回答