简体   繁体   English

Wordpress 滚动淡入/淡出(上下)

[英]Wordpress Fade in/out on scroll (up and down)

I am looking to have divs fade in/out when you scroll up/down on my Wordpress site.当您在我的 Wordpress 网站上向上/向下滚动时,我希望 div 淡入/淡出。 Variations of this have been found online but not quite what I am looking for.已经在网上找到了这种变化,但不是我想要的。

The code I have managed so far到目前为止我管理的代码

css css

.fade-in-section {
  opacity: 0;
  transform: translateY(20vh);
  visibility: hidden;
  transition: opacity 0.6s ease-out, transform 1.2s ease-out;
  will-change: opacity, visibility;
}
 .fade-in-section.is-visible {
  opacity: 1;
  transform: none;
  visibility: visible;
 }

java (although not Wordpress written): java(虽然没有写Wordpress):

function FadeInSection(props) {
 const [isVisible, setVisible] = React.useState(true);
 const domRef = React.useRef();
React.useEffect(() => {
 const observer = new IntersectionObserver(entries => {
  entries.forEach(entry => setVisible(entry.isIntersecting));
 });
 observer.observe(domRef.current);
 return () => observer.unobserve(domRef.current);
}, []);
return (
 <div
  className={`fade-in-section ${isVisible ? 'is-visible' : ''}`}
  ref={domRef}
 >
  {props.children}
 </div>
);
}

( sandbox code and original author here: https://codesandbox.io/s/beautiful-wiles-k23w5?from-embed ) (沙箱代码和原作者在这里: https://codesandbox.io/s/beautiful-wiles-k23w5?from-embed

This works perfectly scrolling down, but I would like the same animation/transitioning scrolling up (only 2/3 divs would be visible in the middle of the screen)这可以完美地向下滚动,但我想要相同的动画/过渡向上滚动(屏幕中间只有 2/3 div 可见)

Looking for the right approach, help looking for resources to accomplish this.寻找正确的方法,帮助寻找资源来实现这一目标。

Try using my solution.尝试使用我的解决方案。 Give fade class to elements you want wo fade in/out and apply this:将淡入淡出 class 赋予您想要淡入/淡出的元素并应用此:

 $(document).ready(function() { $(window).scroll(function() { var windowBottom = $(this).scrollTop() + $(this).innerHeight(); $(".fade").each(function() { /* Check the location of each desired element */ var objectBottom = $(this).offset().top + $(this).outerHeight(); /* If the element is completely within bounds of the window, fade it in */ if (objectBottom < windowBottom) { //object comes into view (scrolling down) if ($(this).css("opacity")==0) { $(this).fadeTo(500,1); } }else{ if ($(this).css("opacity")==1) { $(this).fadeTo(500,0); } } }); }); });
 .fade { margin: 50px; padding: 50px; background-color: red; opacity: 0; width: 150px; height: 150px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="fade"></div> <div class="fade"></div> <div class="fade"></div> <div class="fade"></div> <div class="fade"></div> <div class="fade"></div> <div class="fade"></div>

jQuery(window).scroll(function () {
    var y = jQuery(this).scrollTop();
    if (y > 500) {
        jQuery('.a2a_floating_style.a2a_vertical_style').show();
    } else {
        jQuery('.a2a_floating_style.a2a_vertical_style').fadeOut();
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM