javascript - 魔线响应JQuery

标签 javascript jquery

如果有人能帮助我解决这个问题,那就太好了。到目前为止我已经做到了,但现在我被困住了!我必须承认我的 JQuery 技能还达不到标准!

无论如何,我使用的是魔法线,并且 #navigation li 使用 JQuery 启动 .slide。

当单击#navigation li 时,我希望魔线停留在已选择的li 下方,直到用户单击另一个li。

这是一个 fiddle :http://jsfiddle.net/danieljoseph/7Yxn2/2/

感谢您对此的帮助。如果您有时间,请解释一下,因为我正在尝试开发 JQuery。

感谢您的宝贵时间。

JQuery:

// Magic Line
$(function() {

var $el, leftPos, newWidth;
    $mainNav2 = $("#navigation");

$("#navigation").append("<li id='magic-line'></li>");

var $magicLine = $("#magic-line");

$magicLine
    .width($(".current_page_item").width())
    .css("left", $(".current_page_item a").position().left)
    .data("origLeft", $magicLine.position().left)
    .data("origWidth", $magicLine.width());

$("#navigation li").find("a").hover(function() {
    $el = $(this);
    leftPos = $el.position().left;
    newWidth = $el.parent().width();
   console.log($el.parent());
    $magicLine.stop().animate({
        left: leftPos,
        width: newWidth
    });
}, function() {
    $magicLine.stop().animate({
        left: $magicLine.data("origLeft"),
        width: $magicLine.data("origWidth")
    });    
});

});


// Services Animations
    $('#ecommerce').click(function(){
    $(".slide2, .slide3, .slide4, .slide5").fadeOut(1000);
    $('.slide1').fadeIn(1000);
    $('.slide .left').addClass('slideUp');
});

    $('#responsive').click(function(){
    $(".slide1, .slide3, .slide4, .slide5").fadeOut(1000);
    $('.slide2').fadeIn(1000);
    $('.slide .left').addClass('slideUp');
});

    $('#logodesign').click(function(){
    $(".slide1, .slide2, .slide4, .slide5").fadeOut(1000);
    $('.slide3').fadeIn(1000);
    $('.slide .left').addClass('slideUp');
});

    $('#branding').click(function(){
    $(".slide1, .slide2, .slide3, .slide5").fadeOut(1000);
    $('.slide4').fadeIn(1000);
    $('.slide .left').addClass('slideUp');
});

    $('#literature').click(function(){
    $(".slide1, .slide2, .slide3, .slide4").fadeOut(1000);
    $('.slide5').fadeIn(1000);
    $('.slide .left').addClass('slideUp');
});

最佳答案

您需要更新 magic line 的 origLeft 数据属性。添加此:

$("#navigation a").click(function() {
   $magicLine.data("origLeft", $(this).position().left); 
});

在 IIFE 结束时

您可以在任何地方对其进行修改和更改,但基本逻辑是,每当单击 #navigation 中的 a 标记时,您都需要获取标签的左侧位置并将其设置为魔术线的新 origLeft

关于javascript - 魔线响应JQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25018720/

相关文章:

javascript - chart.js 图表以固定宽度扭曲

javascript - 在 puppeteer 的所有页面上渲染标题

javascript - 滑出侧工具栏

javascript - ajaxStart 取消 jQuery 自动完成

javascript - 在页面加载后在 li 上添加类删除

javascript - 用 jquery 搜索 LI 列表

php - 帮助 mysql 求和和组查询以及管理 jquery 图形的结果

javascript - 使用 jquery 更改部分 src 名称,在调整窗口大小时不断重复

jquery - 对 Angular 线 Angular 到 Angular div

html - 使用 jquery 在分页时激活下一个/上一个按钮