javascript – 使用css float进行Jquery动画制作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用css float进行Jquery动画制作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2255字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 使用css float进行Jquery动画制作](/upload/InfoBanner/zyjiaocheng/785/eb826ea10f5249278169aa152df3d407.jpg)
我的代码有问题,宽度似乎工作但浮动没有.
这里是:
这是一个例子:
问题:当悬停时菜单上的浮动属性没有改变,我希望在悬停该菜单元素时,每个菜单元素下面的行在元素下方滑动.
代码不复杂,我只是不知道发生了什么
JAVASCRIPT:
$(document).ready(function () {
$('#line-menu').css({ //initial state
'float': 'left',
'width' : $('#menu-1').width(),
});
$('#menu-1').hover(function(){ //first menu element
var width = $(this).width();
$('#line-menu').animate({
'float': 'left',
'width' : width
}, "slow");
});
$('#menu-2').hover(function(){ //second menu element
var width = $(this).width();
$('#line-menu').animate({
'float': 'none',
'width' : width
}, "slow");
});
$('#menu-3').hover(function(){ //third menu element
var width = $(this).width();
$('#line-menu').animate({
'float': 'right',
'width' : width
}, "slow");
});
});
css所以你可以看到它
CSS:
#line-menu{
height: 3px;
width: 100px;
position:absolute;
z-index:50;
background: #CC0000;
margin-left:55px;
padding-left:3px;
padding-right:3px;
}
#line-menu-container{
text-align: center;
min-width: 617px;
max-width: 1113px;
margin-left: auto;
margin-right: auto;
}
这是相互冲突的部分
HTML:
<header>
<div id='menu'>
<div class='menu-element' id='menu-1'>HORARIOS</div>
<div class='menu-element' id='menu-2'>UBICACIÓN</div>
<div class='menu-element' id='menu-3'>CONTACTO</div>
</div>
</header>
<div id='line-menu-container'> //the line contained in a container just to fix the centered position
<div id='line-menu' ></div>
</div>
我使用的jquery库是https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
我问你们,因为我真的不知道怎么解决它…
编辑:已经有一段时间了(2年).如果我不得不再次这样做,我将使用抽象,例如使用像twitter bootstrap这样的框架.没有必要重新发明轮子.
解决方法:
您不能将float属性用于绝对定位的元素.实际上它并没有改变任何东西,而是使用position:relative.
看来你想根据悬停元素的宽度和左偏移来定位元素,你可以使用offset方法和CSS left属性而不是float属性:
$(document).ready(function () {
var $first = $('#menu-1'), $line = $('#line-menu');
$line.css({
'width' : $first.width(),
'left' : $first.offset().left
});
$('#menu > div').mouseenter(function(){
var $this = $(this),
width = $this.width(),
left = $this.offset().left;
$line.stop().animate({
'left' : left,
'width' : width
}, "slow");
});
});
内容总结
以上是互联网集市为您收集整理的javascript – 使用css float进行Jquery动画制作全部内容,希望文章能够帮你解决javascript – 使用css float进行Jquery动画制作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。