jQuery - 输入div时的触发元素

时间:2016-05-01 09:30:20

标签: jquery scroll header

我正在尝试开发一个脚本,其中标题一旦进入目标div就克隆,而不使用fromTop函数。谢谢:))

$(document).ready(function() {
    var $header = $(".header"),
    $clone = $header.before($header.clone().addClass("clone"));

    $(window).on("scroll", function() {
      var fromTop = $(window).scrollTop();
      $("body").toggleClass("down", (fromTop > 490));
    });
});

我还制作了一个jsFiddle - https://jsfiddle.net/Lng9cf7v/2/

1 个答案:

答案 0 :(得分:1)

此代码查找导航栏与您希望克隆导航栏的div之间的当前距离。一旦两者之间的距离为0px或更小(导航栏位于div的顶部或下方),则通过添加.down类来显示导航栏。 toggleClass()导致导航栏出现抖动,因此我使用了addClass()removeClass()

$(window).on("scroll", function() {

    var cloneArea = $('.other-div').offset().top;
    var fromTop = $(window).scrollTop();

    if ((fromTop - cloneArea >= 0) && ($("body").hasClass("down") == false)) {

        $("body").addClass("down");

    } else if ((fromTop - cloneArea < 0) && ($("body").hasClass("down") == true)) {

        $("body").removeClass("down");

    }

});

工作演示:https://jsfiddle.net/kkdaily/rp0dhvuv/