【问题标题】:jquery scrollto fade out then display:nonejquery滚动淡出然后显示:无
【发布时间】:2014-07-12 00:36:53
【问题描述】:

我正在尝试 fadeOut 包含图像的 DIV,然后将 DIV 切换到 display:none,以便可以单击 DIV 下的链接。

我这样做是因为我希望图像贴在页面的左下方。

我有:

<script>
jQuery(function( $ ){


    function fade_home_top() {
        if ( $(window).width() > 800 ) {
        window_scroll = $(this).scrollTop();
            $(".mom-son").css({
                  'opacity' : 1-(window_scroll/300)
            });
        }
    }
    $(window).scroll(function() { fade_home_top(); });

});
</script>

理想情况是滚动上的 DIV(因此是图像)fadeOut,然后是 display:none

我正在使用 ScrollTo.js。

这是JSFiddle

【问题讨论】:

  • 小提琴请!!!!!!!!!!!!
  • 你想在滚动时淡入或淡出
  • 新手所以会尝试小提琴。
  • 好的,你在滚动或淡出时淡入淡出
  • 随着页面向下移动,它会淡出。当它向上移动时,它会淡入。

标签: jquery scrollto


【解决方案1】:
jQuery(function( $ ){
    function fade_home_top() {
        if ( $(window).width() > 800 ) {
            var window_scroll = $(this).scrollTop();
            $(".mom-son").css({opacity:1-window_scroll/300});
            if(1-window_scroll/300 <= 0){
                $(".mom-son").css({display:'none'});
            }
            else
            {
                $(".mom-son").css({display:'block'});
            }
        }
    }
    $(window).scroll(fade_home_top);
});

基本上,添加一个检查以查看不透明度是否小于或等于零。如果是,请将显示设置为无。否则,显示块。 window_scroll 应该被声明。另外,传递对函数的引用。无需调用只调用另一个函数的匿名函数。

http://jsfiddle.net/PWLR8/5/

【讨论】:

  • 嗨,我检查了你的小提琴。它也不会回到这里。可能是什么原因?
  • 对我有用。我在mac上使用chrome。你用的是什么浏览器?
  • 我得回家看看
  • ha... $(window).width() 正在解析为小提琴视口的宽度。我的工作监视器很大,所以它可能满足 800px 的要求。如果您在普通站点上尝试此代码,只要窗口宽度大于 800 像素,它就应该可以工作。对于小提琴,将其更改为喜欢 400,然后看看它是否适合您。
【解决方案2】:

您可以使用 jquery fadeOut 功能。请查看fiddle 并告诉我。

代码片段:

function fade_home_top() {
    if ( $(window).width() > 800 ) {
    window_scroll = $(this).scrollTop();
        if(1-window_scroll/300){
             $(".mom-son").fadeOut();
        }
    }
}

为了检查增加输出窗口宽度,因为我们设置了窗口宽度> 800 检查

更新答案(根据凯的建议)

我现在已经为 else 部分添加了 fadeIn() 来重新打开元素。

Updated Fiddle

更新代码:

function fade_home_top() {
        if ( $(window).width() > 800 ) {
        window_scroll = $(this).scrollTop();
            if (window_scroll >= ($(document).height() - $(window).height()) || window_scroll ==0){
                $(".mom-son").fadeIn();
            }
            else {
                 $(".mom-son").fadeOut();
            }
        }
    }

【讨论】:

  • 我不会使用淡出。此外,你会想要一个 else ,否则它永远不会回来。看到这个小提琴:jsfiddle.net/PWLR8/5
  • @user3634131:谁的小提琴凯或我的或两者兼而有之?
  • @V31 - 你的已经淡出,但没有重新加入。它需要一个 else 语句,而 fadeOut 是一个动画方法,因此它可能与滚动侦听器上的不透明度设置冲突。
  • 我认为他正在处理不透明度设置以产生淡出效果
  • true,但是您在不透明度已经为 0 的元素上调用了 fadeOut,虽然这在技术上可能有效,但最好调用即时且相等的 show() 或 hide()显示块/无。因为如果您从 0 开始滚动,则在设置元素不透明度的同时,您会在滚动事件上设置其不透明度的动画。我不确定有副作用。可能完全没问题。但这也可能不是对流程最友好的决定。不过仍然是一个选择。
猜你喜欢
  • 2013-10-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
相关资源
最近更新 更多